CommandsDefine.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #ifndef __COMMANDDEFINE_H
  2. #define __COMMANDDEFINE_H
  3. #include "sys.h"
  4. #include "CommandsConfig.h"
  5. #define BOOT_VERSION_FLASH_ADDR_BASE 0x0200
  6. //#define COMPPOR_RECEIVED_BUFFER_SIZE (1024*16)
  7. #define PACKAGE_HEADER_BYTE1 0x55
  8. #define PACKAGE_HEADER_BYTE2 0xaa
  9. #define PACKAGE_HEADER_BYTE3 0xbb
  10. #define PACKAGE_TAIL_BYTE1 0x0d
  11. #define PACKAGE_TAIL_BYTE2 0x0a
  12. #define PACKAGE_HEAD_BYTES 6 // Header_byte1 + Header_byte2 + Header_byte3 + Header_cmd + Len_Bytes * 2
  13. #define PACKAGE_MIN_BYTES (PACKAGE_HEAD_BYTES + PACKAGE_TAIL_BYTES) // Header_byte1 + Header_byte2 + Header_cmd + Len_Bytes * 2 + 0x0d + 0x0a
  14. #define PACKAGE_TAIL_BYTES 2
  15. #define LMH43711_ADDR_GAIN 0x00
  16. #define LMH6401_ADDR_GAIN 0x02
  17. #define LMH6401_ADDR_TEMPCORRECT_GAIN 0x04
  18. #define LMH6401_ADDR_TEMPCORRECT_FREQ 0x05
  19. #define BYTES_MASTER_STARTTIME 20 //format=2023-08-09 17:45:58
  20. //返回命令无效
  21. #define COMMAND_INVALID 0xEE
  22. //返回命令成功
  23. #define COMMAND_OK 0x66
  24. #define RUNNING_AT_APP 0x77 // App
  25. #define RUNNING_AT_BOOT 0x11 // Boot
  26. #define Version_DateLength 14
  27. #define Version_ModifierNameMaxLength 16
  28. #define Version_ModelNameMaxLength 32
  29. #define Version_Comment_MaxLength 64
  30. #pragma pack(1)
  31. typedef struct
  32. {
  33. u8 Version_MainNo;
  34. u8 Version_SubNo;
  35. u8 Version_ModifyNo;
  36. u8 Version_Revision_Number;
  37. char Version_Date[Version_DateLength];
  38. char Version_ModifierName[Version_ModifierNameMaxLength];
  39. char Version_ModelName[Version_ModelNameMaxLength];
  40. char Version_Comment[Version_Comment_MaxLength];
  41. }VersionInfo;
  42. typedef struct
  43. {
  44. u8 Head1;
  45. u8 Head2;
  46. u8 Head3;
  47. u8 Cmd;
  48. u16 Bytes;
  49. }CmdPackageHeader;
  50. enum RequestCmds
  51. {
  52. CMD0x01_Request_RunningAtWhere=0x01,
  53. CMD0x02_Request_ReadMcuVersion=0x02,
  54. CMD0x03_Request_ReadMcuBootVersion=0x03,
  55. CMD0x04_Request_ReadUpdateTimeStamp=0x04,
  56. CMD0x05_Request_UpdateStart=0x05,
  57. CMD0x06_Request_RegisterAppStartTime=0x06,
  58. CMD0x07_Request_ReadbackAppStartTime=0x07,
  59. CMD0x08_Request_UpdateSend=0x08,
  60. CMD0x0B_Request_UpdateVerifyStage1=0x0B,
  61. CMD0x0C_Request_UpdateSwitch=0x0C,
  62. CMD0x0D_Request_UpdateVerifyStage2=0x0D,
  63. CMD0x11_Request_UpdateFinished=0x11,
  64. CMD0x15_Request_WriteUpdateTimeStamp=0x15,
  65. CMD0x20_Request_PowerCtrl=0x20,
  66. CMD0x21_Request_RefVlotage=0x21,
  67. CMD0x22_Request_AnalogChannelSet=0x22,
  68. CMD0x23_Request_ExternalChannelSet=0x23,
  69. CMD0x29_Request_SetGainTempCorrection=0x29,
  70. CMD0x30_Request_ReadTemperature=0x30,
  71. CMD0x31_Request_ReadBack_ProbeStatus=0x31,
  72. CMD0x32_Request_CtrlProbeDifferenceOrSingle=0x32,
  73. CMD0x33_Request_ReadProbeFactoryInfo=0x33,
  74. CMD0x34_Request_CtrlProbeLed=0x34,
  75. CMD0x40_Request_AnalogChannelCalcOffset=0x40,
  76. CMD0x41_Request_AnalogChannelOffset=0x41,
  77. CMD0x42_Request_AnalogChannelGain=0x42,
  78. CMD0x43_Request_CtrlChannel4094=0x43,
  79. CMD0x48_Request_CtrlOuterLed=0x48,
  80. CMD0x50_Request_WriteProbeFactoryInfo=0x50,
  81. CMD0xA1_Request_ReadMcuRunInfo=0xA1,
  82. CMD0xB0_Request_GetErrorCode=0xB0,
  83. CMD0xC0_Request_CmdIsOK=0xC0,//used response
  84. CMD0xC1_Request_CommunicateReset=0xC1,
  85. CMD0xE0_Request_ThrowHDError=0xE0,
  86. CMD0xE1_Request_ThrowStuckError=0xE1,
  87. CMD0xE3_Request_GetDebugData=0xE3,
  88. CMD0xE4_Request_TestCommunicate=0xE4,
  89. };
  90. enum ReadbackErrorCode
  91. {
  92. Error0x01_CannotRunAtApp=0x01,
  93. Error0x02_CannotRunAtBoot=0x02,
  94. Error0x03_AlreadyAtBoot=0x03,
  95. Error0x04_AlreadyAtApp=0x04,
  96. Error0x05_CMD_ParaLentghError=0x05,
  97. Error0x06_CMD_UpdateNotStart=0x06,
  98. Error0x90_CMD_ThisVersionNotSupport=0x90,
  99. Error0xFF_General=0xff,
  100. };
  101. enum DebugDataTypes
  102. {
  103. DebugDataType_AnalogChannelSetData=0x00,
  104. DebugDataType_CommunicateTimesInfo=0x01,
  105. DebugDataType_Analog4094Word=0x02,
  106. };
  107. /*
  108. extern short ComPortReceivedBytes;
  109. extern u8 bPackageTailFound;
  110. extern u8 ComPortReceivedBuffer[COMPPOR_RECEIVED_BUFFER_SIZE];
  111. */
  112. extern void Command_ProcessRequestCmds(void);
  113. //初始化命令
  114. //cmdLen命令总长度
  115. //cmdCode命令号
  116. //dataLen数据长度
  117. extern int Command_FormatCmdBuffer(u8 cmdCode,u8 *pData,int dataLen,u8* resultBuffer);
  118. extern int Command_BytesCheck(u8 datas[],u16 bytesLen);
  119. //// Request_UpdateSend 相关
  120. extern u8 UpdateWhat;
  121. extern u8 Updating;
  122. extern u32 UpdateRecvedContentBytes;
  123. extern u8 UpdateVerifyStage1OK;
  124. extern u8 UpdateVerifyStage2OK;
  125. //// Request_UpdateFinished 相关
  126. extern void Command_SendbackErrorMessage(u8 errorCode,u8 bIsContentBitInverted_SendBack);
  127. extern void Command_SendbackOKMessage(void);
  128. extern void Command_SendbackAppStartTime(void);
  129. extern void Timer_ReadBack_ProbeStatus(u8 checkChanged,u8 bIsContentBitInverted_SendBack);
  130. extern short Last_Probe_ConnectState;
  131. extern short Last_Probe_ButtonState;
  132. extern u32 RecvedPackageCount;
  133. extern u32 SendBackPackageCount;
  134. extern u8 RegisteredMatserStartTime[BYTES_MASTER_STARTTIME];
  135. extern VersionInfo* GetVersion(void);
  136. #endif