communication.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. #ifndef __COMMUNITION_MINI_H
  2. #define __COMMUNITION_MINI_H
  3. #define WRITE_FLASH_PAGE_SIZE 0x800
  4. typedef enum
  5. {
  6. PC_CONNECT_TYPE_NULL = 0x00,
  7. PC_CONNECT_TYPE_WIFI = 0x01,
  8. PC_CONNECT_TYPE_UART = 0x02,
  9. }PC_CONNECT_TYPE_TYPE;
  10. enum cmd_frame_type
  11. {
  12. CDM_FRAME_TYPE_REQ,
  13. CDM_FRAME_TYPE_RESP
  14. };
  15. typedef enum
  16. {
  17. PC_CMD_HANDSHAKE = 0x01,
  18. PC_CMD_SETWIFI,
  19. PC_CMD_QRCODE,
  20. PC_CMD_REPORT_RESULT,
  21. PC_CMD_DATA_UPLOAD,
  22. PC_CMD_REPORT_REEOR = 0x06,
  23. PC_CMD_DATASCOPE,
  24. PC_CMD_SETSN,
  25. PC_CMD_INFO,
  26. PC_CMD_SNANDCARD,
  27. PC_CMD_SETIP = 0x0B,
  28. PC_CMD_SETRUNTEMP = 0x10,
  29. PC_CMD_UPDATESTATE = 0x11,
  30. PC_CMD_ASKSTATE = 0x12,
  31. PC_CMD_SETSTATE = 0x13,/*设置强制改变模块状态*/
  32. PC_CMD_UPDATETEMP = 0x14,/*设置强制改变模块状态*/
  33. PC_CMD_STARTUPDATE = 0x20,/*开始升级*/
  34. PC_CMD_UPDATEINFO = 0x21,/*升级包信息*/
  35. PC_CMD_UPDATEDATA = 0x22,/*升级数据*/
  36. UINON_CMD_TEMP_ADJ = 0x40, /*校准参数*/
  37. UINON_CMD_TEMP_PID = 0x41, /*PID参数*/
  38. UINON_CMD_TEMP_ADJ_GET = 0x42, /*校准参数*/
  39. UINON_CMD_TEMP_PID_GET = 0x43, /*PID参数*/
  40. UINON_CMD_TEMP_START = 0x44, /*开始加热*/
  41. UINON_CMD_TEMP_STOP = 0x45, /*停止加热*/
  42. UINON_CMD_MOTORMOVE = 0x48,
  43. UINON_CMD_MOTORTRETURN = 0x49,
  44. UINON_CMD_MOTORSTOP = 0x4a,
  45. UINON_CMD_MOTORGETPRAM = 0x4b,
  46. UINON_CMD_TEMP_DEBUG = 0x50,
  47. UINON_CMD_THEROM_GOAL = 0x51,
  48. UINON_CMD_THEROM_CHECK = 0x52,
  49. UINON_CMD_THEROM_OFFSET = 0x53,
  50. UINON_CMD_THEROM_PID = 0x54,
  51. UINON_CMD_THEROM_OVERHEAT = 0x55,
  52. UINON_CMD_THEROM_OVERCOOL = 0x56,
  53. UINON_CMD_THEROM_GET = 0x58,
  54. UINON_CMD_AMPLIF_GET = 0x59,
  55. UINON_CMD_AMPLIF_SET = 0x5a,
  56. }pc_cmd_type;
  57. typedef struct _sysinf
  58. {
  59. unsigned char SN[8];
  60. unsigned char amplifState;
  61. unsigned char lysisState;
  62. unsigned char updateSt;
  63. }stateinfDef;
  64. #define MSG_CMDFRAME_LEN (6)
  65. typedef struct
  66. {
  67. unsigned short head;
  68. unsigned char seq;
  69. unsigned char cmd;
  70. unsigned short len;
  71. char *data;
  72. unsigned char checksum;
  73. unsigned char tail;
  74. }CmdMessage, *pCmdMessage;
  75. struct PCActionPack
  76. {
  77. pc_cmd_type cmd;
  78. int (*action)(unsigned char cmd, unsigned char *parg);
  79. int (*response)(CmdMessage *pMsg, unsigned char result);
  80. int datalen;
  81. };
  82. /* host量配置参数 */
  83. typedef struct _pidParm {
  84. float kp; /* 预留参数2 */
  85. float ki; /* 预留参数1 */
  86. float kd; /* 预留参数3 */
  87. } pidParm;
  88. /* host量配置参数 */
  89. typedef struct _MotorParm {
  90. float time; /* 预留参数2 */
  91. float speed; /* 预留参数1 */
  92. float swingtime; /* 预留参数3 */
  93. } MotorParm;
  94. /* host量配置参数 */
  95. typedef struct _tempAdjCouple {
  96. float raw; /*原始值*/
  97. float offset; /*预留参数2 */
  98. } tempAdjCouple;
  99. typedef struct _tempAdjParm {
  100. unsigned int section; /* 段数 */
  101. tempAdjCouple *offsetlist; /* */
  102. } tempAdjParm;
  103. typedef struct _miniConfigPram {
  104. unsigned int partID;
  105. union {
  106. pidParm pid;
  107. tempAdjParm adj;
  108. MotorParm minf;
  109. }Pram;
  110. } miniConfigPram;
  111. enum FLASH_UPDATE_ST
  112. {
  113. FLASH_UPDATE_ST_NUILL,
  114. FLASH_UPDATE_ST_REC,
  115. FLASH_UPDATE_ST_PROG,
  116. };
  117. typedef struct _updateHeader
  118. {
  119. unsigned char UPFLAG[8];
  120. unsigned int appLen;
  121. unsigned int packageSize;
  122. unsigned int allpackage;
  123. unsigned int allchecksum;
  124. }updateHeader;
  125. typedef struct _updateData
  126. {
  127. unsigned int packageOrder;
  128. unsigned int packageSize;
  129. unsigned char data[256];
  130. }updateData;
  131. typedef struct _updateProcessInf
  132. {
  133. unsigned int appLen;
  134. unsigned int packageSize;
  135. unsigned int allchecksum;
  136. unsigned int allpackage;
  137. unsigned int updateState;
  138. unsigned int writeAddr;
  139. unsigned int lenInPage;
  140. unsigned int packageInPage;
  141. unsigned int nextpackageOrder;
  142. unsigned int updateWaitTime;
  143. unsigned char data[WRITE_FLASH_PAGE_SIZE];
  144. }updateProcessInf;
  145. void deal_mUnion_cmd(CmdMessage *pMsg);
  146. void query_pc_cmd(CmdMessage *pMsg);
  147. unsigned int check_to_pc_busy(void);
  148. int data_send_to_pc(pc_cmd_type cmd, char *data, unsigned short len);
  149. void update_work(void) ;
  150. int send_baseinf_pc(unsigned char cmd, unsigned char *parg);
  151. int update_process_end(void);
  152. #endif