soft_tattu.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #ifndef SOFT_TATTU_H
  2. #define SOFT_TATTU_H
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "common.h"
  6. ///////////////////
  7. /*
  8. 序列 字段 说明 长度(bytes) 备注
  9. 1 厂商编号 类型为 short 2 *********
  10. 2 电池型号编码 类型为 short 2 1
  11. 3 电池电压 类型为 unsigned short,单位(mv) 2
  12. 4 充放电电流 类型为 short,单位(10mA)注:正数充电,负数放电 2 10mA
  13. 5 电池温度 类型为 short,单位(0.1℃) 2 0.1C
  14. 6 电量百分比 类型为 unsigned short, 单位(%) 2
  15. 7 循环计数 类型为 unsigned short 单位(次数) 2
  16. 8 健康状况 类型为 short,单位(%) 2 200-CycleCount/200
  17. 9 电池 1 电压 类型为 unsigned short,单位(mv) 2
  18. 10 电池 2 电压 类型为 unsigned short,单位(mv) 2
  19. 11 电池 3 电压 类型为 unsigned short,单位(mv) 2
  20. 12 电池 4 电压 类型为 unsigned short,单位(mv) 2
  21. 13 电池 5 电压 类型为 unsigned short,单位(mv) 2
  22. 14 电池 6 电压 类型为 unsigned short,单位(mv) 2
  23. 15 电池 7 电压 类型为 unsigned short,单位(mv) 2
  24. 16 电池 8 电压 类型为 unsigned short,单位(mv) 2
  25. 17 电池 9 电压 类型为 unsigned short,单位(mv) 2
  26. 18 电池 10 电压 类型为 unsigned short,单位(mv) 2
  27. 19 电池 11 电压 类型为 unsigned short,单位(mv) 2
  28. 20 电池 12 电压 类型为 unsigned short,单位(mv) 2
  29. //添加了两节电池电压
  30. //21 电池 13 电压 类型为 unsigned short,单位(mv) 2
  31. //22 电池 14 电压 类型为 unsigned short,单位(mv) 2
  32. 21 电池设计容量 类型为 unsigned short,单位(mAh) 2 0
  33. 22 电池剩余容量 类型为 unsigned short,单位(mAh) 2 0
  34. 23/4 错误信息 Uint32 4 每位表示一种错误类型的状态
  35. //傻逼格式又添加了一个电池序列号
  36. 25~32 电池序列号 类型为 char 16
  37. */
  38. /*
  39. 错误信息列表 只关心不能解锁的情况 0x0000 0e02
  40. Bit ID description Note
  41. Bit0 电池温度过低 1---表示错误发生
  42. Bit1 电池过温 0---表示没有错误
  43. Bit2 充电过流
  44. Bit3 放电过流
  45. Bit4 总电压欠压
  46. Bit5 总电压过压
  47. Bit6 单节压差过大
  48. Bit7 单节电压过压
  49. Bit8 单节电压欠压
  50. Bit9 充电短路
  51. Bit10 放电短路
  52. Bit11 电池剩余容量过低
  53. Bit12 非原装充电器充电
  54. Bit13….Bit31 保留
  55. 注: 所有的数据是小端
  56. */
  57. #define TATTU_MAXLEN 200
  58. #pragma pack(1)
  59. typedef struct
  60. {
  61. unsigned char tail_tranid:5;
  62. unsigned char tail_toggle:1;
  63. unsigned char tail_end :1;
  64. unsigned char tail_start :1;
  65. }_TAIL_BYTE;
  66. #pragma pack()
  67. #pragma pack(1)
  68. typedef struct
  69. {
  70. //unsigned short def_info[26]; //tattu
  71. unsigned short tattu_company;
  72. unsigned short tattu_type;
  73. unsigned short tattu_volt;
  74. short tattu_cur;
  75. unsigned short tattu_temp;
  76. unsigned short tattu_perc;
  77. unsigned short tattu_cycle;
  78. unsigned short tattu_health;
  79. unsigned short tattu_v1;
  80. unsigned short tattu_v2;
  81. unsigned short tattu_v3;
  82. unsigned short tattu_v4;
  83. unsigned short tattu_v5;
  84. unsigned short tattu_v6;
  85. unsigned short tattu_v7;
  86. unsigned short tattu_v8;
  87. unsigned short tattu_v9;
  88. unsigned short tattu_v10;
  89. unsigned short tattu_v11;
  90. unsigned short tattu_v12;
  91. unsigned short tattu_v13;
  92. unsigned short tattu_v14;
  93. unsigned short tattu_descapa;
  94. unsigned short tattu_recapa;
  95. unsigned int tattu_err;
  96. unsigned char tuattu_id[16];
  97. unsigned short tattu_cnum; //tattu
  98. }_TATTU_INFO;
  99. #pragma pack()
  100. //extern _TATTU_INFO ttu_inf;
  101. #pragma pack(1)
  102. typedef struct {
  103. uint32_t deviceCanID;
  104. unsigned char Tattu_recv_buf[TATTU_MAXLEN];
  105. Connect_check Tattu_Link;
  106. short Tattu_recv_index;
  107. //获取到起始标志位
  108. bool Tattu_get_s;
  109. _TAIL_BYTE ttu_tailbyte;
  110. _TATTU_INFO ttu_inf;
  111. }_TATTU_DEVICE;
  112. #pragma pack()
  113. extern _TATTU_DEVICE tattu_device1, tattu_device2;
  114. extern comp_status tattu_link_status;
  115. void TattuCanRecvHookFunction(uint32_t ttuCanID, uint8_t data[], uint8_t len);
  116. extern uint16_t CCITT_CRC16;
  117. void CCITT_CRC16Init(uint8_t const *bytes, uint16_t len);
  118. void CCITT_CRC_ARRAY(uint8_t const * bytes, uint16_t len);
  119. #endif