56 #ifndef FOXBMS__ADI_ADES183X_PEC_H_
57 #define FOXBMS__ADI_ADES183X_PEC_H_
68 #define ADI_PEC_BYTE_SIZE (8u)
69 #define ADI_PEC_ONE_BYTE_MASK (0xFFu)
70 #define ADI_PEC_PRECOMPUTED_TABLE_SIZE (256u)
72 #define ADI_PEC15_POLYNOMIAL_SIZE (15u)
73 #define ADI_PEC15_SEED (0x10u)
74 #define ADI_PEC15_MASK (0x7FFFu)
76 #define ADI_PEC10_POLYNOMIAL (0x48Fu)
77 #define ADI_PEC10_POLYNOMIAL_SIZE (10u)
78 #define ADI_PEC10_SEED (0x10u)
79 #define ADI_PEC10_MASK (0x3FFu)
80 #define ADI_PEC10_MSB_MASK (0x200u)
81 #define ADI_PEC10_COMMAND_COUNTER_SIZE_IN_BITS (6u)
82 #define ADI_PEC10_COMMAND_COUNTER_MASK (0xFCu)
95 extern uint16_t
ADI_Pec15(uint8_t length, uint8_t *data);
105 extern uint16_t
ADI_Pec10(uint8_t length, uint8_t *data,
bool receive);
108 #ifdef UNITY_UNIT_TEST
uint16_t ADI_Pec10(uint8_t length, uint8_t *data, bool receive)
calculates the PEC10 K
uint16_t ADI_Pec15(uint8_t length, uint8_t *data)
calculates the PEC15