protocol_old.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include "libs/shark_libs.h"
  3. #pragma pack (push,1)
  4. typedef struct
  5. {
  6. //整个包大小
  7. uint8_t size;
  8. //命令设备
  9. uint8_t type;
  10. //协议类型
  11. uint8_t protocol;
  12. //命令类型
  13. uint8_t cmd;
  14. //命令校验
  15. uint16_t checksum;
  16. //命令处理调用
  17. uint8_t dir;
  18. //命令返回状态
  19. uint8_t bStatus;
  20. //命令数据部分
  21. uint8_t data[0];
  22. }comm_head_t;
  23. #pragma pack(pop)
  24. #pragma pack (push,1)
  25. typedef struct
  26. {
  27. uint8_t remain_miles;
  28. uint8_t capacity;
  29. uint8_t remain_charger_time;
  30. uint8_t is_chargering;
  31. uint32_t load_current;
  32. uint32_t pack_voltage;
  33. int8_t max_temp;
  34. uint16_t health_state;
  35. uint32_t balance_mask;
  36. uint8_t misc_status; //bit0:bond, bit1-2: mos, bit3-4, small-short,full, bit 5, bit6 calibarate
  37. uint8_t result;
  38. }comm_response_t;
  39. #pragma pack(pop)
  40. #pragma pack (push,1)
  41. typedef struct
  42. {
  43. uint16_t soh;
  44. uint32_t charger_cycle;
  45. uint8_t res2[36];
  46. }times_response_t;
  47. #pragma pack(pop)
  48. enum
  49. {
  50. OP_NONE,
  51. //OP_BOND,
  52. OP_BIN_LIAN,
  53. OP_WRITE_SN,
  54. OP_PAIR,
  55. OP_UPDATE_PAIR,
  56. OP_READ_INFO,
  57. OP_ALARM_TIMES,
  58. OP_CELL_VOL,//0x07
  59. OP_TEMP_OTHER,//0x08
  60. OP_AGING_TEMPS = 0x0A,
  61. OP_OPEN_FET = 0x0B,
  62. OP_CLEAR_PAIR = OP_TEMP_OTHER + 1,
  63. OP_READ_DETECT = 0x0D,
  64. OP_UPDATE_SOFTWARE_REQ = 0x0E,
  65. OP_UPDATE_SOFTWARE = 0x0F,
  66. OP_MAX
  67. };
  68. enum
  69. {
  70. CW_NONE,
  71. CW_CHONG_DIAN_ZUO,
  72. CW_CHE_SHANG_CHARGER,
  73. CW_CHE_SHANG_NO_CHARGER,
  74. CW_MAX
  75. };