communication.h 3.3 KB

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