Improve Protocol handle code.
This commit is contained in:
		
							parent
							
								
									8a79fe352c
								
							
						
					
					
						commit
						f1747df345
					
				|  | @ -634,12 +634,13 @@ unsigned short calculate_check_sum(const unsigned char* pData, unsigned short le | |||
| **基本描述** | ||||
| 1. 大于等于0x8000的命令字由CPU发给MCU; | ||||
| 2. 小于0x8000的命令字由MCU发给CPU; | ||||
| 3. 问答型协议只有按位最高位相反,其它位相等,例如:0x8101与0x0101是一问一答的协议; | ||||
| 3. 大于0x0801而小于0xC101的命令由CPU主动发送给MCU,大于等于0xC101的命令由CPU回复发送给MCU; | ||||
| 4. 问答型协议只有按位最高位相反,其它位相等,例如:0x8101与0x0101是一问一答的协议; | ||||
| 
 | ||||
| | 命令字 | CPU | MCU | 数据段 | 协议解析 | 备注 | | ||||
| |----|----|----|----|----|----| | ||||
| | 0x8101 | ask | - | - | 获取启动模式 | - | | ||||
| | 0x0101 | - | reply | Data[0]:启动模式<br>0x01:PIR启动<br>0x02:TEST启动<br>0x03:连拍启动<br>0x04:PIR延时启动 | 回复启动模式 | - | | ||||
| | 0x0101 | - | reply/ask | Data[0]:启动模式<br>0x01:PIR启动<br>0x02:TEST启动<br>0x03:连拍启动<br>0x04:PIR延时启动<br>0x05:定时(间隔一定时间)启动 | 回复启动模式 | - | | ||||
| | 0x8102 | ask | - | - | 断电关机 | - | | ||||
| | 0x8103 | ask | - | - | 喂狗 | - | | ||||
| | 0x8104 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 开启狗/设置喂狗周期 | - | | ||||
|  | @ -654,6 +655,13 @@ unsigned short calculate_check_sum(const unsigned char* pData, unsigned short le | |||
| | 0x0108 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置PIR灵敏度回复 | - | | ||||
| | 0x8109 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 设置连拍间隔 | - | | ||||
| | 0x0109 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置连拍间隔回复 | - | | ||||
| | 0x810A | ask | - | Data[0]:控制模式<br>0-关闭红外灯<br>1-开启红外灯 | 红外灯控制 | - | | ||||
| | 0x010A | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 红外灯控制回复 | - | | ||||
| | 0x810B | ask | - | - | 获取光敏值 | - | | ||||
| | 0x010B | - | reply | Data[0]:结果<br>0-100 | 获取光敏值回复 | - | | ||||
| | ====== | === | ====== | ============================ | ==================== | ======= | | ||||
| | 0xC101 | reply | - | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 发送启动模式回复 | - | | ||||
| | 0x4101 | - | ask | Data[0]:启动模式<br>0x01:PIR启动<br>0x02:TEST启动<br>0x03:连拍启动<br>0x04:PIR延时启动<br>0x05:定时(间隔一定时间)启动 | 发送启动模式 | - | | ||||
| 
 | ||||
| ##### 1.4.3.2.6. IPC配置库 | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,11 @@ bool CreateMcuManager(void); | |||
| bool DestroyMcuManager(void); | ||||
| enum class IpcMission | ||||
| { | ||||
|     TEST = 0, | ||||
|     PIR_TRIGGERED = 0, | ||||
|     TEST, | ||||
|     CONTINUOUS_SHOOTING, | ||||
|     PIR_TRIGGERED_DELAY, | ||||
|     REGULAR_START, | ||||
|     END | ||||
| }; | ||||
| enum class ASK_RESULT | ||||
|  |  | |||
|  | @ -157,6 +157,11 @@ void ProtocolHandle::AnalyzeProtocolPacket(void) | |||
|         LogError("CheckoutTheCheckCode failed.\n"); | ||||
|         return; | ||||
|     } | ||||
|     /**
 | ||||
|      * @brief unsigned int number = packet.mSerialNumber This line of code is for | ||||
|      * avoiding errors: runtime error: reference binding to misaligned address xxxx | ||||
|      */ | ||||
|     mProtocolSerialNumber = packet.mSerialNumber; | ||||
|     LogInfo("AnalyzeProtocolPacket, command = 0x%04X\n", packet.mCommand); | ||||
|     PROTOCOL_COMMAND command = static_cast<PROTOCOL_COMMAND>(packet.mCommand); | ||||
|     std::map<PROTOCOL_COMMAND, AnalyzePacketFunc>::iterator iter; | ||||
|  | @ -174,11 +179,6 @@ unsigned char ProtocolHandle::ReplyOneBytePacketResult(const ProtocolPacket &pac | |||
|     constexpr unsigned int PROTOCOL_DATA_START_ADDRESS = KEY_HEAD_LENGTH; | ||||
|     unsigned char replyResult = UNKNOWN_RESULT; | ||||
|     replyResult = mProtocolData[PROTOCOL_DATA_START_ADDRESS]; | ||||
|     /**
 | ||||
|      * @brief unsigned int number = packet.mSerialNumber This line of code is for | ||||
|      * avoiding errors: runtime error: reference binding to misaligned address xxxx | ||||
|      */ | ||||
|     mProtocolSerialNumber = packet.mSerialNumber; | ||||
|     LogInfo("reply result = 0x%02X\n", replyResult); | ||||
|     return replyResult; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fancy code
						Fancy code