diff options
author | Xiao Pan <xyz@flylightning.xyz> | 2025-04-24 02:05:38 -0700 |
---|---|---|
committer | Xiao Pan <xyz@flylightning.xyz> | 2025-04-24 02:05:38 -0700 |
commit | 6ce4a25796f1694c5ce749f1da3b3f753500e05d (patch) | |
tree | 493a3a6b85d0e08aa7b458e46c365e113c84aba4 /all_SRE_edited.c |
init
Diffstat (limited to 'all_SRE_edited.c')
-rw-r--r-- | all_SRE_edited.c | 17057 |
1 files changed, 17057 insertions, 0 deletions
diff --git a/all_SRE_edited.c b/all_SRE_edited.c new file mode 100644 index 0000000..53a30db --- /dev/null +++ b/all_SRE_edited.c @@ -0,0 +1,17057 @@ +/* Generated by DBCC, see <https://github.com/howerj/dbcc> */ +#include "all_SRE_edited.h" +#include <inttypes.h> +#include <assert.h> + +#define UNUSED(X) ((void)(X)) + +static inline uint64_t reverse_byte_order(uint64_t x) { + x = (x & 0x00000000FFFFFFFF) << 32 | (x & 0xFFFFFFFF00000000) >> 32; + x = (x & 0x0000FFFF0000FFFF) << 16 | (x & 0xFFFF0000FFFF0000) >> 16; + x = (x & 0x00FF00FF00FF00FF) << 8 | (x & 0xFF00FF00FF00FF00) >> 8; + return x; +} + +static inline int print_helper(int r, int print_return_value) { + return ((r >= 0) && (print_return_value >= 0)) ? r + print_return_value : -1; +} + +static int pack_can_0x0a0_MCM_Temperature_Set_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Module_A_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature)) & 0xffff; + i |= x; + /* MCM_Module_B_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Module_C_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Gate_Driver_Board_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a0_MCM_Temperature_Set_1_tx = 1; + return 8; +} + +static int unpack_can_0x0a0_MCM_Temperature_Set_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Module_A_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature = x; + /* MCM_Module_B_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature = x; + /* MCM_Module_C_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature = x; + /* MCM_Gate_Driver_Board_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp = x; + o->can_0x0a0_MCM_Temperature_Set_1_rx = 1; + o->can_0x0a0_MCM_Temperature_Set_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a0_MCM_Module_A_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a0_MCM_Module_A_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature = in; + return 0; +} + +int decode_can_0x0a0_MCM_Module_B_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a0_MCM_Module_B_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature = in; + return 0; +} + +int decode_can_0x0a0_MCM_Module_C_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a0_MCM_Module_C_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature = in; + return 0; +} + +int decode_can_0x0a0_MCM_Gate_Driver_Board_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a0_MCM_Gate_Driver_Board_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp = in; + return 0; +} + +int print_can_0x0a0_MCM_Temperature_Set_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Module_A_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_A_Temperature))); + r = print_helper(r, fprintf(output, "MCM_Module_B_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_B_Temperature))); + r = print_helper(r, fprintf(output, "MCM_Module_C_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Module_C_Temperature))); + r = print_helper(r, fprintf(output, "MCM_Gate_Driver_Board_Temp = (wire: %.0f)\n", (double)(o->can_0x0a0_MCM_Temperature_Set_1.MCM_Gate_Driver_Board_Temp))); + return r; +} + +static int pack_can_0x0a1_MCM_Temperature_Set_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Control_Board_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature)) & 0xffff; + i |= x; + /* MCM_RTD1_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_RTD2_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_RTD3_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a1_MCM_Temperature_Set_2_tx = 1; + return 8; +} + +static int unpack_can_0x0a1_MCM_Temperature_Set_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Control_Board_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature = x; + /* MCM_RTD1_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature = x; + /* MCM_RTD2_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature = x; + /* MCM_RTD3_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature = x; + o->can_0x0a1_MCM_Temperature_Set_2_rx = 1; + o->can_0x0a1_MCM_Temperature_Set_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a1_MCM_Control_Board_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a1_MCM_Control_Board_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature = in; + return 0; +} + +int decode_can_0x0a1_MCM_RTD1_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a1_MCM_RTD1_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature = in; + return 0; +} + +int decode_can_0x0a1_MCM_RTD2_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a1_MCM_RTD2_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature = in; + return 0; +} + +int decode_can_0x0a1_MCM_RTD3_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a1_MCM_RTD3_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature = in; + return 0; +} + +int print_can_0x0a1_MCM_Temperature_Set_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Control_Board_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_Control_Board_Temperature))); + r = print_helper(r, fprintf(output, "MCM_RTD1_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD1_Temperature))); + r = print_helper(r, fprintf(output, "MCM_RTD2_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD2_Temperature))); + r = print_helper(r, fprintf(output, "MCM_RTD3_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a1_MCM_Temperature_Set_2.MCM_RTD3_Temperature))); + return r; +} + +static int pack_can_0x0a2_MCM_Temperature_Set_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_RTD4_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature)) & 0xffff; + i |= x; + /* MCM_RTD5_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Motor_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Torque_Shudder: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a2_MCM_Temperature_Set_3_tx = 1; + return 8; +} + +static int unpack_can_0x0a2_MCM_Temperature_Set_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_RTD4_Temperature: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature = x; + /* MCM_RTD5_Temperature: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature = x; + /* MCM_Motor_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature = x; + /* MCM_Torque_Shudder: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder = x; + o->can_0x0a2_MCM_Temperature_Set_3_rx = 1; + o->can_0x0a2_MCM_Temperature_Set_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a2_MCM_RTD4_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a2_MCM_RTD4_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature = in; + return 0; +} + +int decode_can_0x0a2_MCM_RTD5_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a2_MCM_RTD5_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature = in; + return 0; +} + +int decode_can_0x0a2_MCM_Motor_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a2_MCM_Motor_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature = in; + return 0; +} + +int decode_can_0x0a2_MCM_Torque_Shudder(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a2_MCM_Torque_Shudder(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder = in; + return 0; +} + +int print_can_0x0a2_MCM_Temperature_Set_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_RTD4_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD4_Temperature))); + r = print_helper(r, fprintf(output, "MCM_RTD5_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_RTD5_Temperature))); + r = print_helper(r, fprintf(output, "MCM_Motor_Temperature = (wire: %.0f)\n", (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Motor_Temperature))); + r = print_helper(r, fprintf(output, "MCM_Torque_Shudder = (wire: %.0f)\n", (double)(o->can_0x0a2_MCM_Temperature_Set_3.MCM_Torque_Shudder))); + return r; +} + +static int pack_can_0x0a3_MCM_Analog_Input_Voltages(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Analog_Input_1: start-bit 0, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1)) & 0xffff; + i |= x; + /* MCM_Analog_Input_2: start-bit 16, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Analog_Input_3: start-bit 32, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Analog_Input_4: start-bit 48, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a3_MCM_Analog_Input_Voltages_tx = 1; + return 8; +} + +static int unpack_can_0x0a3_MCM_Analog_Input_Voltages(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Analog_Input_1: start-bit 0, length 16, endianess intel, scaling 0.01, offset 0 */ + x = i & 0xffff; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1 = x; + /* MCM_Analog_Input_2: start-bit 16, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2 = x; + /* MCM_Analog_Input_3: start-bit 32, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3 = x; + /* MCM_Analog_Input_4: start-bit 48, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4 = x; + o->can_0x0a3_MCM_Analog_Input_Voltages_rx = 1; + o->can_0x0a3_MCM_Analog_Input_Voltages_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a3_MCM_Analog_Input_1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a3_MCM_Analog_Input_1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1 = in; + return 0; +} + +int decode_can_0x0a3_MCM_Analog_Input_2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a3_MCM_Analog_Input_2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2 = in; + return 0; +} + +int decode_can_0x0a3_MCM_Analog_Input_3(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a3_MCM_Analog_Input_3(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3 = in; + return 0; +} + +int decode_can_0x0a3_MCM_Analog_Input_4(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a3_MCM_Analog_Input_4(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4 = in; + return 0; +} + +int print_can_0x0a3_MCM_Analog_Input_Voltages(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Analog_Input_1 = (wire: %.0f)\n", (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_1))); + r = print_helper(r, fprintf(output, "MCM_Analog_Input_2 = (wire: %.0f)\n", (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_2))); + r = print_helper(r, fprintf(output, "MCM_Analog_Input_3 = (wire: %.0f)\n", (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_3))); + r = print_helper(r, fprintf(output, "MCM_Analog_Input_4 = (wire: %.0f)\n", (double)(o->can_0x0a3_MCM_Analog_Input_Voltages.MCM_Analog_Input_4))); + return r; +} + +static int pack_can_0x0a4_MCM_Digital_Input_Status(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Digital_Input_1: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_1)) & 0x1; + i |= x; + /* MCM_Digital_Input_2: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_2)) & 0x1; + x <<= 8; + i |= x; + /* MCM_Digital_Input_3: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_3)) & 0x1; + x <<= 16; + i |= x; + /* MCM_Digital_Input_4: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_4)) & 0x1; + x <<= 24; + i |= x; + /* MCM_Digital_Input_5: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_5)) & 0x1; + x <<= 32; + i |= x; + /* MCM_Digital_Input_6: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_6)) & 0x1; + x <<= 40; + i |= x; + /* MCM_Digital_Input_7: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_7)) & 0x1; + x <<= 48; + i |= x; + /* MCM_Digital_Input_8: start-bit 56, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_8)) & 0x1; + x <<= 56; + i |= x; + *data = (i); + o->can_0x0a4_MCM_Digital_Input_Status_tx = 1; + return 8; +} + +static int unpack_can_0x0a4_MCM_Digital_Input_Status(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Digital_Input_1: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = i & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_1 = x; + /* MCM_Digital_Input_2: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_2 = x; + /* MCM_Digital_Input_3: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_3 = x; + /* MCM_Digital_Input_4: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_4 = x; + /* MCM_Digital_Input_5: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_5 = x; + /* MCM_Digital_Input_6: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 40) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_6 = x; + /* MCM_Digital_Input_7: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_7 = x; + /* MCM_Digital_Input_8: start-bit 56, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 56) & 0x1; + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_8 = x; + o->can_0x0a4_MCM_Digital_Input_Status_rx = 1; + o->can_0x0a4_MCM_Digital_Input_Status_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a4_MCM_Digital_Input_1(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_1); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_1(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_1 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_2(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_2); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_2(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_2 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_3(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_3); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_3(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_3 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_4(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_4); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_4(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_4 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_5(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_5); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_5(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_5 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_6(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_6); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_6(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_6 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_7(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_7); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_7(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_7 = in; + return 0; +} + +int decode_can_0x0a4_MCM_Digital_Input_8(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_8); + *out = rval; + return 0; +} + +int encode_can_0x0a4_MCM_Digital_Input_8(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_8 = in; + return 0; +} + +int print_can_0x0a4_MCM_Digital_Input_Status(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Digital_Input_1 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_1))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_2 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_2))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_3 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_3))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_4 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_4))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_5 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_5))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_6 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_6))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_7 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_7))); + r = print_helper(r, fprintf(output, "MCM_Digital_Input_8 = (wire: %.0f)\n", (double)(o->can_0x0a4_MCM_Digital_Input_Status.MCM_Digital_Input_8))); + return r; +} + +static int pack_can_0x0a5_MCM_Motor_Position_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Motor_Angle: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle)) & 0xffff; + i |= x; + /* MCM_Motor_Speed: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Speed)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Electrical_Output_Freq: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Resolver_Angle: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a5_MCM_Motor_Position_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0a5_MCM_Motor_Position_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Motor_Angle: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle = x; + /* MCM_Motor_Speed: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Speed = x; + /* MCM_Electrical_Output_Freq: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq = x; + /* MCM_Resolver_Angle: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle = x; + o->can_0x0a5_MCM_Motor_Position_Info_rx = 1; + o->can_0x0a5_MCM_Motor_Position_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a5_MCM_Motor_Angle(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle); + rval *= 0.1; + if (rval <= 6553.5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a5_MCM_Motor_Angle(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle = 0; + if (in > 6553.5) + return -1; + in *= 10; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle = in; + return 0; +} + +int decode_can_0x0a5_MCM_Motor_Speed(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Speed); + *out = rval; + return 0; +} + +int encode_can_0x0a5_MCM_Motor_Speed(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Speed = in; + return 0; +} + +int decode_can_0x0a5_MCM_Electrical_Output_Freq(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a5_MCM_Electrical_Output_Freq(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq = in; + return 0; +} + +int decode_can_0x0a5_MCM_Resolver_Angle(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a5_MCM_Resolver_Angle(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle = in; + return 0; +} + +int print_can_0x0a5_MCM_Motor_Position_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Motor_Angle = (wire: %.0f)\n", (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Angle))); + r = print_helper(r, fprintf(output, "MCM_Motor_Speed = (wire: %.0f)\n", (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Motor_Speed))); + r = print_helper(r, fprintf(output, "MCM_Electrical_Output_Freq = (wire: %.0f)\n", (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Electrical_Output_Freq))); + r = print_helper(r, fprintf(output, "MCM_Resolver_Angle = (wire: %.0f)\n", (double)(o->can_0x0a5_MCM_Motor_Position_Info.MCM_Resolver_Angle))); + return r; +} + +static int pack_can_0x0a6_MCM_Current_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Phase_A_Current: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current)) & 0xffff; + i |= x; + /* MCM_Phase_B_Current: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Phase_C_Current: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_DC_Bus_Current: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a6_MCM_Current_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0a6_MCM_Current_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Phase_A_Current: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current = x; + /* MCM_Phase_B_Current: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current = x; + /* MCM_Phase_C_Current: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current = x; + /* MCM_DC_Bus_Current: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current = x; + o->can_0x0a6_MCM_Current_Info_rx = 1; + o->can_0x0a6_MCM_Current_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a6_MCM_Phase_A_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a6_MCM_Phase_A_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current = in; + return 0; +} + +int decode_can_0x0a6_MCM_Phase_B_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a6_MCM_Phase_B_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current = in; + return 0; +} + +int decode_can_0x0a6_MCM_Phase_C_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a6_MCM_Phase_C_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current = in; + return 0; +} + +int decode_can_0x0a6_MCM_DC_Bus_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a6_MCM_DC_Bus_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current = in; + return 0; +} + +int print_can_0x0a6_MCM_Current_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Phase_A_Current = (wire: %.0f)\n", (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_A_Current))); + r = print_helper(r, fprintf(output, "MCM_Phase_B_Current = (wire: %.0f)\n", (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_B_Current))); + r = print_helper(r, fprintf(output, "MCM_Phase_C_Current = (wire: %.0f)\n", (double)(o->can_0x0a6_MCM_Current_Info.MCM_Phase_C_Current))); + r = print_helper(r, fprintf(output, "MCM_DC_Bus_Current = (wire: %.0f)\n", (double)(o->can_0x0a6_MCM_Current_Info.MCM_DC_Bus_Current))); + return r; +} + +static int pack_can_0x0a7_MCM_Voltage_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_DC_Bus_Voltage: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage)) & 0xffff; + i |= x; + /* MCM_Output_Voltage: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Phase_AB_Voltage: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Phase_BC_Voltage: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a7_MCM_Voltage_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0a7_MCM_Voltage_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_DC_Bus_Voltage: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage = x; + /* MCM_Output_Voltage: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage = x; + /* MCM_Phase_AB_Voltage: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage = x; + /* MCM_Phase_BC_Voltage: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage = x; + o->can_0x0a7_MCM_Voltage_Info_rx = 1; + o->can_0x0a7_MCM_Voltage_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a7_MCM_DC_Bus_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a7_MCM_DC_Bus_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage = in; + return 0; +} + +int decode_can_0x0a7_MCM_Output_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a7_MCM_Output_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage = in; + return 0; +} + +int decode_can_0x0a7_MCM_Phase_AB_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a7_MCM_Phase_AB_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage = in; + return 0; +} + +int decode_can_0x0a7_MCM_Phase_BC_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a7_MCM_Phase_BC_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage = in; + return 0; +} + +int print_can_0x0a7_MCM_Voltage_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_DC_Bus_Voltage = (wire: %.0f)\n", (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_DC_Bus_Voltage))); + r = print_helper(r, fprintf(output, "MCM_Output_Voltage = (wire: %.0f)\n", (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Output_Voltage))); + r = print_helper(r, fprintf(output, "MCM_Phase_AB_Voltage = (wire: %.0f)\n", (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_AB_Voltage))); + r = print_helper(r, fprintf(output, "MCM_Phase_BC_Voltage = (wire: %.0f)\n", (double)(o->can_0x0a7_MCM_Voltage_Info.MCM_Phase_BC_Voltage))); + return r; +} + +static int pack_can_0x0a8_MCM_Flux_ID_IQ_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Flux_Command: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command)) & 0xffff; + i |= x; + /* MCM_Flux_Feedback: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Id: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Iq: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a8_MCM_Flux_ID_IQ_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0a8_MCM_Flux_ID_IQ_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Flux_Command: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command = x; + /* MCM_Flux_Feedback: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback = x; + /* MCM_Id: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id = x; + /* MCM_Iq: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq = x; + o->can_0x0a8_MCM_Flux_ID_IQ_Info_rx = 1; + o->can_0x0a8_MCM_Flux_ID_IQ_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a8_MCM_Flux_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command); + rval *= 0.001; + if ((rval >= -32.768) && (rval <= 32.767)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a8_MCM_Flux_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command = 0; + if (in < -32.768) + return -1; + if (in > 32.767) + return -1; + in *= 1000; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command = in; + return 0; +} + +int decode_can_0x0a8_MCM_Flux_Feedback(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback); + rval *= 0.001; + if ((rval >= -32.768) && (rval <= 32.767)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a8_MCM_Flux_Feedback(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback = 0; + if (in < -32.768) + return -1; + if (in > 32.767) + return -1; + in *= 1000; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback = in; + return 0; +} + +int decode_can_0x0a8_MCM_Id(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a8_MCM_Id(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id = in; + return 0; +} + +int decode_can_0x0a8_MCM_Iq(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a8_MCM_Iq(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq = in; + return 0; +} + +int print_can_0x0a8_MCM_Flux_ID_IQ_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Flux_Command = (wire: %.0f)\n", (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Command))); + r = print_helper(r, fprintf(output, "MCM_Flux_Feedback = (wire: %.0f)\n", (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Flux_Feedback))); + r = print_helper(r, fprintf(output, "MCM_Id = (wire: %.0f)\n", (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Id))); + r = print_helper(r, fprintf(output, "MCM_Iq = (wire: %.0f)\n", (double)(o->can_0x0a8_MCM_Flux_ID_IQ_Info.MCM_Iq))); + return r; +} + +static int pack_can_0x0a9_MCM_Internal_Voltages(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Reference_Voltage_1_5: start-bit 0, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5)) & 0xffff; + i |= x; + /* MCM_Reference_Voltage_2_5: start-bit 16, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Reference_Voltage_5_0: start-bit 32, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Reference_Voltage_12_0: start-bit 48, length 16, endianess intel, scaling 0.01, offset 0 */ + x = ((uint16_t)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0a9_MCM_Internal_Voltages_tx = 1; + return 8; +} + +static int unpack_can_0x0a9_MCM_Internal_Voltages(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Reference_Voltage_1_5: start-bit 0, length 16, endianess intel, scaling 0.01, offset 0 */ + x = i & 0xffff; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5 = x; + /* MCM_Reference_Voltage_2_5: start-bit 16, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5 = x; + /* MCM_Reference_Voltage_5_0: start-bit 32, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0 = x; + /* MCM_Reference_Voltage_12_0: start-bit 48, length 16, endianess intel, scaling 0.01, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0 = x; + o->can_0x0a9_MCM_Internal_Voltages_rx = 1; + o->can_0x0a9_MCM_Internal_Voltages_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0a9_MCM_Reference_Voltage_1_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a9_MCM_Reference_Voltage_1_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5 = in; + return 0; +} + +int decode_can_0x0a9_MCM_Reference_Voltage_2_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a9_MCM_Reference_Voltage_2_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5 = in; + return 0; +} + +int decode_can_0x0a9_MCM_Reference_Voltage_5_0(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a9_MCM_Reference_Voltage_5_0(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0 = in; + return 0; +} + +int decode_can_0x0a9_MCM_Reference_Voltage_12_0(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0); + rval *= 0.01; + if ((rval >= -327.68) && (rval <= 327.67)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0a9_MCM_Reference_Voltage_12_0(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0 = 0; + if (in < -327.68) + return -1; + if (in > 327.67) + return -1; + in *= 100; + o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0 = in; + return 0; +} + +int print_can_0x0a9_MCM_Internal_Voltages(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Reference_Voltage_1_5 = (wire: %.0f)\n", (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_1_5))); + r = print_helper(r, fprintf(output, "MCM_Reference_Voltage_2_5 = (wire: %.0f)\n", (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_2_5))); + r = print_helper(r, fprintf(output, "MCM_Reference_Voltage_5_0 = (wire: %.0f)\n", (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_5_0))); + r = print_helper(r, fprintf(output, "MCM_Reference_Voltage_12_0 = (wire: %.0f)\n", (double)(o->can_0x0a9_MCM_Internal_Voltages.MCM_Reference_Voltage_12_0))); + return r; +} + +static int pack_can_0x0aa_MCM_Internal_States(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Int_VSM_State: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State)) & 0xffff; + i |= x; + /* MCM_Int_Inverter_State: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Inverter_State)) & 0xff; + x <<= 16; + i |= x; + /* MCM_Int_Direction_Command: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command)) & 0xff; + x <<= 56; + i |= x; + /* MCM_Int_Invert_Dischrg_State: start-bit 37, length 3, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Dischrg_State)) & 0x7; + x <<= 37; + i |= x; + /* MCM_Int_Relay_1_Status: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_1_Status)) & 0x1; + x <<= 24; + i |= x; + /* MCM_Int_Relay_2_Status: start-bit 25, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_2_Status)) & 0x1; + x <<= 25; + i |= x; + /* MCM_Int_Relay_3_Status: start-bit 26, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_3_Status)) & 0x1; + x <<= 26; + i |= x; + /* MCM_Int_Relay_4_Status: start-bit 27, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_4_Status)) & 0x1; + x <<= 27; + i |= x; + /* MCM_Int_Relay_5_Status: start-bit 28, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_5_Status)) & 0x1; + x <<= 28; + i |= x; + /* MCM_Int_Relay_6_Status: start-bit 29, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_6_Status)) & 0x1; + x <<= 29; + i |= x; + /* MCM_Int_Invert_Run_Mode: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Run_Mode)) & 0x1; + x <<= 32; + i |= x; + /* MCM_Int_Invert_Command_Mode: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Command_Mode)) & 0x1; + x <<= 40; + i |= x; + /* MCM_Int_Invert_Enable_State: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Enable_State)) & 0x1; + x <<= 48; + i |= x; + /* MCM_Int_Invert_En_Lockout: start-bit 55, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_En_Lockout)) & 0x1; + x <<= 55; + i |= x; + *data = (i); + o->can_0x0aa_MCM_Internal_States_tx = 1; + return 8; +} + +static int unpack_can_0x0aa_MCM_Internal_States(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Int_VSM_State: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State = x; + /* MCM_Int_Inverter_State: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Inverter_State = x; + /* MCM_Int_Direction_Command: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 56) & 0xff; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command = x; + /* MCM_Int_Invert_Dischrg_State: start-bit 37, length 3, endianess intel, scaling 1, offset 0 */ + x = (i >> 37) & 0x7; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Dischrg_State = x; + /* MCM_Int_Relay_1_Status: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_1_Status = x; + /* MCM_Int_Relay_2_Status: start-bit 25, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 25) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_2_Status = x; + /* MCM_Int_Relay_3_Status: start-bit 26, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 26) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_3_Status = x; + /* MCM_Int_Relay_4_Status: start-bit 27, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 27) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_4_Status = x; + /* MCM_Int_Relay_5_Status: start-bit 28, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 28) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_5_Status = x; + /* MCM_Int_Relay_6_Status: start-bit 29, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 29) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_6_Status = x; + /* MCM_Int_Invert_Run_Mode: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Run_Mode = x; + /* MCM_Int_Invert_Command_Mode: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 40) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Command_Mode = x; + /* MCM_Int_Invert_Enable_State: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Enable_State = x; + /* MCM_Int_Invert_En_Lockout: start-bit 55, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 55) & 0x1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_En_Lockout = x; + o->can_0x0aa_MCM_Internal_States_rx = 1; + o->can_0x0aa_MCM_Internal_States_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0aa_MCM_Int_VSM_State(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State); + if (rval <= 15) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x0aa_MCM_Int_VSM_State(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State = 0; + if (in > 15) + return -1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Inverter_State(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Inverter_State); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Inverter_State(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Inverter_State = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Direction_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x0aa_MCM_Int_Direction_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command = 0; + if (in > 1) + return -1; + o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Invert_Dischrg_State(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Dischrg_State); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Invert_Dischrg_State(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Dischrg_State = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_1_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_1_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_1_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_1_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_2_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_2_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_2_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_2_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_3_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_3_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_3_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_3_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_4_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_4_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_4_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_4_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_5_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_5_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_5_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_5_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Relay_6_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_6_Status); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Relay_6_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_6_Status = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Invert_Run_Mode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Run_Mode); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Invert_Run_Mode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Run_Mode = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Invert_Command_Mode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Command_Mode); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Invert_Command_Mode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Command_Mode = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Invert_Enable_State(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Enable_State); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Invert_Enable_State(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Enable_State = in; + return 0; +} + +int decode_can_0x0aa_MCM_Int_Invert_En_Lockout(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_En_Lockout); + *out = rval; + return 0; +} + +int encode_can_0x0aa_MCM_Int_Invert_En_Lockout(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_En_Lockout = in; + return 0; +} + +int print_can_0x0aa_MCM_Internal_States(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Int_VSM_State = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_VSM_State))); + r = print_helper(r, fprintf(output, "MCM_Int_Inverter_State = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Inverter_State))); + r = print_helper(r, fprintf(output, "MCM_Int_Direction_Command = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Direction_Command))); + r = print_helper(r, fprintf(output, "MCM_Int_Invert_Dischrg_State = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Dischrg_State))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_1_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_1_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_2_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_2_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_3_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_3_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_4_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_4_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_5_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_5_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Relay_6_Status = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Relay_6_Status))); + r = print_helper(r, fprintf(output, "MCM_Int_Invert_Run_Mode = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Run_Mode))); + r = print_helper(r, fprintf(output, "MCM_Int_Invert_Command_Mode = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Command_Mode))); + r = print_helper(r, fprintf(output, "MCM_Int_Invert_Enable_State = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_Enable_State))); + r = print_helper(r, fprintf(output, "MCM_Int_Invert_En_Lockout = (wire: %.0f)\n", (double)(o->can_0x0aa_MCM_Internal_States.MCM_Int_Invert_En_Lockout))); + return r; +} + +static int pack_can_0x0ab_MCM_Fault_Codes(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Post_Fault_Lo: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Lo)) & 0xffff; + i |= x; + /* MCM_Post_Fault_Hi: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Hi)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Run_Fault_Lo: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Lo)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Run_Fault_Hi: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Hi)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0ab_MCM_Fault_Codes_tx = 1; + return 8; +} + +static int unpack_can_0x0ab_MCM_Fault_Codes(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Post_Fault_Lo: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Lo = x; + /* MCM_Post_Fault_Hi: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Hi = x; + /* MCM_Run_Fault_Lo: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Lo = x; + /* MCM_Run_Fault_Hi: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Hi = x; + o->can_0x0ab_MCM_Fault_Codes_rx = 1; + o->can_0x0ab_MCM_Fault_Codes_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0ab_MCM_Post_Fault_Lo(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Lo); + *out = rval; + return 0; +} + +int encode_can_0x0ab_MCM_Post_Fault_Lo(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Lo = in; + return 0; +} + +int decode_can_0x0ab_MCM_Post_Fault_Hi(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Hi); + *out = rval; + return 0; +} + +int encode_can_0x0ab_MCM_Post_Fault_Hi(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Hi = in; + return 0; +} + +int decode_can_0x0ab_MCM_Run_Fault_Lo(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Lo); + *out = rval; + return 0; +} + +int encode_can_0x0ab_MCM_Run_Fault_Lo(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Lo = in; + return 0; +} + +int decode_can_0x0ab_MCM_Run_Fault_Hi(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Hi); + *out = rval; + return 0; +} + +int encode_can_0x0ab_MCM_Run_Fault_Hi(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Hi = in; + return 0; +} + +int print_can_0x0ab_MCM_Fault_Codes(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Post_Fault_Lo = (wire: %.0f)\n", (double)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Lo))); + r = print_helper(r, fprintf(output, "MCM_Post_Fault_Hi = (wire: %.0f)\n", (double)(o->can_0x0ab_MCM_Fault_Codes.MCM_Post_Fault_Hi))); + r = print_helper(r, fprintf(output, "MCM_Run_Fault_Lo = (wire: %.0f)\n", (double)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Lo))); + r = print_helper(r, fprintf(output, "MCM_Run_Fault_Hi = (wire: %.0f)\n", (double)(o->can_0x0ab_MCM_Fault_Codes.MCM_Run_Fault_Hi))); + return r; +} + +static int pack_can_0x0ac_MCM_Torque_And_Timer_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Power_On_Timer: start-bit 32, length 32, endianess intel, scaling 0.003, offset 0 */ + x = ((uint32_t)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer)) & 0xffffffff; + x <<= 32; + i |= x; + /* MCM_Commanded_Torque: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque)) & 0xffff; + i |= x; + /* MCM_Torque_Feedback: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback)) & 0xffff; + x <<= 16; + i |= x; + *data = (i); + o->can_0x0ac_MCM_Torque_And_Timer_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0ac_MCM_Torque_And_Timer_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Power_On_Timer: start-bit 32, length 32, endianess intel, scaling 0.003, offset 0 */ + x = (i >> 32) & 0xffffffff; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer = x; + /* MCM_Commanded_Torque: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque = x; + /* MCM_Torque_Feedback: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback = x; + o->can_0x0ac_MCM_Torque_And_Timer_Info_rx = 1; + o->can_0x0ac_MCM_Torque_And_Timer_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0ac_MCM_Power_On_Timer(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer); + rval *= 0.003; + if (rval <= 1.28848e+07) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ac_MCM_Power_On_Timer(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer = 0; + if (in > 1.28848e+07) + return -1; + in *= 333.333; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer = in; + return 0; +} + +int decode_can_0x0ac_MCM_Commanded_Torque(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ac_MCM_Commanded_Torque(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque = in; + return 0; +} + +int decode_can_0x0ac_MCM_Torque_Feedback(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ac_MCM_Torque_Feedback(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback = in; + return 0; +} + +int print_can_0x0ac_MCM_Torque_And_Timer_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Power_On_Timer = (wire: %.0f)\n", (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Power_On_Timer))); + r = print_helper(r, fprintf(output, "MCM_Commanded_Torque = (wire: %.0f)\n", (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Commanded_Torque))); + r = print_helper(r, fprintf(output, "MCM_Torque_Feedback = (wire: %.0f)\n", (double)(o->can_0x0ac_MCM_Torque_And_Timer_Info.MCM_Torque_Feedback))); + return r; +} + +static int pack_can_0x0ad_MCM_Modulation_And_Flux_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Modulation_Index: start-bit 0, length 16, endianess intel, scaling 0.0001, offset 0 */ + x = ((uint16_t)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index)) & 0xffff; + i |= x; + /* MCM_Flux_Weakening_Output: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Id_Command: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Iq_Command: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0ad_MCM_Modulation_And_Flux_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0ad_MCM_Modulation_And_Flux_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Modulation_Index: start-bit 0, length 16, endianess intel, scaling 0.0001, offset 0 */ + x = i & 0xffff; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index = x; + /* MCM_Flux_Weakening_Output: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output = x; + /* MCM_Id_Command: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command = x; + /* MCM_Iq_Command: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command = x; + o->can_0x0ad_MCM_Modulation_And_Flux_Info_rx = 1; + o->can_0x0ad_MCM_Modulation_And_Flux_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0ad_MCM_Modulation_Index(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index); + rval *= 0.0001; + if ((rval >= -3.2768) && (rval <= 3.2767)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ad_MCM_Modulation_Index(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index = 0; + if (in < -3.2768) + return -1; + if (in > 3.2767) + return -1; + in *= 10000; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index = in; + return 0; +} + +int decode_can_0x0ad_MCM_Flux_Weakening_Output(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ad_MCM_Flux_Weakening_Output(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output = in; + return 0; +} + +int decode_can_0x0ad_MCM_Id_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ad_MCM_Id_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command = in; + return 0; +} + +int decode_can_0x0ad_MCM_Iq_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0ad_MCM_Iq_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command = in; + return 0; +} + +int print_can_0x0ad_MCM_Modulation_And_Flux_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Modulation_Index = (wire: %.0f)\n", (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Modulation_Index))); + r = print_helper(r, fprintf(output, "MCM_Flux_Weakening_Output = (wire: %.0f)\n", (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Flux_Weakening_Output))); + r = print_helper(r, fprintf(output, "MCM_Id_Command = (wire: %.0f)\n", (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Id_Command))); + r = print_helper(r, fprintf(output, "MCM_Iq_Command = (wire: %.0f)\n", (double)(o->can_0x0ad_MCM_Modulation_And_Flux_Info.MCM_Iq_Command))); + return r; +} + +static int pack_can_0x0ae_MCM_Firmware_Info(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Project_Code_EEP_Ver: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_Project_Code_EEP_Ver)) & 0xffff; + i |= x; + /* MCM_SW_Version: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_SW_Version)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_DateCode_MMDD: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_MMDD)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_DateCode_YYYY: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_YYYY)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x0ae_MCM_Firmware_Info_tx = 1; + return 8; +} + +static int unpack_can_0x0ae_MCM_Firmware_Info(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Project_Code_EEP_Ver: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x0ae_MCM_Firmware_Info.MCM_Project_Code_EEP_Ver = x; + /* MCM_SW_Version: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0ae_MCM_Firmware_Info.MCM_SW_Version = x; + /* MCM_DateCode_MMDD: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_MMDD = x; + /* MCM_DateCode_YYYY: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_YYYY = x; + o->can_0x0ae_MCM_Firmware_Info_rx = 1; + o->can_0x0ae_MCM_Firmware_Info_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0ae_MCM_Project_Code_EEP_Ver(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_Project_Code_EEP_Ver); + *out = rval; + return 0; +} + +int encode_can_0x0ae_MCM_Project_Code_EEP_Ver(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ae_MCM_Firmware_Info.MCM_Project_Code_EEP_Ver = in; + return 0; +} + +int decode_can_0x0ae_MCM_SW_Version(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_SW_Version); + *out = rval; + return 0; +} + +int encode_can_0x0ae_MCM_SW_Version(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ae_MCM_Firmware_Info.MCM_SW_Version = in; + return 0; +} + +int decode_can_0x0ae_MCM_DateCode_MMDD(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_MMDD); + *out = rval; + return 0; +} + +int encode_can_0x0ae_MCM_DateCode_MMDD(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_MMDD = in; + return 0; +} + +int decode_can_0x0ae_MCM_DateCode_YYYY(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_YYYY); + *out = rval; + return 0; +} + +int encode_can_0x0ae_MCM_DateCode_YYYY(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_YYYY = in; + return 0; +} + +int print_can_0x0ae_MCM_Firmware_Info(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Project_Code_EEP_Ver = (wire: %.0f)\n", (double)(o->can_0x0ae_MCM_Firmware_Info.MCM_Project_Code_EEP_Ver))); + r = print_helper(r, fprintf(output, "MCM_SW_Version = (wire: %.0f)\n", (double)(o->can_0x0ae_MCM_Firmware_Info.MCM_SW_Version))); + r = print_helper(r, fprintf(output, "MCM_DateCode_MMDD = (wire: %.0f)\n", (double)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_MMDD))); + r = print_helper(r, fprintf(output, "MCM_DateCode_YYYY = (wire: %.0f)\n", (double)(o->can_0x0ae_MCM_Firmware_Info.MCM_DateCode_YYYY))); + return r; +} + +static int pack_can_0x0af_MCM_Diag_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Diag_Data_1: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_1)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Diag_Data_2: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_2)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Diag_Data_3: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_3)) & 0xffff; + x <<= 48; + i |= x; + /* MCM_Buffer_Record: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Record)) & 0xff; + i |= x; + /* MCM_Buffer_Segment: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment)) & 0xff; + x <<= 8; + i |= x; + *data = (i); + o->can_0x0af_MCM_Diag_Data_tx = 1; + return 8; +} + +static int unpack_can_0x0af_MCM_Diag_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Diag_Data_1: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_1 = x; + /* MCM_Diag_Data_2: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_2 = x; + /* MCM_Diag_Data_3: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_3 = x; + /* MCM_Buffer_Record: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Record = x; + /* MCM_Buffer_Segment: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment = x; + o->can_0x0af_MCM_Diag_Data_rx = 1; + o->can_0x0af_MCM_Diag_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0af_MCM_Diag_Data_1(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_1); + *out = rval; + return 0; +} + +int encode_can_0x0af_MCM_Diag_Data_1(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_1 = in; + return 0; +} + +int decode_can_0x0af_MCM_Diag_Data_2(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_2); + *out = rval; + return 0; +} + +int encode_can_0x0af_MCM_Diag_Data_2(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_2 = in; + return 0; +} + +int decode_can_0x0af_MCM_Diag_Data_3(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_3); + *out = rval; + return 0; +} + +int encode_can_0x0af_MCM_Diag_Data_3(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_3 = in; + return 0; +} + +int decode_can_0x0af_MCM_Buffer_Record(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Record); + *out = rval; + return 0; +} + +int encode_can_0x0af_MCM_Buffer_Record(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Record = in; + return 0; +} + +int decode_can_0x0af_MCM_Buffer_Segment(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment); + if (rval <= 5) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x0af_MCM_Buffer_Segment(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment = 0; + if (in > 5) + return -1; + o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment = in; + return 0; +} + +int print_can_0x0af_MCM_Diag_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Diag_Data_1 = (wire: %.0f)\n", (double)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_1))); + r = print_helper(r, fprintf(output, "MCM_Diag_Data_2 = (wire: %.0f)\n", (double)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_2))); + r = print_helper(r, fprintf(output, "MCM_Diag_Data_3 = (wire: %.0f)\n", (double)(o->can_0x0af_MCM_Diag_Data.MCM_Diag_Data_3))); + r = print_helper(r, fprintf(output, "MCM_Buffer_Record = (wire: %.0f)\n", (double)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Record))); + r = print_helper(r, fprintf(output, "MCM_Buffer_Segment = (wire: %.0f)\n", (double)(o->can_0x0af_MCM_Diag_Data.MCM_Buffer_Segment))); + return r; +} + +static int pack_can_0x0c0_MCM_Command_Messages(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Torque_Command: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command)) & 0xffff; + i |= x; + /* MCM_Speed_Command: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Command)) & 0xffff; + x <<= 16; + i |= x; + /* MCM_Torque_Limit_Command: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command)) & 0xffff; + x <<= 48; + i |= x; + /* MCM_RollingCounter: start-bit 44, length 4, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_RollingCounter)) & 0xf; + x <<= 44; + i |= x; + /* MCM_Direction_Command: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Direction_Command)) & 0x1; + x <<= 32; + i |= x; + /* MCM_Inverter_Enable: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Enable)) & 0x1; + x <<= 40; + i |= x; + /* MCM_Inverter_Discharge: start-bit 41, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Discharge)) & 0x1; + x <<= 41; + i |= x; + /* MCM_Speed_Mode_Enable: start-bit 42, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Mode_Enable)) & 0x1; + x <<= 42; + i |= x; + *data = (i); + o->can_0x0c0_MCM_Command_Messages_tx = 1; + return 8; +} + +static int unpack_can_0x0c0_MCM_Command_Messages(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Torque_Command: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command = x; + /* MCM_Speed_Command: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Command = x; + /* MCM_Torque_Limit_Command: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command = x; + /* MCM_RollingCounter: start-bit 44, length 4, endianess intel, scaling 1, offset 0 */ + x = (i >> 44) & 0xf; + o->can_0x0c0_MCM_Command_Messages.MCM_RollingCounter = x; + /* MCM_Direction_Command: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0x1; + o->can_0x0c0_MCM_Command_Messages.MCM_Direction_Command = x; + /* MCM_Inverter_Enable: start-bit 40, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 40) & 0x1; + o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Enable = x; + /* MCM_Inverter_Discharge: start-bit 41, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 41) & 0x1; + o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Discharge = x; + /* MCM_Speed_Mode_Enable: start-bit 42, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 42) & 0x1; + o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Mode_Enable = x; + o->can_0x0c0_MCM_Command_Messages_rx = 1; + o->can_0x0c0_MCM_Command_Messages_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0c0_MCM_Torque_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0c0_MCM_Torque_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command = in; + return 0; +} + +int decode_can_0x0c0_MCM_Speed_Command(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Command); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_Speed_Command(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Command = in; + return 0; +} + +int decode_can_0x0c0_MCM_Torque_Limit_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x0c0_MCM_Torque_Limit_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command = in; + return 0; +} + +int decode_can_0x0c0_MCM_RollingCounter(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_RollingCounter); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_RollingCounter(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_RollingCounter = in; + return 0; +} + +int decode_can_0x0c0_MCM_Direction_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Direction_Command); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_Direction_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Direction_Command = in; + return 0; +} + +int decode_can_0x0c0_MCM_Inverter_Enable(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Enable); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_Inverter_Enable(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Enable = in; + return 0; +} + +int decode_can_0x0c0_MCM_Inverter_Discharge(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Discharge); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_Inverter_Discharge(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Discharge = in; + return 0; +} + +int decode_can_0x0c0_MCM_Speed_Mode_Enable(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Mode_Enable); + *out = rval; + return 0; +} + +int encode_can_0x0c0_MCM_Speed_Mode_Enable(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Mode_Enable = in; + return 0; +} + +int print_can_0x0c0_MCM_Command_Messages(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Torque_Command = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Command))); + r = print_helper(r, fprintf(output, "MCM_Speed_Command = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Command))); + r = print_helper(r, fprintf(output, "MCM_Torque_Limit_Command = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Torque_Limit_Command))); + r = print_helper(r, fprintf(output, "MCM_RollingCounter = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_RollingCounter))); + r = print_helper(r, fprintf(output, "MCM_Direction_Command = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Direction_Command))); + r = print_helper(r, fprintf(output, "MCM_Inverter_Enable = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Enable))); + r = print_helper(r, fprintf(output, "MCM_Inverter_Discharge = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Inverter_Discharge))); + r = print_helper(r, fprintf(output, "MCM_Speed_Mode_Enable = (wire: %.0f)\n", (double)(o->can_0x0c0_MCM_Command_Messages.MCM_Speed_Mode_Enable))); + return r; +} + +static int pack_can_0x0c1_MCM_Read_Write_Param_Command(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Param_Address_Command: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Param_Address_Command)) & 0xffff; + i |= x; + /* MCM_Data_Command: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Data_Command)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Read_Write_Command: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Read_Write_Command)) & 0x1; + x <<= 16; + i |= x; + *data = (i); + o->can_0x0c1_MCM_Read_Write_Param_Command_tx = 1; + return 8; +} + +static int unpack_can_0x0c1_MCM_Read_Write_Param_Command(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Param_Address_Command: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Param_Address_Command = x; + /* MCM_Data_Command: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Data_Command = x; + /* MCM_Read_Write_Command: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Read_Write_Command = x; + o->can_0x0c1_MCM_Read_Write_Param_Command_rx = 1; + o->can_0x0c1_MCM_Read_Write_Param_Command_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0c1_MCM_Param_Address_Command(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Param_Address_Command); + *out = rval; + return 0; +} + +int encode_can_0x0c1_MCM_Param_Address_Command(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Param_Address_Command = in; + return 0; +} + +int decode_can_0x0c1_MCM_Data_Command(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Data_Command); + *out = rval; + return 0; +} + +int encode_can_0x0c1_MCM_Data_Command(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Data_Command = in; + return 0; +} + +int decode_can_0x0c1_MCM_Read_Write_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Read_Write_Command); + *out = rval; + return 0; +} + +int encode_can_0x0c1_MCM_Read_Write_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Read_Write_Command = in; + return 0; +} + +int print_can_0x0c1_MCM_Read_Write_Param_Command(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Param_Address_Command = (wire: %.0f)\n", (double)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Param_Address_Command))); + r = print_helper(r, fprintf(output, "MCM_Data_Command = (wire: %.0f)\n", (double)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Data_Command))); + r = print_helper(r, fprintf(output, "MCM_Read_Write_Command = (wire: %.0f)\n", (double)(o->can_0x0c1_MCM_Read_Write_Param_Command.MCM_Read_Write_Command))); + return r; +} + +static int pack_can_0x0c2_MCM_Read_Write_Param_Response(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_Param_Address_Response: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Param_Address_Response)) & 0xffff; + i |= x; + /* MCM_Data_Response: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Data_Response)) & 0xffff; + x <<= 32; + i |= x; + /* MCM_Write_Success: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Write_Success)) & 0x1; + x <<= 16; + i |= x; + *data = (i); + o->can_0x0c2_MCM_Read_Write_Param_Response_tx = 1; + return 8; +} + +static int unpack_can_0x0c2_MCM_Read_Write_Param_Response(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_Param_Address_Response: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Param_Address_Response = x; + /* MCM_Data_Response: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Data_Response = x; + /* MCM_Write_Success: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Write_Success = x; + o->can_0x0c2_MCM_Read_Write_Param_Response_rx = 1; + o->can_0x0c2_MCM_Read_Write_Param_Response_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x0c2_MCM_Param_Address_Response(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Param_Address_Response); + *out = rval; + return 0; +} + +int encode_can_0x0c2_MCM_Param_Address_Response(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Param_Address_Response = in; + return 0; +} + +int decode_can_0x0c2_MCM_Data_Response(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Data_Response); + *out = rval; + return 0; +} + +int encode_can_0x0c2_MCM_Data_Response(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Data_Response = in; + return 0; +} + +int decode_can_0x0c2_MCM_Write_Success(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Write_Success); + *out = rval; + return 0; +} + +int encode_can_0x0c2_MCM_Write_Success(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Write_Success = in; + return 0; +} + +int print_can_0x0c2_MCM_Read_Write_Param_Response(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_Param_Address_Response = (wire: %.0f)\n", (double)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Param_Address_Response))); + r = print_helper(r, fprintf(output, "MCM_Data_Response = (wire: %.0f)\n", (double)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Data_Response))); + r = print_helper(r, fprintf(output, "MCM_Write_Success = (wire: %.0f)\n", (double)(o->can_0x0c2_MCM_Read_Write_Param_Response.MCM_Write_Success))); + return r; +} + +static int pack_can_0x100_EMeter_Measurement(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* EMeter_Current: start-bit 7, length 32, endianess motorola, scaling 1.52588e-05, offset 0 */ + x = ((uint32_t)(o->can_0x100_EMeter_Measurement.EMeter_Current)) & 0xffffffff; + x <<= 32; + m |= x; + /* EMeter_Voltage: start-bit 39, length 32, endianess motorola, scaling 1.52588e-05, offset 0 */ + x = ((uint32_t)(o->can_0x100_EMeter_Measurement.EMeter_Voltage)) & 0xffffffff; + m |= x; + *data = reverse_byte_order(m); + o->can_0x100_EMeter_Measurement_tx = 1; + return 8; +} + +static int unpack_can_0x100_EMeter_Measurement(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* EMeter_Current: start-bit 7, length 32, endianess motorola, scaling 1.52588e-05, offset 0 */ + x = (m >> 32) & 0xffffffff; + o->can_0x100_EMeter_Measurement.EMeter_Current = x; + /* EMeter_Voltage: start-bit 39, length 32, endianess motorola, scaling 1.52588e-05, offset 0 */ + x = m & 0xffffffff; + o->can_0x100_EMeter_Measurement.EMeter_Voltage = x; + o->can_0x100_EMeter_Measurement_rx = 1; + o->can_0x100_EMeter_Measurement_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x100_EMeter_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x100_EMeter_Measurement.EMeter_Current); + rval *= 1.52588e-05; + *out = rval; + return 0; +} + +int encode_can_0x100_EMeter_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + in *= 65536; + o->can_0x100_EMeter_Measurement.EMeter_Current = in; + return 0; +} + +int decode_can_0x100_EMeter_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x100_EMeter_Measurement.EMeter_Voltage); + rval *= 1.52588e-05; + *out = rval; + return 0; +} + +int encode_can_0x100_EMeter_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + in *= 65536; + o->can_0x100_EMeter_Measurement.EMeter_Voltage = in; + return 0; +} + +int print_can_0x100_EMeter_Measurement(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "EMeter_Current = (wire: %.0f)\n", (double)(o->can_0x100_EMeter_Measurement.EMeter_Current))); + r = print_helper(r, fprintf(output, "EMeter_Voltage = (wire: %.0f)\n", (double)(o->can_0x100_EMeter_Measurement.EMeter_Voltage))); + return r; +} + +static int pack_can_0x1d5_MCM_U2C_Message_Rxd(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_HV_Input_Current: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_Input_Current)) & 0xff; + x <<= 8; + i |= x; + /* MCM_14V_Monitor: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Monitor)) & 0xff; + x <<= 24; + i |= x; + /* MCM_14V_Current_Monitor: start-bit 48, length 7, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Current_Monitor)) & 0x7f; + x <<= 48; + i |= x; + /* MCM_DTC_Index: start-bit 19, length 5, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Index)) & 0x1f; + x <<= 19; + i |= x; + /* MCM_DTC_Status: start-bit 16, length 3, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Status)) & 0x7; + x <<= 16; + i |= x; + /* MCM_HV_In_Curr_Sens_Valid: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_In_Curr_Sens_Valid)) & 0x1; + x <<= 4; + i |= x; + /* MCM_14V_Master_Fault: start-bit 7, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Master_Fault)) & 0x1; + x <<= 7; + i |= x; + /* MCM_14V_Conditional: start-bit 39, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Conditional)) & 0x1; + x <<= 39; + i |= x; + *data = (i); + o->can_0x1d5_MCM_U2C_Message_Rxd_tx = 1; + return 8; +} + +static int unpack_can_0x1d5_MCM_U2C_Message_Rxd(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_HV_Input_Current: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_Input_Current = x; + /* MCM_14V_Monitor: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0xff; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Monitor = x; + /* MCM_14V_Current_Monitor: start-bit 48, length 7, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0x7f; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Current_Monitor = x; + /* MCM_DTC_Index: start-bit 19, length 5, endianess intel, scaling 1, offset 0 */ + x = (i >> 19) & 0x1f; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Index = x; + /* MCM_DTC_Status: start-bit 16, length 3, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x7; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Status = x; + /* MCM_HV_In_Curr_Sens_Valid: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 4) & 0x1; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_In_Curr_Sens_Valid = x; + /* MCM_14V_Master_Fault: start-bit 7, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 7) & 0x1; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Master_Fault = x; + /* MCM_14V_Conditional: start-bit 39, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 39) & 0x1; + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Conditional = x; + o->can_0x1d5_MCM_U2C_Message_Rxd_rx = 1; + o->can_0x1d5_MCM_U2C_Message_Rxd_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x1d5_MCM_HV_Input_Current(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_Input_Current); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_HV_Input_Current(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_Input_Current = in; + return 0; +} + +int decode_can_0x1d5_MCM_14V_Monitor(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Monitor); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_14V_Monitor(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Monitor = in; + return 0; +} + +int decode_can_0x1d5_MCM_14V_Current_Monitor(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Current_Monitor); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_14V_Current_Monitor(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Current_Monitor = in; + return 0; +} + +int decode_can_0x1d5_MCM_DTC_Index(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Index); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_DTC_Index(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Index = in; + return 0; +} + +int decode_can_0x1d5_MCM_DTC_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Status); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_DTC_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Status = in; + return 0; +} + +int decode_can_0x1d5_MCM_HV_In_Curr_Sens_Valid(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_In_Curr_Sens_Valid); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_HV_In_Curr_Sens_Valid(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_In_Curr_Sens_Valid = in; + return 0; +} + +int decode_can_0x1d5_MCM_14V_Master_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Master_Fault); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_14V_Master_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Master_Fault = in; + return 0; +} + +int decode_can_0x1d5_MCM_14V_Conditional(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Conditional); + *out = rval; + return 0; +} + +int encode_can_0x1d5_MCM_14V_Conditional(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Conditional = in; + return 0; +} + +int print_can_0x1d5_MCM_U2C_Message_Rxd(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_HV_Input_Current = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_Input_Current))); + r = print_helper(r, fprintf(output, "MCM_14V_Monitor = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Monitor))); + r = print_helper(r, fprintf(output, "MCM_14V_Current_Monitor = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Current_Monitor))); + r = print_helper(r, fprintf(output, "MCM_DTC_Index = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Index))); + r = print_helper(r, fprintf(output, "MCM_DTC_Status = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_DTC_Status))); + r = print_helper(r, fprintf(output, "MCM_HV_In_Curr_Sens_Valid = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_HV_In_Curr_Sens_Valid))); + r = print_helper(r, fprintf(output, "MCM_14V_Master_Fault = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Master_Fault))); + r = print_helper(r, fprintf(output, "MCM_14V_Conditional = (wire: %.0f)\n", (double)(o->can_0x1d5_MCM_U2C_Message_Rxd.MCM_14V_Conditional))); + return r; +} + +static int pack_can_0x1d7_MCM_U2C_Command_Txd(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* MCM_ID_Byte: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_ID_Byte)) & 0xff; + i |= x; + /* MCM_Setpoint_Calc: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_Setpoint_Calc)) & 0xff; + x <<= 8; + i |= x; + *data = (i); + o->can_0x1d7_MCM_U2C_Command_Txd_tx = 1; + return 8; +} + +static int unpack_can_0x1d7_MCM_U2C_Command_Txd(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* MCM_ID_Byte: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x1d7_MCM_U2C_Command_Txd.MCM_ID_Byte = x; + /* MCM_Setpoint_Calc: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x1d7_MCM_U2C_Command_Txd.MCM_Setpoint_Calc = x; + o->can_0x1d7_MCM_U2C_Command_Txd_rx = 1; + o->can_0x1d7_MCM_U2C_Command_Txd_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x1d7_MCM_ID_Byte(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_ID_Byte); + *out = rval; + return 0; +} + +int encode_can_0x1d7_MCM_ID_Byte(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d7_MCM_U2C_Command_Txd.MCM_ID_Byte = in; + return 0; +} + +int decode_can_0x1d7_MCM_Setpoint_Calc(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_Setpoint_Calc); + *out = rval; + return 0; +} + +int encode_can_0x1d7_MCM_Setpoint_Calc(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x1d7_MCM_U2C_Command_Txd.MCM_Setpoint_Calc = in; + return 0; +} + +int print_can_0x1d7_MCM_U2C_Command_Txd(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "MCM_ID_Byte = (wire: %.0f)\n", (double)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_ID_Byte))); + r = print_helper(r, fprintf(output, "MCM_Setpoint_Calc = (wire: %.0f)\n", (double)(o->can_0x1d7_MCM_U2C_Command_Txd.MCM_Setpoint_Calc))); + return r; +} + +static int pack_can_0x400_EMeter_Status(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* EMeter_VoltageGain: start-bit 3, length 4, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x400_EMeter_Status.EMeter_VoltageGain)) & 0xf; + x <<= 56; + m |= x; + /* EMeter_CurrentGain: start-bit 7, length 4, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x400_EMeter_Status.EMeter_CurrentGain)) & 0xf; + x <<= 60; + m |= x; + /* EMeter_OverVoltage: start-bit 8, length 1, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x400_EMeter_Status.EMeter_OverVoltage)) & 0x1; + x <<= 48; + m |= x; + /* EMeter_OverPower: start-bit 9, length 1, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x400_EMeter_Status.EMeter_OverPower)) & 0x1; + x <<= 49; + m |= x; + /* EMeter_Logging: start-bit 10, length 1, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x400_EMeter_Status.EMeter_Logging)) & 0x1; + x <<= 50; + m |= x; + *data = reverse_byte_order(m); + o->can_0x400_EMeter_Status_tx = 1; + return 4; +} + +static int unpack_can_0x400_EMeter_Status(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 4) + return -1; + /* EMeter_VoltageGain: start-bit 3, length 4, endianess motorola, scaling 1, offset 0 */ + x = (m >> 56) & 0xf; + o->can_0x400_EMeter_Status.EMeter_VoltageGain = x; + /* EMeter_CurrentGain: start-bit 7, length 4, endianess motorola, scaling 1, offset 0 */ + x = (m >> 60) & 0xf; + o->can_0x400_EMeter_Status.EMeter_CurrentGain = x; + /* EMeter_OverVoltage: start-bit 8, length 1, endianess motorola, scaling 1, offset 0 */ + x = (m >> 48) & 0x1; + o->can_0x400_EMeter_Status.EMeter_OverVoltage = x; + /* EMeter_OverPower: start-bit 9, length 1, endianess motorola, scaling 1, offset 0 */ + x = (m >> 49) & 0x1; + o->can_0x400_EMeter_Status.EMeter_OverPower = x; + /* EMeter_Logging: start-bit 10, length 1, endianess motorola, scaling 1, offset 0 */ + x = (m >> 50) & 0x1; + o->can_0x400_EMeter_Status.EMeter_Logging = x; + o->can_0x400_EMeter_Status_rx = 1; + o->can_0x400_EMeter_Status_time_stamp_rx = time_stamp; + return 4; +} + +int decode_can_0x400_EMeter_VoltageGain(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x400_EMeter_Status.EMeter_VoltageGain); + *out = rval; + return 0; +} + +int encode_can_0x400_EMeter_VoltageGain(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x400_EMeter_Status.EMeter_VoltageGain = in; + return 0; +} + +int decode_can_0x400_EMeter_CurrentGain(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x400_EMeter_Status.EMeter_CurrentGain); + *out = rval; + return 0; +} + +int encode_can_0x400_EMeter_CurrentGain(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x400_EMeter_Status.EMeter_CurrentGain = in; + return 0; +} + +int decode_can_0x400_EMeter_OverVoltage(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x400_EMeter_Status.EMeter_OverVoltage); + *out = rval; + return 0; +} + +int encode_can_0x400_EMeter_OverVoltage(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x400_EMeter_Status.EMeter_OverVoltage = in; + return 0; +} + +int decode_can_0x400_EMeter_OverPower(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x400_EMeter_Status.EMeter_OverPower); + *out = rval; + return 0; +} + +int encode_can_0x400_EMeter_OverPower(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x400_EMeter_Status.EMeter_OverPower = in; + return 0; +} + +int decode_can_0x400_EMeter_Logging(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x400_EMeter_Status.EMeter_Logging); + *out = rval; + return 0; +} + +int encode_can_0x400_EMeter_Logging(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x400_EMeter_Status.EMeter_Logging = in; + return 0; +} + +int print_can_0x400_EMeter_Status(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "EMeter_VoltageGain = (wire: %.0f)\n", (double)(o->can_0x400_EMeter_Status.EMeter_VoltageGain))); + r = print_helper(r, fprintf(output, "EMeter_CurrentGain = (wire: %.0f)\n", (double)(o->can_0x400_EMeter_Status.EMeter_CurrentGain))); + r = print_helper(r, fprintf(output, "EMeter_OverVoltage = (wire: %.0f)\n", (double)(o->can_0x400_EMeter_Status.EMeter_OverVoltage))); + r = print_helper(r, fprintf(output, "EMeter_OverPower = (wire: %.0f)\n", (double)(o->can_0x400_EMeter_Status.EMeter_OverPower))); + r = print_helper(r, fprintf(output, "EMeter_Logging = (wire: %.0f)\n", (double)(o->can_0x400_EMeter_Status.EMeter_Logging))); + return r; +} + +static int pack_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LF_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1)) & 0xffff; + x <<= 41; + m |= x; + /* LF_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2)) & 0xffff; + x <<= 25; + m |= x; + /* LF_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3)) & 0xffff; + x <<= 9; + m |= x; + /* LF_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4_tx = 1; + return 8; +} + +static int unpack_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LF_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1 = x; + /* LF_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2 = x; + /* LF_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3 = x; + /* LF_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4 = x; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4_rx = 1; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b0_LF_Temperature_1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b0_LF_Temperature_1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1 = in; + return 0; +} + +int decode_can_0x4b0_LF_Temperature_2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b0_LF_Temperature_2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2 = in; + return 0; +} + +int decode_can_0x4b0_LF_Temperature_3(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b0_LF_Temperature_3(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3 = in; + return 0; +} + +int decode_can_0x4b0_LF_Temperature_4(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b0_LF_Temperature_4(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4 = in; + return 0; +} + +int print_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LF_Temperature_1 = (wire: %.0f)\n", (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_1))); + r = print_helper(r, fprintf(output, "LF_Temperature_2 = (wire: %.0f)\n", (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_2))); + r = print_helper(r, fprintf(output, "LF_Temperature_3 = (wire: %.0f)\n", (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_3))); + r = print_helper(r, fprintf(output, "LF_Temperature_4 = (wire: %.0f)\n", (double)(o->can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4.LF_Temperature_4))); + return r; +} + +static int pack_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LF_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5)) & 0xffff; + x <<= 41; + m |= x; + /* LF_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6)) & 0xffff; + x <<= 25; + m |= x; + /* LF_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7)) & 0xffff; + x <<= 9; + m |= x; + /* LF_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8_tx = 1; + return 8; +} + +static int unpack_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LF_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5 = x; + /* LF_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6 = x; + /* LF_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7 = x; + /* LF_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8 = x; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8_rx = 1; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b1_LF_Temperature_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b1_LF_Temperature_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5 = in; + return 0; +} + +int decode_can_0x4b1_LF_Temperature_6(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b1_LF_Temperature_6(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6 = in; + return 0; +} + +int decode_can_0x4b1_LF_Temperature_7(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b1_LF_Temperature_7(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7 = in; + return 0; +} + +int decode_can_0x4b1_LF_Temperature_8(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b1_LF_Temperature_8(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8 = in; + return 0; +} + +int print_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LF_Temperature_5 = (wire: %.0f)\n", (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_5))); + r = print_helper(r, fprintf(output, "LF_Temperature_6 = (wire: %.0f)\n", (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_6))); + r = print_helper(r, fprintf(output, "LF_Temperature_7 = (wire: %.0f)\n", (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_7))); + r = print_helper(r, fprintf(output, "LF_Temperature_8 = (wire: %.0f)\n", (double)(o->can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8.LF_Temperature_8))); + return r; +} + +static int pack_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LF_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9)) & 0xffff; + x <<= 41; + m |= x; + /* LF_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10)) & 0xffff; + x <<= 25; + m |= x; + /* LF_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11)) & 0xffff; + x <<= 9; + m |= x; + /* LF_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12_tx = 1; + return 8; +} + +static int unpack_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LF_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9 = x; + /* LF_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10 = x; + /* LF_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11 = x; + /* LF_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12 = x; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12_rx = 1; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b2_LF_Temperature_9(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b2_LF_Temperature_9(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9 = in; + return 0; +} + +int decode_can_0x4b2_LF_Temperature_10(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b2_LF_Temperature_10(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10 = in; + return 0; +} + +int decode_can_0x4b2_LF_Temperature_11(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b2_LF_Temperature_11(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11 = in; + return 0; +} + +int decode_can_0x4b2_LF_Temperature_12(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b2_LF_Temperature_12(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12 = in; + return 0; +} + +int print_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LF_Temperature_9 = (wire: %.0f)\n", (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_9))); + r = print_helper(r, fprintf(output, "LF_Temperature_10 = (wire: %.0f)\n", (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_10))); + r = print_helper(r, fprintf(output, "LF_Temperature_11 = (wire: %.0f)\n", (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_11))); + r = print_helper(r, fprintf(output, "LF_Temperature_12 = (wire: %.0f)\n", (double)(o->can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12.LF_Temperature_12))); + return r; +} + +static int pack_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LF_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13)) & 0xffff; + x <<= 41; + m |= x; + /* LF_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14)) & 0xffff; + x <<= 25; + m |= x; + /* LF_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15)) & 0xffff; + x <<= 9; + m |= x; + /* LF_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16_tx = 1; + return 8; +} + +static int unpack_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LF_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13 = x; + /* LF_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14 = x; + /* LF_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15 = x; + /* LF_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16 = x; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16_rx = 1; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b3_LF_Temperature_13(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b3_LF_Temperature_13(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13 = in; + return 0; +} + +int decode_can_0x4b3_LF_Temperature_14(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b3_LF_Temperature_14(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14 = in; + return 0; +} + +int decode_can_0x4b3_LF_Temperature_15(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b3_LF_Temperature_15(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15 = in; + return 0; +} + +int decode_can_0x4b3_LF_Temperature_16(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b3_LF_Temperature_16(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16 = in; + return 0; +} + +int print_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LF_Temperature_13 = (wire: %.0f)\n", (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_13))); + r = print_helper(r, fprintf(output, "LF_Temperature_14 = (wire: %.0f)\n", (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_14))); + r = print_helper(r, fprintf(output, "LF_Temperature_15 = (wire: %.0f)\n", (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_15))); + r = print_helper(r, fprintf(output, "LF_Temperature_16 = (wire: %.0f)\n", (double)(o->can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16.LF_Temperature_16))); + return r; +} + +static int pack_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RF_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1)) & 0xffff; + x <<= 41; + m |= x; + /* RF_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2)) & 0xffff; + x <<= 25; + m |= x; + /* RF_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3)) & 0xffff; + x <<= 9; + m |= x; + /* RF_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4_tx = 1; + return 8; +} + +static int unpack_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RF_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1 = x; + /* RF_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2 = x; + /* RF_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3 = x; + /* RF_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4 = x; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4_rx = 1; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b4_RF_Temperature_1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b4_RF_Temperature_1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1 = in; + return 0; +} + +int decode_can_0x4b4_RF_Temperature_2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b4_RF_Temperature_2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2 = in; + return 0; +} + +int decode_can_0x4b4_RF_Temperature_3(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b4_RF_Temperature_3(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3 = in; + return 0; +} + +int decode_can_0x4b4_RF_Temperature_4(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b4_RF_Temperature_4(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4 = in; + return 0; +} + +int print_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RF_Temperature_1 = (wire: %.0f)\n", (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_1))); + r = print_helper(r, fprintf(output, "RF_Temperature_2 = (wire: %.0f)\n", (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_2))); + r = print_helper(r, fprintf(output, "RF_Temperature_3 = (wire: %.0f)\n", (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_3))); + r = print_helper(r, fprintf(output, "RF_Temperature_4 = (wire: %.0f)\n", (double)(o->can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4.RF_Temperature_4))); + return r; +} + +static int pack_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RF_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5)) & 0xffff; + x <<= 41; + m |= x; + /* RF_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6)) & 0xffff; + x <<= 25; + m |= x; + /* RF_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7)) & 0xffff; + x <<= 9; + m |= x; + /* RF_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8_tx = 1; + return 8; +} + +static int unpack_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RF_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5 = x; + /* RF_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6 = x; + /* RF_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7 = x; + /* RF_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8 = x; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8_rx = 1; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b5_RF_Temperature_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b5_RF_Temperature_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5 = in; + return 0; +} + +int decode_can_0x4b5_RF_Temperature_6(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b5_RF_Temperature_6(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6 = in; + return 0; +} + +int decode_can_0x4b5_RF_Temperature_7(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b5_RF_Temperature_7(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7 = in; + return 0; +} + +int decode_can_0x4b5_RF_Temperature_8(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b5_RF_Temperature_8(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8 = in; + return 0; +} + +int print_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RF_Temperature_5 = (wire: %.0f)\n", (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_5))); + r = print_helper(r, fprintf(output, "RF_Temperature_6 = (wire: %.0f)\n", (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_6))); + r = print_helper(r, fprintf(output, "RF_Temperature_7 = (wire: %.0f)\n", (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_7))); + r = print_helper(r, fprintf(output, "RF_Temperature_8 = (wire: %.0f)\n", (double)(o->can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8.RF_Temperature_8))); + return r; +} + +static int pack_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RF_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9)) & 0xffff; + x <<= 41; + m |= x; + /* RF_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10)) & 0xffff; + x <<= 25; + m |= x; + /* RF_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11)) & 0xffff; + x <<= 9; + m |= x; + /* RF_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12_tx = 1; + return 8; +} + +static int unpack_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RF_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9 = x; + /* RF_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10 = x; + /* RF_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11 = x; + /* RF_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12 = x; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12_rx = 1; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b6_RF_Temperature_9(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b6_RF_Temperature_9(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9 = in; + return 0; +} + +int decode_can_0x4b6_RF_Temperature_10(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b6_RF_Temperature_10(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10 = in; + return 0; +} + +int decode_can_0x4b6_RF_Temperature_11(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b6_RF_Temperature_11(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11 = in; + return 0; +} + +int decode_can_0x4b6_RF_Temperature_12(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b6_RF_Temperature_12(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12 = in; + return 0; +} + +int print_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RF_Temperature_9 = (wire: %.0f)\n", (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_9))); + r = print_helper(r, fprintf(output, "RF_Temperature_10 = (wire: %.0f)\n", (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_10))); + r = print_helper(r, fprintf(output, "RF_Temperature_11 = (wire: %.0f)\n", (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_11))); + r = print_helper(r, fprintf(output, "RF_Temperature_12 = (wire: %.0f)\n", (double)(o->can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12.RF_Temperature_12))); + return r; +} + +static int pack_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RF_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13)) & 0xffff; + x <<= 41; + m |= x; + /* RF_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14)) & 0xffff; + x <<= 25; + m |= x; + /* RF_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15)) & 0xffff; + x <<= 9; + m |= x; + /* RF_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16_tx = 1; + return 8; +} + +static int unpack_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RF_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13 = x; + /* RF_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14 = x; + /* RF_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15 = x; + /* RF_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16 = x; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16_rx = 1; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b7_RF_Temperature_13(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b7_RF_Temperature_13(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13 = in; + return 0; +} + +int decode_can_0x4b7_RF_Temperature_14(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b7_RF_Temperature_14(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14 = in; + return 0; +} + +int decode_can_0x4b7_RF_Temperature_15(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b7_RF_Temperature_15(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15 = in; + return 0; +} + +int decode_can_0x4b7_RF_Temperature_16(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b7_RF_Temperature_16(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16 = in; + return 0; +} + +int print_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RF_Temperature_13 = (wire: %.0f)\n", (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_13))); + r = print_helper(r, fprintf(output, "RF_Temperature_14 = (wire: %.0f)\n", (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_14))); + r = print_helper(r, fprintf(output, "RF_Temperature_15 = (wire: %.0f)\n", (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_15))); + r = print_helper(r, fprintf(output, "RF_Temperature_16 = (wire: %.0f)\n", (double)(o->can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16.RF_Temperature_16))); + return r; +} + +static int pack_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LR_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1)) & 0xffff; + x <<= 41; + m |= x; + /* LR_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2)) & 0xffff; + x <<= 25; + m |= x; + /* LR_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3)) & 0xffff; + x <<= 9; + m |= x; + /* LR_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4_tx = 1; + return 8; +} + +static int unpack_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LR_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1 = x; + /* LR_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2 = x; + /* LR_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3 = x; + /* LR_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4 = x; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4_rx = 1; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b8_LR_Temperature_1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b8_LR_Temperature_1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1 = in; + return 0; +} + +int decode_can_0x4b8_LR_Temperature_2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b8_LR_Temperature_2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2 = in; + return 0; +} + +int decode_can_0x4b8_LR_Temperature_3(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b8_LR_Temperature_3(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3 = in; + return 0; +} + +int decode_can_0x4b8_LR_Temperature_4(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b8_LR_Temperature_4(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4 = in; + return 0; +} + +int print_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LR_Temperature_1 = (wire: %.0f)\n", (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_1))); + r = print_helper(r, fprintf(output, "LR_Temperature_2 = (wire: %.0f)\n", (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_2))); + r = print_helper(r, fprintf(output, "LR_Temperature_3 = (wire: %.0f)\n", (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_3))); + r = print_helper(r, fprintf(output, "LR_Temperature_4 = (wire: %.0f)\n", (double)(o->can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4.LR_Temperature_4))); + return r; +} + +static int pack_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LR_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5)) & 0xffff; + x <<= 41; + m |= x; + /* LR_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6)) & 0xffff; + x <<= 25; + m |= x; + /* LR_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7)) & 0xffff; + x <<= 9; + m |= x; + /* LR_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8_tx = 1; + return 8; +} + +static int unpack_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LR_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5 = x; + /* LR_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6 = x; + /* LR_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7 = x; + /* LR_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8 = x; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8_rx = 1; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4b9_LR_Temperature_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b9_LR_Temperature_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5 = in; + return 0; +} + +int decode_can_0x4b9_LR_Temperature_6(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b9_LR_Temperature_6(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6 = in; + return 0; +} + +int decode_can_0x4b9_LR_Temperature_7(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b9_LR_Temperature_7(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7 = in; + return 0; +} + +int decode_can_0x4b9_LR_Temperature_8(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4b9_LR_Temperature_8(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8 = in; + return 0; +} + +int print_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LR_Temperature_5 = (wire: %.0f)\n", (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_5))); + r = print_helper(r, fprintf(output, "LR_Temperature_6 = (wire: %.0f)\n", (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_6))); + r = print_helper(r, fprintf(output, "LR_Temperature_7 = (wire: %.0f)\n", (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_7))); + r = print_helper(r, fprintf(output, "LR_Temperature_8 = (wire: %.0f)\n", (double)(o->can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8.LR_Temperature_8))); + return r; +} + +static int pack_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LR_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9)) & 0xffff; + x <<= 41; + m |= x; + /* LR_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10)) & 0xffff; + x <<= 25; + m |= x; + /* LR_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11)) & 0xffff; + x <<= 9; + m |= x; + /* LR_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12_tx = 1; + return 8; +} + +static int unpack_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LR_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9 = x; + /* LR_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10 = x; + /* LR_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11 = x; + /* LR_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12 = x; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12_rx = 1; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4ba_LR_Temperature_9(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4ba_LR_Temperature_9(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9 = in; + return 0; +} + +int decode_can_0x4ba_LR_Temperature_10(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4ba_LR_Temperature_10(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10 = in; + return 0; +} + +int decode_can_0x4ba_LR_Temperature_11(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4ba_LR_Temperature_11(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11 = in; + return 0; +} + +int decode_can_0x4ba_LR_Temperature_12(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4ba_LR_Temperature_12(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12 = in; + return 0; +} + +int print_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LR_Temperature_9 = (wire: %.0f)\n", (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_9))); + r = print_helper(r, fprintf(output, "LR_Temperature_10 = (wire: %.0f)\n", (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_10))); + r = print_helper(r, fprintf(output, "LR_Temperature_11 = (wire: %.0f)\n", (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_11))); + r = print_helper(r, fprintf(output, "LR_Temperature_12 = (wire: %.0f)\n", (double)(o->can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12.LR_Temperature_12))); + return r; +} + +static int pack_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* LR_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13)) & 0xffff; + x <<= 41; + m |= x; + /* LR_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14)) & 0xffff; + x <<= 25; + m |= x; + /* LR_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15)) & 0xffff; + x <<= 9; + m |= x; + /* LR_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16_tx = 1; + return 8; +} + +static int unpack_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* LR_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13 = x; + /* LR_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14 = x; + /* LR_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15 = x; + /* LR_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16 = x; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16_rx = 1; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4bb_LR_Temperature_13(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bb_LR_Temperature_13(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13 = in; + return 0; +} + +int decode_can_0x4bb_LR_Temperature_14(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bb_LR_Temperature_14(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14 = in; + return 0; +} + +int decode_can_0x4bb_LR_Temperature_15(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bb_LR_Temperature_15(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15 = in; + return 0; +} + +int decode_can_0x4bb_LR_Temperature_16(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bb_LR_Temperature_16(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16 = in; + return 0; +} + +int print_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "LR_Temperature_13 = (wire: %.0f)\n", (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_13))); + r = print_helper(r, fprintf(output, "LR_Temperature_14 = (wire: %.0f)\n", (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_14))); + r = print_helper(r, fprintf(output, "LR_Temperature_15 = (wire: %.0f)\n", (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_15))); + r = print_helper(r, fprintf(output, "LR_Temperature_16 = (wire: %.0f)\n", (double)(o->can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16.LR_Temperature_16))); + return r; +} + +static int pack_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RR_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1)) & 0xffff; + x <<= 41; + m |= x; + /* RR_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2)) & 0xffff; + x <<= 25; + m |= x; + /* RR_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3)) & 0xffff; + x <<= 9; + m |= x; + /* RR_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4_tx = 1; + return 8; +} + +static int unpack_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RR_Temperature_1: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1 = x; + /* RR_Temperature_2: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2 = x; + /* RR_Temperature_3: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3 = x; + /* RR_Temperature_4: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4 = x; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4_rx = 1; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4bc_RR_Temperature_1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bc_RR_Temperature_1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1 = in; + return 0; +} + +int decode_can_0x4bc_RR_Temperature_2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bc_RR_Temperature_2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2 = in; + return 0; +} + +int decode_can_0x4bc_RR_Temperature_3(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bc_RR_Temperature_3(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3 = in; + return 0; +} + +int decode_can_0x4bc_RR_Temperature_4(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bc_RR_Temperature_4(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4 = in; + return 0; +} + +int print_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RR_Temperature_1 = (wire: %.0f)\n", (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_1))); + r = print_helper(r, fprintf(output, "RR_Temperature_2 = (wire: %.0f)\n", (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_2))); + r = print_helper(r, fprintf(output, "RR_Temperature_3 = (wire: %.0f)\n", (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_3))); + r = print_helper(r, fprintf(output, "RR_Temperature_4 = (wire: %.0f)\n", (double)(o->can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4.RR_Temperature_4))); + return r; +} + +static int pack_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RR_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5)) & 0xffff; + x <<= 41; + m |= x; + /* RR_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6)) & 0xffff; + x <<= 25; + m |= x; + /* RR_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7)) & 0xffff; + x <<= 9; + m |= x; + /* RR_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8_tx = 1; + return 8; +} + +static int unpack_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RR_Temperature_5: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5 = x; + /* RR_Temperature_6: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6 = x; + /* RR_Temperature_7: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7 = x; + /* RR_Temperature_8: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8 = x; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8_rx = 1; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4bd_RR_Temperature_5(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bd_RR_Temperature_5(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5 = in; + return 0; +} + +int decode_can_0x4bd_RR_Temperature_6(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bd_RR_Temperature_6(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6 = in; + return 0; +} + +int decode_can_0x4bd_RR_Temperature_7(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bd_RR_Temperature_7(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7 = in; + return 0; +} + +int decode_can_0x4bd_RR_Temperature_8(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bd_RR_Temperature_8(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8 = in; + return 0; +} + +int print_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RR_Temperature_5 = (wire: %.0f)\n", (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_5))); + r = print_helper(r, fprintf(output, "RR_Temperature_6 = (wire: %.0f)\n", (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_6))); + r = print_helper(r, fprintf(output, "RR_Temperature_7 = (wire: %.0f)\n", (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_7))); + r = print_helper(r, fprintf(output, "RR_Temperature_8 = (wire: %.0f)\n", (double)(o->can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8.RR_Temperature_8))); + return r; +} + +static int pack_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RR_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9)) & 0xffff; + x <<= 41; + m |= x; + /* RR_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10)) & 0xffff; + x <<= 25; + m |= x; + /* RR_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11)) & 0xffff; + x <<= 9; + m |= x; + /* RR_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12_tx = 1; + return 8; +} + +static int unpack_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RR_Temperature_9: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9 = x; + /* RR_Temperature_10: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10 = x; + /* RR_Temperature_11: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11 = x; + /* RR_Temperature_12: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12 = x; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12_rx = 1; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4be_RR_Temperature_9(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4be_RR_Temperature_9(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9 = in; + return 0; +} + +int decode_can_0x4be_RR_Temperature_10(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4be_RR_Temperature_10(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10 = in; + return 0; +} + +int decode_can_0x4be_RR_Temperature_11(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4be_RR_Temperature_11(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11 = in; + return 0; +} + +int decode_can_0x4be_RR_Temperature_12(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4be_RR_Temperature_12(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12 = in; + return 0; +} + +int print_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RR_Temperature_9 = (wire: %.0f)\n", (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_9))); + r = print_helper(r, fprintf(output, "RR_Temperature_10 = (wire: %.0f)\n", (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_10))); + r = print_helper(r, fprintf(output, "RR_Temperature_11 = (wire: %.0f)\n", (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_11))); + r = print_helper(r, fprintf(output, "RR_Temperature_12 = (wire: %.0f)\n", (double)(o->can_0x4be_DAQ_RR_Tire_Temp_Ch9_12.RR_Temperature_12))); + return r; +} + +static int pack_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* RR_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13)) & 0xffff; + x <<= 41; + m |= x; + /* RR_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14)) & 0xffff; + x <<= 25; + m |= x; + /* RR_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15)) & 0xffff; + x <<= 9; + m |= x; + /* RR_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = ((uint16_t)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16)) & 0xffff; + x <<= 4294967289; + m |= x; + *data = reverse_byte_order(m); + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16_tx = 1; + return 8; +} + +static int unpack_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 8) + return -1; + /* RR_Temperature_13: start-bit 0, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 41) & 0xffff; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13 = x; + /* RR_Temperature_14: start-bit 16, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 25) & 0xffff; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14 = x; + /* RR_Temperature_15: start-bit 32, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> 9) & 0xffff; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15 = x; + /* RR_Temperature_16: start-bit 48, length 16, endianess motorola, scaling 0.001, offset -100 */ + x = (m >> -7) & 0xffff; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16 = x; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16_rx = 1; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x4bf_RR_Temperature_13(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bf_RR_Temperature_13(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13 = in; + return 0; +} + +int decode_can_0x4bf_RR_Temperature_14(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bf_RR_Temperature_14(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14 = in; + return 0; +} + +int decode_can_0x4bf_RR_Temperature_15(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bf_RR_Temperature_15(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15 = in; + return 0; +} + +int decode_can_0x4bf_RR_Temperature_16(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16); + rval *= 0.001; + rval += -100; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x4bf_RR_Temperature_16(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16 = 0; + if (in > 100) + return -1; + in += 100; + in *= 1000; + o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16 = in; + return 0; +} + +int print_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RR_Temperature_13 = (wire: %.0f)\n", (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_13))); + r = print_helper(r, fprintf(output, "RR_Temperature_14 = (wire: %.0f)\n", (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_14))); + r = print_helper(r, fprintf(output, "RR_Temperature_15 = (wire: %.0f)\n", (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_15))); + r = print_helper(r, fprintf(output, "RR_Temperature_16 = (wire: %.0f)\n", (double)(o->can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16.RR_Temperature_16))); + return r; +} + +static int pack_can_0x500_VCU_TPS0(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* TPS0Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x500_VCU_TPS0.TPS0Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* TPS0CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x500_VCU_TPS0.TPS0CalibMin)) & 0xffff; + x <<= 32; + i |= x; + /* TPS0CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x500_VCU_TPS0.TPS0CalibMax)) & 0xffff; + x <<= 48; + i |= x; + /* TPS0ThrottlePercent0FF: start-bit 0, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = ((uint8_t)(o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF)) & 0xff; + i |= x; + /* TPS0Percent0FF: start-bit 8, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = ((uint8_t)(o->can_0x500_VCU_TPS0.TPS0Percent0FF)) & 0xff; + x <<= 8; + i |= x; + *data = (i); + o->can_0x500_VCU_TPS0_tx = 1; + return 8; +} + +static int unpack_can_0x500_VCU_TPS0(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* TPS0Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x500_VCU_TPS0.TPS0Voltage = x; + /* TPS0CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x500_VCU_TPS0.TPS0CalibMin = x; + /* TPS0CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x500_VCU_TPS0.TPS0CalibMax = x; + /* TPS0ThrottlePercent0FF: start-bit 0, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = i & 0xff; + o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF = x; + /* TPS0Percent0FF: start-bit 8, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x500_VCU_TPS0.TPS0Percent0FF = x; + o->can_0x500_VCU_TPS0_rx = 1; + o->can_0x500_VCU_TPS0_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x500_TPS0Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x500_VCU_TPS0.TPS0Voltage); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x500_TPS0Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x500_VCU_TPS0.TPS0Voltage = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x500_VCU_TPS0.TPS0Voltage = in; + return 0; +} + +int decode_can_0x500_TPS0CalibMin(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x500_VCU_TPS0.TPS0CalibMin); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x500_TPS0CalibMin(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x500_VCU_TPS0.TPS0CalibMin = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x500_VCU_TPS0.TPS0CalibMin = in; + return 0; +} + +int decode_can_0x500_TPS0CalibMax(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x500_VCU_TPS0.TPS0CalibMax); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x500_TPS0CalibMax(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x500_VCU_TPS0.TPS0CalibMax = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x500_VCU_TPS0.TPS0CalibMax = in; + return 0; +} + +int decode_can_0x500_TPS0ThrottlePercent0FF(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF); + rval *= 0.392157; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x500_TPS0ThrottlePercent0FF(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF = 0; + if (in > 100) + return -1; + in *= 2.55; + o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF = in; + return 0; +} + +int decode_can_0x500_TPS0Percent0FF(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x500_VCU_TPS0.TPS0Percent0FF); + rval *= 0.392157; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x500_TPS0Percent0FF(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x500_VCU_TPS0.TPS0Percent0FF = 0; + if (in > 100) + return -1; + in *= 2.55; + o->can_0x500_VCU_TPS0.TPS0Percent0FF = in; + return 0; +} + +int print_can_0x500_VCU_TPS0(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "TPS0Voltage = (wire: %.0f)\n", (double)(o->can_0x500_VCU_TPS0.TPS0Voltage))); + r = print_helper(r, fprintf(output, "TPS0CalibMin = (wire: %.0f)\n", (double)(o->can_0x500_VCU_TPS0.TPS0CalibMin))); + r = print_helper(r, fprintf(output, "TPS0CalibMax = (wire: %.0f)\n", (double)(o->can_0x500_VCU_TPS0.TPS0CalibMax))); + r = print_helper(r, fprintf(output, "TPS0ThrottlePercent0FF = (wire: %.0f)\n", (double)(o->can_0x500_VCU_TPS0.TPS0ThrottlePercent0FF))); + r = print_helper(r, fprintf(output, "TPS0Percent0FF = (wire: %.0f)\n", (double)(o->can_0x500_VCU_TPS0.TPS0Percent0FF))); + return r; +} + +static int pack_can_0x501_VCU_TPS1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* TPS1Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x501_VCU_TPS1.TPS1Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* TPS1CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x501_VCU_TPS1.TPS1CalibMin)) & 0xffff; + x <<= 32; + i |= x; + /* TPS1CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x501_VCU_TPS1.TPS1CalibMax)) & 0xffff; + x <<= 48; + i |= x; + /* ThrottlePercent0FF: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x501_VCU_TPS1.ThrottlePercent0FF)) & 0xff; + i |= x; + /* TPS1Percent0FF: start-bit 8, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = ((uint8_t)(o->can_0x501_VCU_TPS1.TPS1Percent0FF)) & 0xff; + x <<= 8; + i |= x; + *data = (i); + o->can_0x501_VCU_TPS1_tx = 1; + return 8; +} + +static int unpack_can_0x501_VCU_TPS1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* TPS1Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x501_VCU_TPS1.TPS1Voltage = x; + /* TPS1CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x501_VCU_TPS1.TPS1CalibMin = x; + /* TPS1CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x501_VCU_TPS1.TPS1CalibMax = x; + /* ThrottlePercent0FF: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x501_VCU_TPS1.ThrottlePercent0FF = x; + /* TPS1Percent0FF: start-bit 8, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x501_VCU_TPS1.TPS1Percent0FF = x; + o->can_0x501_VCU_TPS1_rx = 1; + o->can_0x501_VCU_TPS1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x501_TPS1Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x501_VCU_TPS1.TPS1Voltage); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x501_TPS1Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x501_VCU_TPS1.TPS1Voltage = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x501_VCU_TPS1.TPS1Voltage = in; + return 0; +} + +int decode_can_0x501_TPS1CalibMin(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x501_VCU_TPS1.TPS1CalibMin); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x501_TPS1CalibMin(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x501_VCU_TPS1.TPS1CalibMin = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x501_VCU_TPS1.TPS1CalibMin = in; + return 0; +} + +int decode_can_0x501_TPS1CalibMax(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x501_VCU_TPS1.TPS1CalibMax); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x501_TPS1CalibMax(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x501_VCU_TPS1.TPS1CalibMax = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x501_VCU_TPS1.TPS1CalibMax = in; + return 0; +} + +int decode_can_0x501_ThrottlePercent0FF(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x501_VCU_TPS1.ThrottlePercent0FF); + *out = rval; + return 0; +} + +int encode_can_0x501_ThrottlePercent0FF(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x501_VCU_TPS1.ThrottlePercent0FF = in; + return 0; +} + +int decode_can_0x501_TPS1Percent0FF(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x501_VCU_TPS1.TPS1Percent0FF); + rval *= 0.392157; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x501_TPS1Percent0FF(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x501_VCU_TPS1.TPS1Percent0FF = 0; + if (in > 100) + return -1; + in *= 2.55; + o->can_0x501_VCU_TPS1.TPS1Percent0FF = in; + return 0; +} + +int print_can_0x501_VCU_TPS1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "TPS1Voltage = (wire: %.0f)\n", (double)(o->can_0x501_VCU_TPS1.TPS1Voltage))); + r = print_helper(r, fprintf(output, "TPS1CalibMin = (wire: %.0f)\n", (double)(o->can_0x501_VCU_TPS1.TPS1CalibMin))); + r = print_helper(r, fprintf(output, "TPS1CalibMax = (wire: %.0f)\n", (double)(o->can_0x501_VCU_TPS1.TPS1CalibMax))); + r = print_helper(r, fprintf(output, "ThrottlePercent0FF = (wire: %.0f)\n", (double)(o->can_0x501_VCU_TPS1.ThrottlePercent0FF))); + r = print_helper(r, fprintf(output, "TPS1Percent0FF = (wire: %.0f)\n", (double)(o->can_0x501_VCU_TPS1.TPS1Percent0FF))); + return r; +} + +static int pack_can_0x502_VCU_BPS0(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BPS0Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x502_VCU_BPS0.BPS0Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BPS0CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x502_VCU_BPS0.BPS0CalibMin)) & 0xffff; + x <<= 32; + i |= x; + /* BPS0CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x502_VCU_BPS0.BPS0CalibMax)) & 0xffff; + x <<= 48; + i |= x; + /* BrakePercent0FF: start-bit 0, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = ((uint8_t)(o->can_0x502_VCU_BPS0.BrakePercent0FF)) & 0xff; + i |= x; + *data = (i); + o->can_0x502_VCU_BPS0_tx = 1; + return 8; +} + +static int unpack_can_0x502_VCU_BPS0(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BPS0Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x502_VCU_BPS0.BPS0Voltage = x; + /* BPS0CalibMin: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x502_VCU_BPS0.BPS0CalibMin = x; + /* BPS0CalibMax: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x502_VCU_BPS0.BPS0CalibMax = x; + /* BrakePercent0FF: start-bit 0, length 8, endianess intel, scaling 0.392157, offset 0 */ + x = i & 0xff; + o->can_0x502_VCU_BPS0.BrakePercent0FF = x; + o->can_0x502_VCU_BPS0_rx = 1; + o->can_0x502_VCU_BPS0_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x502_BPS0Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x502_VCU_BPS0.BPS0Voltage); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x502_BPS0Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x502_VCU_BPS0.BPS0Voltage = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x502_VCU_BPS0.BPS0Voltage = in; + return 0; +} + +int decode_can_0x502_BPS0CalibMin(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x502_VCU_BPS0.BPS0CalibMin); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x502_BPS0CalibMin(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x502_VCU_BPS0.BPS0CalibMin = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x502_VCU_BPS0.BPS0CalibMin = in; + return 0; +} + +int decode_can_0x502_BPS0CalibMax(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x502_VCU_BPS0.BPS0CalibMax); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x502_BPS0CalibMax(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x502_VCU_BPS0.BPS0CalibMax = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x502_VCU_BPS0.BPS0CalibMax = in; + return 0; +} + +int decode_can_0x502_BrakePercent0FF(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x502_VCU_BPS0.BrakePercent0FF); + rval *= 0.392157; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x502_BrakePercent0FF(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x502_VCU_BPS0.BrakePercent0FF = 0; + if (in > 100) + return -1; + in *= 2.55; + o->can_0x502_VCU_BPS0.BrakePercent0FF = in; + return 0; +} + +int print_can_0x502_VCU_BPS0(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BPS0Voltage = (wire: %.0f)\n", (double)(o->can_0x502_VCU_BPS0.BPS0Voltage))); + r = print_helper(r, fprintf(output, "BPS0CalibMin = (wire: %.0f)\n", (double)(o->can_0x502_VCU_BPS0.BPS0CalibMin))); + r = print_helper(r, fprintf(output, "BPS0CalibMax = (wire: %.0f)\n", (double)(o->can_0x502_VCU_BPS0.BPS0CalibMax))); + r = print_helper(r, fprintf(output, "BrakePercent0FF = (wire: %.0f)\n", (double)(o->can_0x502_VCU_BPS0.BrakePercent0FF))); + return r; +} + +static int pack_can_0x504_VCU_WSS(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_WSS_FL: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_FL)) & 0xffff; + i |= x; + /* VCU_WSS_FR: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_FR)) & 0xffff; + x <<= 16; + i |= x; + /* VCU_WSS_RL: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_RL)) & 0xffff; + x <<= 32; + i |= x; + /* VCU_WSS_RR: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_RR)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x504_VCU_WSS_tx = 1; + return 8; +} + +static int unpack_can_0x504_VCU_WSS(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_WSS_FL: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x504_VCU_WSS.VCU_WSS_FL = x; + /* VCU_WSS_FR: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x504_VCU_WSS.VCU_WSS_FR = x; + /* VCU_WSS_RL: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x504_VCU_WSS.VCU_WSS_RL = x; + /* VCU_WSS_RR: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x504_VCU_WSS.VCU_WSS_RR = x; + o->can_0x504_VCU_WSS_rx = 1; + o->can_0x504_VCU_WSS_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x504_VCU_WSS_FL(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_FL); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x504_VCU_WSS_FL(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x504_VCU_WSS.VCU_WSS_FL = 0; + if (in > 32767) + return -1; + o->can_0x504_VCU_WSS.VCU_WSS_FL = in; + return 0; +} + +int decode_can_0x504_VCU_WSS_FR(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_FR); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x504_VCU_WSS_FR(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x504_VCU_WSS.VCU_WSS_FR = 0; + if (in > 32767) + return -1; + o->can_0x504_VCU_WSS.VCU_WSS_FR = in; + return 0; +} + +int decode_can_0x504_VCU_WSS_RL(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_RL); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x504_VCU_WSS_RL(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x504_VCU_WSS.VCU_WSS_RL = 0; + if (in > 32767) + return -1; + o->can_0x504_VCU_WSS.VCU_WSS_RL = in; + return 0; +} + +int decode_can_0x504_VCU_WSS_RR(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x504_VCU_WSS.VCU_WSS_RR); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x504_VCU_WSS_RR(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x504_VCU_WSS.VCU_WSS_RR = 0; + if (in > 32767) + return -1; + o->can_0x504_VCU_WSS.VCU_WSS_RR = in; + return 0; +} + +int print_can_0x504_VCU_WSS(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_WSS_FL = (wire: %.0f)\n", (double)(o->can_0x504_VCU_WSS.VCU_WSS_FL))); + r = print_helper(r, fprintf(output, "VCU_WSS_FR = (wire: %.0f)\n", (double)(o->can_0x504_VCU_WSS.VCU_WSS_FR))); + r = print_helper(r, fprintf(output, "VCU_WSS_RL = (wire: %.0f)\n", (double)(o->can_0x504_VCU_WSS.VCU_WSS_RL))); + r = print_helper(r, fprintf(output, "VCU_WSS_RR = (wire: %.0f)\n", (double)(o->can_0x504_VCU_WSS.VCU_WSS_RR))); + return r; +} + +static int pack_can_0x505_VCU_WSS_Smooth(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_WSS_FL_S: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S)) & 0xffff; + i |= x; + /* VCU_WSS_FR_S: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S)) & 0xffff; + x <<= 16; + i |= x; + /* VCU_WSS_RL_S: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S)) & 0xffff; + x <<= 32; + i |= x; + /* VCU_WSS_RR_S: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x505_VCU_WSS_Smooth_tx = 1; + return 8; +} + +static int unpack_can_0x505_VCU_WSS_Smooth(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_WSS_FL_S: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S = x; + /* VCU_WSS_FR_S: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S = x; + /* VCU_WSS_RL_S: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S = x; + /* VCU_WSS_RR_S: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S = x; + o->can_0x505_VCU_WSS_Smooth_rx = 1; + o->can_0x505_VCU_WSS_Smooth_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x505_VCU_WSS_FL_S(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x505_VCU_WSS_FL_S(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S = 0; + if (in > 32767) + return -1; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S = in; + return 0; +} + +int decode_can_0x505_VCU_WSS_FR_S(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x505_VCU_WSS_FR_S(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S = 0; + if (in > 32767) + return -1; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S = in; + return 0; +} + +int decode_can_0x505_VCU_WSS_RL_S(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x505_VCU_WSS_RL_S(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S = 0; + if (in > 32767) + return -1; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S = in; + return 0; +} + +int decode_can_0x505_VCU_WSS_RR_S(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S); + if (rval <= 32767) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x505_VCU_WSS_RR_S(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S = 0; + if (in > 32767) + return -1; + o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S = in; + return 0; +} + +int print_can_0x505_VCU_WSS_Smooth(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_WSS_FL_S = (wire: %.0f)\n", (double)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FL_S))); + r = print_helper(r, fprintf(output, "VCU_WSS_FR_S = (wire: %.0f)\n", (double)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_FR_S))); + r = print_helper(r, fprintf(output, "VCU_WSS_RL_S = (wire: %.0f)\n", (double)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RL_S))); + r = print_helper(r, fprintf(output, "VCU_WSS_RR_S = (wire: %.0f)\n", (double)(o->can_0x505_VCU_WSS_Smooth.VCU_WSS_RR_S))); + return r; +} + +static int pack_can_0x506_VCU_Safety_Checker(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_FAULT_TPS_OutOfRange: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfRange)) & 0x1; + i |= x; + /* VCU_FAULT_BPS_OutOfRange: start-bit 1, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_OutOfRange)) & 0x1; + x <<= 1; + i |= x; + /* VCU_FAULT_TPS_PowerFailure: start-bit 2, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_PowerFailure)) & 0x1; + x <<= 2; + i |= x; + /* VCU_FAULT_BPS_PowerFailure: start-bit 3, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_PowerFailure)) & 0x1; + x <<= 3; + i |= x; + /* VCU_FAULT_TPS_SignalFailure: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_SignalFailure)) & 0x1; + x <<= 4; + i |= x; + /* VCU_FAULT_BPS_SignalFailure: start-bit 5, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_SignalFailure)) & 0x1; + x <<= 5; + i |= x; + /* VCU_FAULT_TPS_NotCalibrated: start-bit 6, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_NotCalibrated)) & 0x1; + x <<= 6; + i |= x; + /* VCU_FAULT_BPS_NotCalibrated: start-bit 7, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_NotCalibrated)) & 0x1; + x <<= 7; + i |= x; + /* VCU_FAULT_TPS_OutOfSync: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfSync)) & 0x1; + x <<= 8; + i |= x; + /* VCU_FAULT_TPSBPS_Implausible: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPSBPS_Implausible)) & 0x1; + x <<= 10; + i |= x; + /* VCU_FAULT_BSPD_SoftFault: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BSPD_SoftFault)) & 0x1; + x <<= 12; + i |= x; + /* VCU_FAULT_LVS_BatteryEmpty: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_LVS_BatteryEmpty)) & 0x1; + x <<= 16; + i |= x; + /* VCU_WARNING_LVS_BatteryLow: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_LVS_BatteryLow)) & 0x1; + x <<= 32; + i |= x; + /* VCU_WARNING_HVIL_OverrideEn: start-bit 38, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_HVIL_OverrideEn)) & 0x1; + x <<= 38; + i |= x; + /* VCU_WARNING_SAFETY_BypassEn: start-bit 39, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_SAFETY_BypassEn)) & 0x1; + x <<= 39; + i |= x; + /* VCU_NOTICE_HVIL_TermSenseLost: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_HVIL_TermSenseLost)) & 0x1; + x <<= 48; + i |= x; + /* VCU_NOTICE_BMS_Over75kW: start-bit 52, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_BMS_Over75kW)) & 0x1; + x <<= 52; + i |= x; + /* VCU_NOTICE_MCM_Over75kW: start-bit 53, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_MCM_Over75kW)) & 0x1; + x <<= 53; + i |= x; + *data = (i); + o->can_0x506_VCU_Safety_Checker_tx = 1; + return 8; +} + +static int unpack_can_0x506_VCU_Safety_Checker(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_FAULT_TPS_OutOfRange: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = i & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfRange = x; + /* VCU_FAULT_BPS_OutOfRange: start-bit 1, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 1) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_OutOfRange = x; + /* VCU_FAULT_TPS_PowerFailure: start-bit 2, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 2) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_PowerFailure = x; + /* VCU_FAULT_BPS_PowerFailure: start-bit 3, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 3) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_PowerFailure = x; + /* VCU_FAULT_TPS_SignalFailure: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 4) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_SignalFailure = x; + /* VCU_FAULT_BPS_SignalFailure: start-bit 5, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 5) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_SignalFailure = x; + /* VCU_FAULT_TPS_NotCalibrated: start-bit 6, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 6) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_NotCalibrated = x; + /* VCU_FAULT_BPS_NotCalibrated: start-bit 7, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 7) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_NotCalibrated = x; + /* VCU_FAULT_TPS_OutOfSync: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfSync = x; + /* VCU_FAULT_TPSBPS_Implausible: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 10) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPSBPS_Implausible = x; + /* VCU_FAULT_BSPD_SoftFault: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 12) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BSPD_SoftFault = x; + /* VCU_FAULT_LVS_BatteryEmpty: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_LVS_BatteryEmpty = x; + /* VCU_WARNING_LVS_BatteryLow: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_LVS_BatteryLow = x; + /* VCU_WARNING_HVIL_OverrideEn: start-bit 38, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 38) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_HVIL_OverrideEn = x; + /* VCU_WARNING_SAFETY_BypassEn: start-bit 39, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 39) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_SAFETY_BypassEn = x; + /* VCU_NOTICE_HVIL_TermSenseLost: start-bit 48, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_HVIL_TermSenseLost = x; + /* VCU_NOTICE_BMS_Over75kW: start-bit 52, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 52) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_BMS_Over75kW = x; + /* VCU_NOTICE_MCM_Over75kW: start-bit 53, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 53) & 0x1; + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_MCM_Over75kW = x; + o->can_0x506_VCU_Safety_Checker_rx = 1; + o->can_0x506_VCU_Safety_Checker_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x506_VCU_FAULT_TPS_OutOfRange(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfRange); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPS_OutOfRange(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfRange = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_BPS_OutOfRange(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_OutOfRange); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_BPS_OutOfRange(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_OutOfRange = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_TPS_PowerFailure(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_PowerFailure); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPS_PowerFailure(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_PowerFailure = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_BPS_PowerFailure(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_PowerFailure); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_BPS_PowerFailure(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_PowerFailure = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_TPS_SignalFailure(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_SignalFailure); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPS_SignalFailure(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_SignalFailure = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_BPS_SignalFailure(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_SignalFailure); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_BPS_SignalFailure(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_SignalFailure = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_TPS_NotCalibrated(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_NotCalibrated); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPS_NotCalibrated(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_NotCalibrated = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_BPS_NotCalibrated(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_NotCalibrated); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_BPS_NotCalibrated(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_NotCalibrated = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_TPS_OutOfSync(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfSync); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPS_OutOfSync(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfSync = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_TPSBPS_Implausible(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPSBPS_Implausible); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_TPSBPS_Implausible(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPSBPS_Implausible = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_BSPD_SoftFault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BSPD_SoftFault); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_BSPD_SoftFault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BSPD_SoftFault = in; + return 0; +} + +int decode_can_0x506_VCU_FAULT_LVS_BatteryEmpty(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_LVS_BatteryEmpty); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_FAULT_LVS_BatteryEmpty(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_FAULT_LVS_BatteryEmpty = in; + return 0; +} + +int decode_can_0x506_VCU_WARNING_LVS_BatteryLow(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_LVS_BatteryLow); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_WARNING_LVS_BatteryLow(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_LVS_BatteryLow = in; + return 0; +} + +int decode_can_0x506_VCU_WARNING_HVIL_OverrideEn(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_HVIL_OverrideEn); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_WARNING_HVIL_OverrideEn(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_HVIL_OverrideEn = in; + return 0; +} + +int decode_can_0x506_VCU_WARNING_SAFETY_BypassEn(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_SAFETY_BypassEn); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_WARNING_SAFETY_BypassEn(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_WARNING_SAFETY_BypassEn = in; + return 0; +} + +int decode_can_0x506_VCU_NOTICE_HVIL_TermSenseLost(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_HVIL_TermSenseLost); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_NOTICE_HVIL_TermSenseLost(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_HVIL_TermSenseLost = in; + return 0; +} + +int decode_can_0x506_VCU_NOTICE_BMS_Over75kW(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_BMS_Over75kW); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_NOTICE_BMS_Over75kW(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_BMS_Over75kW = in; + return 0; +} + +int decode_can_0x506_VCU_NOTICE_MCM_Over75kW(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_MCM_Over75kW); + *out = rval; + return 0; +} + +int encode_can_0x506_VCU_NOTICE_MCM_Over75kW(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_MCM_Over75kW = in; + return 0; +} + +int print_can_0x506_VCU_Safety_Checker(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_FAULT_TPS_OutOfRange = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfRange))); + r = print_helper(r, fprintf(output, "VCU_FAULT_BPS_OutOfRange = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_OutOfRange))); + r = print_helper(r, fprintf(output, "VCU_FAULT_TPS_PowerFailure = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_PowerFailure))); + r = print_helper(r, fprintf(output, "VCU_FAULT_BPS_PowerFailure = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_PowerFailure))); + r = print_helper(r, fprintf(output, "VCU_FAULT_TPS_SignalFailure = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_SignalFailure))); + r = print_helper(r, fprintf(output, "VCU_FAULT_BPS_SignalFailure = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_SignalFailure))); + r = print_helper(r, fprintf(output, "VCU_FAULT_TPS_NotCalibrated = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_NotCalibrated))); + r = print_helper(r, fprintf(output, "VCU_FAULT_BPS_NotCalibrated = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BPS_NotCalibrated))); + r = print_helper(r, fprintf(output, "VCU_FAULT_TPS_OutOfSync = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPS_OutOfSync))); + r = print_helper(r, fprintf(output, "VCU_FAULT_TPSBPS_Implausible = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_TPSBPS_Implausible))); + r = print_helper(r, fprintf(output, "VCU_FAULT_BSPD_SoftFault = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_BSPD_SoftFault))); + r = print_helper(r, fprintf(output, "VCU_FAULT_LVS_BatteryEmpty = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_FAULT_LVS_BatteryEmpty))); + r = print_helper(r, fprintf(output, "VCU_WARNING_LVS_BatteryLow = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_LVS_BatteryLow))); + r = print_helper(r, fprintf(output, "VCU_WARNING_HVIL_OverrideEn = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_HVIL_OverrideEn))); + r = print_helper(r, fprintf(output, "VCU_WARNING_SAFETY_BypassEn = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_WARNING_SAFETY_BypassEn))); + r = print_helper(r, fprintf(output, "VCU_NOTICE_HVIL_TermSenseLost = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_HVIL_TermSenseLost))); + r = print_helper(r, fprintf(output, "VCU_NOTICE_BMS_Over75kW = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_BMS_Over75kW))); + r = print_helper(r, fprintf(output, "VCU_NOTICE_MCM_Over75kW = (wire: %.0f)\n", (double)(o->can_0x506_VCU_Safety_Checker.VCU_NOTICE_MCM_Over75kW))); + return r; +} + +static int pack_can_0x507_Low_Voltage(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x507_Low_Voltage.Voltage)) & 0xffff; + i |= x; + *data = (i); + o->can_0x507_Low_Voltage_tx = 1; + return 8; +} + +static int unpack_can_0x507_Low_Voltage(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x507_Low_Voltage.Voltage = x; + o->can_0x507_Low_Voltage_rx = 1; + o->can_0x507_Low_Voltage_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x507_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x507_Low_Voltage.Voltage); + rval *= 0.001; + if (rval <= 20) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x507_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x507_Low_Voltage.Voltage = 0; + if (in > 20) + return -1; + in *= 1000; + o->can_0x507_Low_Voltage.Voltage = in; + return 0; +} + +int print_can_0x507_Low_Voltage(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "Voltage = (wire: %.0f)\n", (double)(o->can_0x507_Low_Voltage.Voltage))); + return r; +} + +static int pack_can_0x508_VCU_Regen_Settings(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_MCM_RegenMode: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenMode)) & 0xff; + i |= x; + /* VCU_MCM_MaxTorqueNm: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_MaxTorqueNm)) & 0xff; + x <<= 16; + i |= x; + /* VCU_MCM_RegenTorqueLimitNm: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueLimitNm)) & 0xff; + x <<= 24; + i |= x; + /* VCU_MCM_RegenTorqueZeroPedal: start-bit 32, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueZeroPedal)) & 0xff; + x <<= 32; + i |= x; + /* VCU_MCM_RegenAPPSMaxCoasting: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenAPPSMaxCoasting)) & 0xff; + x <<= 48; + i |= x; + /* VCU_MCM_RegenBPSMaxRegen: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenBPSMaxRegen)) & 0xff; + x <<= 56; + i |= x; + *data = (i); + o->can_0x508_VCU_Regen_Settings_tx = 1; + return 8; +} + +static int unpack_can_0x508_VCU_Regen_Settings(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_MCM_RegenMode: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenMode = x; + /* VCU_MCM_MaxTorqueNm: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_MaxTorqueNm = x; + /* VCU_MCM_RegenTorqueLimitNm: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueLimitNm = x; + /* VCU_MCM_RegenTorqueZeroPedal: start-bit 32, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueZeroPedal = x; + /* VCU_MCM_RegenAPPSMaxCoasting: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenAPPSMaxCoasting = x; + /* VCU_MCM_RegenBPSMaxRegen: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 56) & 0xff; + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenBPSMaxRegen = x; + o->can_0x508_VCU_Regen_Settings_rx = 1; + o->can_0x508_VCU_Regen_Settings_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x508_VCU_MCM_RegenMode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenMode); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_RegenMode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenMode = in; + return 0; +} + +int decode_can_0x508_VCU_MCM_MaxTorqueNm(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_MaxTorqueNm); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_MaxTorqueNm(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_MaxTorqueNm = in; + return 0; +} + +int decode_can_0x508_VCU_MCM_RegenTorqueLimitNm(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueLimitNm); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_RegenTorqueLimitNm(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueLimitNm = in; + return 0; +} + +int decode_can_0x508_VCU_MCM_RegenTorqueZeroPedal(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueZeroPedal); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_RegenTorqueZeroPedal(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueZeroPedal = in; + return 0; +} + +int decode_can_0x508_VCU_MCM_RegenAPPSMaxCoasting(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenAPPSMaxCoasting); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_RegenAPPSMaxCoasting(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenAPPSMaxCoasting = in; + return 0; +} + +int decode_can_0x508_VCU_MCM_RegenBPSMaxRegen(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenBPSMaxRegen); + *out = rval; + return 0; +} + +int encode_can_0x508_VCU_MCM_RegenBPSMaxRegen(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenBPSMaxRegen = in; + return 0; +} + +int print_can_0x508_VCU_Regen_Settings(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_MCM_RegenMode = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenMode))); + r = print_helper(r, fprintf(output, "VCU_MCM_MaxTorqueNm = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_MaxTorqueNm))); + r = print_helper(r, fprintf(output, "VCU_MCM_RegenTorqueLimitNm = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueLimitNm))); + r = print_helper(r, fprintf(output, "VCU_MCM_RegenTorqueZeroPedal = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenTorqueZeroPedal))); + r = print_helper(r, fprintf(output, "VCU_MCM_RegenAPPSMaxCoasting = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenAPPSMaxCoasting))); + r = print_helper(r, fprintf(output, "VCU_MCM_RegenBPSMaxRegen = (wire: %.0f)\n", (double)(o->can_0x508_VCU_Regen_Settings.VCU_MCM_RegenBPSMaxRegen))); + return r; +} + +static int pack_can_0x509_MCM_RTD_HVIL(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* HVIL_Active: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x509_MCM_RTD_HVIL.HVIL_Active)) & 0xffff; + i |= x; + /* MCM_Override_Enabled: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled)) & 0xff; + x <<= 16; + i |= x; + *data = (i); + o->can_0x509_MCM_RTD_HVIL_tx = 1; + return 8; +} + +static int unpack_can_0x509_MCM_RTD_HVIL(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* HVIL_Active: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x509_MCM_RTD_HVIL.HVIL_Active = x; + /* MCM_Override_Enabled: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled = x; + o->can_0x509_MCM_RTD_HVIL_rx = 1; + o->can_0x509_MCM_RTD_HVIL_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x509_HVIL_Active(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x509_MCM_RTD_HVIL.HVIL_Active); + if (rval <= 20) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x509_HVIL_Active(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x509_MCM_RTD_HVIL.HVIL_Active = 0; + if (in > 20) + return -1; + o->can_0x509_MCM_RTD_HVIL.HVIL_Active = in; + return 0; +} + +int decode_can_0x509_MCM_Override_Enabled(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x509_MCM_Override_Enabled(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled = 0; + if (in > 1) + return -1; + o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled = in; + return 0; +} + +int print_can_0x509_MCM_RTD_HVIL(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "HVIL_Active = (wire: %.0f)\n", (double)(o->can_0x509_MCM_RTD_HVIL.HVIL_Active))); + r = print_helper(r, fprintf(output, "MCM_Override_Enabled = (wire: %.0f)\n", (double)(o->can_0x509_MCM_RTD_HVIL.MCM_Override_Enabled))); + return r; +} + +static int pack_can_0x50a_Ground_Speed(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* speedKph: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50a_Ground_Speed.speedKph)) & 0xffff; + i |= x; + *data = (i); + o->can_0x50a_Ground_Speed_tx = 1; + return 8; +} + +static int unpack_can_0x50a_Ground_Speed(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* speedKph: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x50a_Ground_Speed.speedKph = x; + o->can_0x50a_Ground_Speed_rx = 1; + o->can_0x50a_Ground_Speed_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x50a_speedKph(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50a_Ground_Speed.speedKph); + if (rval <= 200) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x50a_speedKph(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50a_Ground_Speed.speedKph = 0; + if (in > 200) + return -1; + o->can_0x50a_Ground_Speed.speedKph = in; + return 0; +} + +int print_can_0x50a_Ground_Speed(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "speedKph = (wire: %.0f)\n", (double)(o->can_0x50a_Ground_Speed.speedKph))); + return r; +} + +static int pack_can_0x50c_Launch_Control_Additional_Information(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* TargetSlipRatio: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio)) & 0xffff; + i |= x; + /* Reserved_Debug_1: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_1)) & 0xffff; + x <<= 16; + i |= x; + /* Reserved_Debug_2: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_2)) & 0xffff; + x <<= 32; + i |= x; + /* Reserved_Debug_3: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_3)) & 0xff; + x <<= 48; + i |= x; + /* Reserved_Debug_4: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_4)) & 0xff; + x <<= 56; + i |= x; + *data = (i); + o->can_0x50c_Launch_Control_Additional_Information_tx = 1; + return 8; +} + +static int unpack_can_0x50c_Launch_Control_Additional_Information(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* TargetSlipRatio: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio = x; + /* Reserved_Debug_1: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_1 = x; + /* Reserved_Debug_2: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_2 = x; + /* Reserved_Debug_3: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_3 = x; + /* Reserved_Debug_4: start-bit 56, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 56) & 0xff; + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_4 = x; + o->can_0x50c_Launch_Control_Additional_Information_rx = 1; + o->can_0x50c_Launch_Control_Additional_Information_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x50c_TargetSlipRatio(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio); + rval *= 0.001; + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x50c_TargetSlipRatio(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio = 0; + if (in > 1) + return -1; + in *= 1000; + o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio = in; + return 0; +} + +int decode_can_0x50c_Reserved_Debug_1(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_1); + *out = rval; + return 0; +} + +int encode_can_0x50c_Reserved_Debug_1(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_1 = in; + return 0; +} + +int decode_can_0x50c_Reserved_Debug_2(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_2); + *out = rval; + return 0; +} + +int encode_can_0x50c_Reserved_Debug_2(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_2 = in; + return 0; +} + +int decode_can_0x50c_Reserved_Debug_3(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_3); + *out = rval; + return 0; +} + +int encode_can_0x50c_Reserved_Debug_3(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_3 = in; + return 0; +} + +int decode_can_0x50c_Reserved_Debug_4(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_4); + *out = rval; + return 0; +} + +int encode_can_0x50c_Reserved_Debug_4(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_4 = in; + return 0; +} + +int print_can_0x50c_Launch_Control_Additional_Information(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "TargetSlipRatio = (wire: %.0f)\n", (double)(o->can_0x50c_Launch_Control_Additional_Information.TargetSlipRatio))); + r = print_helper(r, fprintf(output, "Reserved_Debug_1 = (wire: %.0f)\n", (double)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_1))); + r = print_helper(r, fprintf(output, "Reserved_Debug_2 = (wire: %.0f)\n", (double)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_2))); + r = print_helper(r, fprintf(output, "Reserved_Debug_3 = (wire: %.0f)\n", (double)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_3))); + r = print_helper(r, fprintf(output, "Reserved_Debug_4 = (wire: %.0f)\n", (double)(o->can_0x50c_Launch_Control_Additional_Information.Reserved_Debug_4))); + return r; +} + +static int pack_can_0x50d_VCU_BPS1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BPS1Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x50d_VCU_BPS1.BPS1Voltage)) & 0xffff; + x <<= 16; + i |= x; + *data = (i); + o->can_0x50d_VCU_BPS1_tx = 1; + return 8; +} + +static int unpack_can_0x50d_VCU_BPS1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BPS1Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x50d_VCU_BPS1.BPS1Voltage = x; + o->can_0x50d_VCU_BPS1_rx = 1; + o->can_0x50d_VCU_BPS1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x50d_BPS1Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x50d_VCU_BPS1.BPS1Voltage); + rval *= 0.001; + if (rval <= 65.535) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x50d_BPS1Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x50d_VCU_BPS1.BPS1Voltage = 0; + if (in > 65.535) + return -1; + in *= 1000; + o->can_0x50d_VCU_BPS1.BPS1Voltage = in; + return 0; +} + +int print_can_0x50d_VCU_BPS1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BPS1Voltage = (wire: %.0f)\n", (double)(o->can_0x50d_VCU_BPS1.BPS1Voltage))); + return r; +} + +static int pack_can_0x50e_VCU_BMS_Debug_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_BMS_HighestCellTemp: start-bit 24, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp)) & 0xffff; + x <<= 24; + i |= x; + /* VCU_BMS_FaultFlags0: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags0)) & 0xff; + i |= x; + /* VCU_BMS_FaultFlags1: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags1)) & 0xff; + x <<= 8; + i |= x; + /* VCU_BMS_ShutdownRelayState: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_ShutdownRelayState)) & 0xff; + x <<= 16; + i |= x; + /* VCU_BMS_GetPower: start-bit 40, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetPower)) & 0xff; + x <<= 40; + i |= x; + /* VCU_BMS_GetCurrent: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetCurrent)) & 0xff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x50e_VCU_BMS_Debug_1_tx = 1; + return 8; +} + +static int unpack_can_0x50e_VCU_BMS_Debug_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_BMS_HighestCellTemp: start-bit 24, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0xffff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp = x; + /* VCU_BMS_FaultFlags0: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags0 = x; + /* VCU_BMS_FaultFlags1: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags1 = x; + /* VCU_BMS_ShutdownRelayState: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_ShutdownRelayState = x; + /* VCU_BMS_GetPower: start-bit 40, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 40) & 0xff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetPower = x; + /* VCU_BMS_GetCurrent: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetCurrent = x; + o->can_0x50e_VCU_BMS_Debug_1_rx = 1; + o->can_0x50e_VCU_BMS_Debug_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x50e_VCU_BMS_HighestCellTemp(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x50e_VCU_BMS_HighestCellTemp(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp = 0; + if (in > 255) + return -1; + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp = in; + return 0; +} + +int decode_can_0x50e_VCU_BMS_FaultFlags0(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags0); + *out = rval; + return 0; +} + +int encode_can_0x50e_VCU_BMS_FaultFlags0(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags0 = in; + return 0; +} + +int decode_can_0x50e_VCU_BMS_FaultFlags1(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags1); + *out = rval; + return 0; +} + +int encode_can_0x50e_VCU_BMS_FaultFlags1(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags1 = in; + return 0; +} + +int decode_can_0x50e_VCU_BMS_ShutdownRelayState(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_ShutdownRelayState); + *out = rval; + return 0; +} + +int encode_can_0x50e_VCU_BMS_ShutdownRelayState(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_ShutdownRelayState = in; + return 0; +} + +int decode_can_0x50e_VCU_BMS_GetPower(const can_obj_all_sre_edited_h_t *o, int8_t *out) { + assert(o); + assert(out); + int8_t rval = (int8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetPower); + *out = rval; + return 0; +} + +int encode_can_0x50e_VCU_BMS_GetPower(can_obj_all_sre_edited_h_t *o, int8_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetPower = in; + return 0; +} + +int decode_can_0x50e_VCU_BMS_GetCurrent(const can_obj_all_sre_edited_h_t *o, int8_t *out) { + assert(o); + assert(out); + int8_t rval = (int8_t)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetCurrent); + *out = rval; + return 0; +} + +int encode_can_0x50e_VCU_BMS_GetCurrent(can_obj_all_sre_edited_h_t *o, int8_t in) { + assert(o); + o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetCurrent = in; + return 0; +} + +int print_can_0x50e_VCU_BMS_Debug_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_BMS_HighestCellTemp = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_HighestCellTemp))); + r = print_helper(r, fprintf(output, "VCU_BMS_FaultFlags0 = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags0))); + r = print_helper(r, fprintf(output, "VCU_BMS_FaultFlags1 = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_FaultFlags1))); + r = print_helper(r, fprintf(output, "VCU_BMS_ShutdownRelayState = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_ShutdownRelayState))); + r = print_helper(r, fprintf(output, "VCU_BMS_GetPower = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetPower))); + r = print_helper(r, fprintf(output, "VCU_BMS_GetCurrent = (wire: %.0f)\n", (double)(o->can_0x50e_VCU_BMS_Debug_1.VCU_BMS_GetCurrent))); + return r; +} + +static int pack_can_0x50f_VCU_BMS_Debug_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_BMS_HighestCellVoltage: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage)) & 0xffff; + i |= x; + /* VCU_BMS_LowestCellVoltage: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage)) & 0xffff; + x <<= 16; + i |= x; + /* VCU_BMS_HighestCellTemp_dC: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellTemp_dC)) & 0xffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x50f_VCU_BMS_Debug_2_tx = 1; + return 8; +} + +static int unpack_can_0x50f_VCU_BMS_Debug_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_BMS_HighestCellVoltage: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage = x; + /* VCU_BMS_LowestCellVoltage: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage = x; + /* VCU_BMS_HighestCellTemp_dC: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellTemp_dC = x; + o->can_0x50f_VCU_BMS_Debug_2_rx = 1; + o->can_0x50f_VCU_BMS_Debug_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x50f_VCU_BMS_HighestCellVoltage(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x50f_VCU_BMS_HighestCellVoltage(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage = 0; + if (in > 255) + return -1; + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage = in; + return 0; +} + +int decode_can_0x50f_VCU_BMS_LowestCellVoltage(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x50f_VCU_BMS_LowestCellVoltage(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage = 0; + if (in > 255) + return -1; + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage = in; + return 0; +} + +int decode_can_0x50f_VCU_BMS_HighestCellTemp_dC(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellTemp_dC); + *out = rval; + return 0; +} + +int encode_can_0x50f_VCU_BMS_HighestCellTemp_dC(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellTemp_dC = in; + return 0; +} + +int print_can_0x50f_VCU_BMS_Debug_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_BMS_HighestCellVoltage = (wire: %.0f)\n", (double)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellVoltage))); + r = print_helper(r, fprintf(output, "VCU_BMS_LowestCellVoltage = (wire: %.0f)\n", (double)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_LowestCellVoltage))); + r = print_helper(r, fprintf(output, "VCU_BMS_HighestCellTemp_dC = (wire: %.0f)\n", (double)(o->can_0x50f_VCU_BMS_Debug_2.VCU_BMS_HighestCellTemp_dC))); + return r; +} + +static int pack_can_0x510_VCU_80kW_Debug(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* VCU_MCM_Power: start-bit 0, length 32, endianess intel, scaling 1, offset 0 */ + x = ((uint32_t)(o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power)) & 0xffffffff; + i |= x; + /* VCU_Safety_Checker_Notices: start-bit 32, length 32, endianess intel, scaling 1, offset 0 */ + x = ((uint32_t)(o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices)) & 0xffffffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x510_VCU_80kW_Debug_tx = 1; + return 8; +} + +static int unpack_can_0x510_VCU_80kW_Debug(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* VCU_MCM_Power: start-bit 0, length 32, endianess intel, scaling 1, offset 0 */ + x = i & 0xffffffff; + o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power = x; + /* VCU_Safety_Checker_Notices: start-bit 32, length 32, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffffffff; + o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices = x; + o->can_0x510_VCU_80kW_Debug_rx = 1; + o->can_0x510_VCU_80kW_Debug_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x510_VCU_MCM_Power(const can_obj_all_sre_edited_h_t *o, uint32_t *out) { + assert(o); + assert(out); + uint32_t rval = (uint32_t)(o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power); + if (rval <= 200) { + *out = rval; + return 0; + } else { + *out = (uint32_t)0; + return -1; + } +} + +int encode_can_0x510_VCU_MCM_Power(can_obj_all_sre_edited_h_t *o, uint32_t in) { + assert(o); + o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power = 0; + if (in > 200) + return -1; + o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power = in; + return 0; +} + +int decode_can_0x510_VCU_Safety_Checker_Notices(const can_obj_all_sre_edited_h_t *o, uint32_t *out) { + assert(o); + assert(out); + uint32_t rval = (uint32_t)(o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices); + if (rval <= 200) { + *out = rval; + return 0; + } else { + *out = (uint32_t)0; + return -1; + } +} + +int encode_can_0x510_VCU_Safety_Checker_Notices(can_obj_all_sre_edited_h_t *o, uint32_t in) { + assert(o); + o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices = 0; + if (in > 200) + return -1; + o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices = in; + return 0; +} + +int print_can_0x510_VCU_80kW_Debug(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "VCU_MCM_Power = (wire: %.0f)\n", (double)(o->can_0x510_VCU_80kW_Debug.VCU_MCM_Power))); + r = print_helper(r, fprintf(output, "VCU_Safety_Checker_Notices = (wire: %.0f)\n", (double)(o->can_0x510_VCU_80kW_Debug.VCU_Safety_Checker_Notices))); + return r; +} + +static int pack_can_0x511_VCU_Power_Limit_Overview(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* PL_Torque_Command: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command)) & 0xffff; + x <<= 32; + i |= x; + /* PL_PID_Output: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_PID_Output)) & 0xffff; + x <<= 48; + i |= x; + /* PL_Status: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Status)) & 0xff; + i |= x; + /* PL_Mode: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Mode)) & 0xff; + x <<= 8; + i |= x; + /* PL_Target_Power: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Target_Power)) & 0xff; + x <<= 16; + i |= x; + /* PL_Initialisation_Threshold: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Initialisation_Threshold)) & 0xff; + x <<= 24; + i |= x; + *data = (i); + o->can_0x511_VCU_Power_Limit_Overview_tx = 1; + return 8; +} + +static int unpack_can_0x511_VCU_Power_Limit_Overview(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* PL_Torque_Command: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command = x; + /* PL_PID_Output: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x511_VCU_Power_Limit_Overview.PL_PID_Output = x; + /* PL_Status: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x511_VCU_Power_Limit_Overview.PL_Status = x; + /* PL_Mode: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x511_VCU_Power_Limit_Overview.PL_Mode = x; + /* PL_Target_Power: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x511_VCU_Power_Limit_Overview.PL_Target_Power = x; + /* PL_Initialisation_Threshold: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0xff; + o->can_0x511_VCU_Power_Limit_Overview.PL_Initialisation_Threshold = x; + o->can_0x511_VCU_Power_Limit_Overview_rx = 1; + o->can_0x511_VCU_Power_Limit_Overview_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x511_PL_Torque_Command(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command); + rval *= 0.1; + if ((rval >= -3276.8) && (rval <= 3276.7)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x511_PL_Torque_Command(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command = 0; + if (in < -3276.8) + return -1; + if (in > 3276.7) + return -1; + in *= 10; + o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command = in; + return 0; +} + +int decode_can_0x511_PL_PID_Output(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_PID_Output); + *out = rval; + return 0; +} + +int encode_can_0x511_PL_PID_Output(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_PID_Output = in; + return 0; +} + +int decode_can_0x511_PL_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Status); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x511_PL_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_Status = 0; + if (in > 1) + return -1; + o->can_0x511_VCU_Power_Limit_Overview.PL_Status = in; + return 0; +} + +int decode_can_0x511_PL_Mode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Mode); + *out = rval; + return 0; +} + +int encode_can_0x511_PL_Mode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_Mode = in; + return 0; +} + +int decode_can_0x511_PL_Target_Power(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Target_Power); + *out = rval; + return 0; +} + +int encode_can_0x511_PL_Target_Power(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_Target_Power = in; + return 0; +} + +int decode_can_0x511_PL_Initialisation_Threshold(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x511_VCU_Power_Limit_Overview.PL_Initialisation_Threshold); + *out = rval; + return 0; +} + +int encode_can_0x511_PL_Initialisation_Threshold(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x511_VCU_Power_Limit_Overview.PL_Initialisation_Threshold = in; + return 0; +} + +int print_can_0x511_VCU_Power_Limit_Overview(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "PL_Torque_Command = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Torque_Command))); + r = print_helper(r, fprintf(output, "PL_PID_Output = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_PID_Output))); + r = print_helper(r, fprintf(output, "PL_Status = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Status))); + r = print_helper(r, fprintf(output, "PL_Mode = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Mode))); + r = print_helper(r, fprintf(output, "PL_Target_Power = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Target_Power))); + r = print_helper(r, fprintf(output, "PL_Initialisation_Threshold = (wire: %.0f)\n", (double)(o->can_0x511_VCU_Power_Limit_Overview.PL_Initialisation_Threshold))); + return r; +} + +static int pack_can_0x512_VCU_Power_Limit_PID_Output_Details(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* PL_PID_Proportional: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Proportional)) & 0xffff; + i |= x; + /* PL_PID_Integral: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Integral)) & 0xffff; + x <<= 16; + i |= x; + /* PL_PID_Derivative: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Derivative)) & 0xffff; + x <<= 32; + i |= x; + /* PL_PID_AntiWindupEnabled: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled)) & 0xff; + x <<= 48; + i |= x; + /* PL_PL_Mode: start-bit 57, length 3, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Mode)) & 0x7; + x <<= 57; + i |= x; + /* PL_PL_Status: start-bit 56, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Status)) & 0x1; + x <<= 56; + i |= x; + /* PL_PID_AntiWindupEnabled2: start-bit 60, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled2)) & 0x1; + x <<= 60; + i |= x; + *data = (i); + o->can_0x512_VCU_Power_Limit_PID_Output_Details_tx = 1; + return 8; +} + +static int unpack_can_0x512_VCU_Power_Limit_PID_Output_Details(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* PL_PID_Proportional: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Proportional = x; + /* PL_PID_Integral: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Integral = x; + /* PL_PID_Derivative: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Derivative = x; + /* PL_PID_AntiWindupEnabled: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled = x; + /* PL_PL_Mode: start-bit 57, length 3, endianess intel, scaling 1, offset 0 */ + x = (i >> 57) & 0x7; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Mode = x; + /* PL_PL_Status: start-bit 56, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 56) & 0x1; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Status = x; + /* PL_PID_AntiWindupEnabled2: start-bit 60, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 60) & 0x1; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled2 = x; + o->can_0x512_VCU_Power_Limit_PID_Output_Details_rx = 1; + o->can_0x512_VCU_Power_Limit_PID_Output_Details_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x512_PL_PID_Proportional(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Proportional); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PID_Proportional(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Proportional = in; + return 0; +} + +int decode_can_0x512_PL_PID_Integral(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Integral); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PID_Integral(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Integral = in; + return 0; +} + +int decode_can_0x512_PL_PID_Derivative(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Derivative); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PID_Derivative(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Derivative = in; + return 0; +} + +int decode_can_0x512_PL_PID_AntiWindupEnabled(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x512_PL_PID_AntiWindupEnabled(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled = 0; + if (in > 1) + return -1; + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled = in; + return 0; +} + +int decode_can_0x512_PL_PL_Mode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Mode); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PL_Mode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Mode = in; + return 0; +} + +int decode_can_0x512_PL_PL_Status(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Status); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PL_Status(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Status = in; + return 0; +} + +int decode_can_0x512_PL_PID_AntiWindupEnabled2(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled2); + *out = rval; + return 0; +} + +int encode_can_0x512_PL_PID_AntiWindupEnabled2(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled2 = in; + return 0; +} + +int print_can_0x512_VCU_Power_Limit_PID_Output_Details(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "PL_PID_Proportional = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Proportional))); + r = print_helper(r, fprintf(output, "PL_PID_Integral = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Integral))); + r = print_helper(r, fprintf(output, "PL_PID_Derivative = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_Derivative))); + r = print_helper(r, fprintf(output, "PL_PID_AntiWindupEnabled = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled))); + r = print_helper(r, fprintf(output, "PL_PL_Mode = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Mode))); + r = print_helper(r, fprintf(output, "PL_PL_Status = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PL_Status))); + r = print_helper(r, fprintf(output, "PL_PID_AntiWindupEnabled2 = (wire: %.0f)\n", (double)(o->can_0x512_VCU_Power_Limit_PID_Output_Details.PL_PID_AntiWindupEnabled2))); + return r; +} + +static int pack_can_0x513_VCU_Power_Limit_LUT_Parameters(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* Velocity_Floor_RPM_Floor: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor)) & 0xffff; + i |= x; + /* Velocity_Floor_RPM_Ceiling: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling)) & 0xffff; + x <<= 16; + i |= x; + /* Velocity_Ceiling_RPM_Floor: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor)) & 0xffff; + x <<= 32; + i |= x; + /* Velocity_Ceiling_RPM_Ceiling: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x513_VCU_Power_Limit_LUT_Parameters_tx = 1; + return 8; +} + +static int unpack_can_0x513_VCU_Power_Limit_LUT_Parameters(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* Velocity_Floor_RPM_Floor: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor = x; + /* Velocity_Floor_RPM_Ceiling: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling = x; + /* Velocity_Ceiling_RPM_Floor: start-bit 32, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor = x; + /* Velocity_Ceiling_RPM_Ceiling: start-bit 48, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling = x; + o->can_0x513_VCU_Power_Limit_LUT_Parameters_rx = 1; + o->can_0x513_VCU_Power_Limit_LUT_Parameters_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x513_Velocity_Floor_RPM_Floor(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x513_Velocity_Floor_RPM_Floor(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor = 0; + if (in > 255) + return -1; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor = in; + return 0; +} + +int decode_can_0x513_Velocity_Floor_RPM_Ceiling(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x513_Velocity_Floor_RPM_Ceiling(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling = 0; + if (in > 255) + return -1; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling = in; + return 0; +} + +int decode_can_0x513_Velocity_Ceiling_RPM_Floor(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x513_Velocity_Ceiling_RPM_Floor(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor = 0; + if (in > 255) + return -1; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor = in; + return 0; +} + +int decode_can_0x513_Velocity_Ceiling_RPM_Ceiling(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling); + if (rval <= 255) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x513_Velocity_Ceiling_RPM_Ceiling(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling = 0; + if (in > 255) + return -1; + o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling = in; + return 0; +} + +int print_can_0x513_VCU_Power_Limit_LUT_Parameters(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "Velocity_Floor_RPM_Floor = (wire: %.0f)\n", (double)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Floor))); + r = print_helper(r, fprintf(output, "Velocity_Floor_RPM_Ceiling = (wire: %.0f)\n", (double)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Floor_RPM_Ceiling))); + r = print_helper(r, fprintf(output, "Velocity_Ceiling_RPM_Floor = (wire: %.0f)\n", (double)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Floor))); + r = print_helper(r, fprintf(output, "Velocity_Ceiling_RPM_Ceiling = (wire: %.0f)\n", (double)(o->can_0x513_VCU_Power_Limit_LUT_Parameters.Velocity_Ceiling_RPM_Ceiling))); + return r; +} + +static int pack_can_0x514_VCU_Power_Limit_PID_Information(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* PL_PID_TotalError: start-bit 16, length 32, endianess intel, scaling 1, offset 0 */ + x = ((uint32_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_TotalError)) & 0xffffffff; + x <<= 16; + i |= x; + /* PL_PID_Setpoint: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Setpoint)) & 0xffff; + i |= x; + /* PL_PID_Kp: start-bit 48, length 8, endianess intel, scaling 0.1, offset 0 */ + x = ((uint8_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp)) & 0xff; + x <<= 48; + i |= x; + /* PL_PID_Ki: start-bit 56, length 8, endianess intel, scaling 0.1, offset 0 */ + x = ((uint8_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki)) & 0xff; + x <<= 56; + i |= x; + *data = (i); + o->can_0x514_VCU_Power_Limit_PID_Information_tx = 1; + return 8; +} + +static int unpack_can_0x514_VCU_Power_Limit_PID_Information(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* PL_PID_TotalError: start-bit 16, length 32, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffffffff; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_TotalError = x; + /* PL_PID_Setpoint: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Setpoint = x; + /* PL_PID_Kp: start-bit 48, length 8, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp = x; + /* PL_PID_Ki: start-bit 56, length 8, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 56) & 0xff; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki = x; + o->can_0x514_VCU_Power_Limit_PID_Information_rx = 1; + o->can_0x514_VCU_Power_Limit_PID_Information_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x514_PL_PID_TotalError(const can_obj_all_sre_edited_h_t *o, int32_t *out) { + assert(o); + assert(out); + int32_t rval = (int32_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_TotalError); + *out = rval; + return 0; +} + +int encode_can_0x514_PL_PID_TotalError(can_obj_all_sre_edited_h_t *o, int32_t in) { + assert(o); + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_TotalError = in; + return 0; +} + +int decode_can_0x514_PL_PID_Setpoint(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Setpoint); + *out = rval; + return 0; +} + +int encode_can_0x514_PL_PID_Setpoint(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Setpoint = in; + return 0; +} + +int decode_can_0x514_PL_PID_Kp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp); + rval *= 0.1; + if (rval <= 25.5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x514_PL_PID_Kp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp = 0; + if (in > 25.5) + return -1; + in *= 10; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp = in; + return 0; +} + +int decode_can_0x514_PL_PID_Ki(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki); + rval *= 0.1; + if (rval <= 25.5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x514_PL_PID_Ki(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki = 0; + if (in > 25.5) + return -1; + in *= 10; + o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki = in; + return 0; +} + +int print_can_0x514_VCU_Power_Limit_PID_Information(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "PL_PID_TotalError = (wire: %.0f)\n", (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_TotalError))); + r = print_helper(r, fprintf(output, "PL_PID_Setpoint = (wire: %.0f)\n", (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Setpoint))); + r = print_helper(r, fprintf(output, "PL_PID_Kp = (wire: %.0f)\n", (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Kp))); + r = print_helper(r, fprintf(output, "PL_PID_Ki = (wire: %.0f)\n", (double)(o->can_0x514_VCU_Power_Limit_PID_Information.PL_PID_Ki))); + return r; +} + +static int pack_can_0x515_DRS_SAS(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* Steering_Angle: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x515_DRS_SAS.Steering_Angle)) & 0xffff; + i |= x; + /* DRS_Enable: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x515_DRS_SAS.DRS_Enable)) & 0xff; + x <<= 16; + i |= x; + /* DRS_Mode: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x515_DRS_SAS.DRS_Mode)) & 0xff; + x <<= 24; + i |= x; + /* flap_DRS: start-bit 32, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x515_DRS_SAS.flap_DRS)) & 0xff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x515_DRS_SAS_tx = 1; + return 8; +} + +static int unpack_can_0x515_DRS_SAS(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* Steering_Angle: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x515_DRS_SAS.Steering_Angle = x; + /* DRS_Enable: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x515_DRS_SAS.DRS_Enable = x; + /* DRS_Mode: start-bit 24, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0xff; + o->can_0x515_DRS_SAS.DRS_Mode = x; + /* flap_DRS: start-bit 32, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0xff; + o->can_0x515_DRS_SAS.flap_DRS = x; + o->can_0x515_DRS_SAS_rx = 1; + o->can_0x515_DRS_SAS_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x515_Steering_Angle(const can_obj_all_sre_edited_h_t *o, int16_t *out) { + assert(o); + assert(out); + int16_t rval = (int16_t)(o->can_0x515_DRS_SAS.Steering_Angle); + if ((rval >= -100) && (rval <= 100)) { + *out = rval; + return 0; + } else { + *out = (int16_t)0; + return -1; + } +} + +int encode_can_0x515_Steering_Angle(can_obj_all_sre_edited_h_t *o, int16_t in) { + assert(o); + o->can_0x515_DRS_SAS.Steering_Angle = 0; + if (in < -100) + return -1; + if (in > 100) + return -1; + o->can_0x515_DRS_SAS.Steering_Angle = in; + return 0; +} + +int decode_can_0x515_DRS_Enable(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x515_DRS_SAS.DRS_Enable); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x515_DRS_Enable(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x515_DRS_SAS.DRS_Enable = 0; + if (in > 1) + return -1; + o->can_0x515_DRS_SAS.DRS_Enable = in; + return 0; +} + +int decode_can_0x515_DRS_Mode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x515_DRS_SAS.DRS_Mode); + if (rval <= 3) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x515_DRS_Mode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x515_DRS_SAS.DRS_Mode = 0; + if (in > 3) + return -1; + o->can_0x515_DRS_SAS.DRS_Mode = in; + return 0; +} + +int decode_can_0x515_flap_DRS(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x515_DRS_SAS.flap_DRS); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x515_flap_DRS(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x515_DRS_SAS.flap_DRS = 0; + if (in > 1) + return -1; + o->can_0x515_DRS_SAS.flap_DRS = in; + return 0; +} + +int print_can_0x515_DRS_SAS(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "Steering_Angle = (wire: %.0f)\n", (double)(o->can_0x515_DRS_SAS.Steering_Angle))); + r = print_helper(r, fprintf(output, "DRS_Enable = (wire: %.0f)\n", (double)(o->can_0x515_DRS_SAS.DRS_Enable))); + r = print_helper(r, fprintf(output, "DRS_Mode = (wire: %.0f)\n", (double)(o->can_0x515_DRS_SAS.DRS_Mode))); + r = print_helper(r, fprintf(output, "flap_DRS = (wire: %.0f)\n", (double)(o->can_0x515_DRS_SAS.flap_DRS))); + return r; +} + +static int pack_can_0x5ff_Enable_Inverter(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t m = 0; + /* HVIL_Enable: start-bit 0, length 8, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x5ff_Enable_Inverter.HVIL_Enable)) & 0xff; + x <<= 49; + m |= x; + /* Inverter_Enable: start-bit 8, length 8, endianess motorola, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x5ff_Enable_Inverter.Inverter_Enable)) & 0xff; + x <<= 41; + m |= x; + *data = reverse_byte_order(m); + o->can_0x5ff_Enable_Inverter_tx = 1; + return 4; +} + +static int unpack_can_0x5ff_Enable_Inverter(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t m = reverse_byte_order(data); + if (dlc < 4) + return -1; + /* HVIL_Enable: start-bit 0, length 8, endianess motorola, scaling 1, offset 0 */ + x = (m >> 49) & 0xff; + o->can_0x5ff_Enable_Inverter.HVIL_Enable = x; + /* Inverter_Enable: start-bit 8, length 8, endianess motorola, scaling 1, offset 0 */ + x = (m >> 41) & 0xff; + o->can_0x5ff_Enable_Inverter.Inverter_Enable = x; + o->can_0x5ff_Enable_Inverter_rx = 1; + o->can_0x5ff_Enable_Inverter_time_stamp_rx = time_stamp; + return 4; +} + +int decode_can_0x5ff_HVIL_Enable(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x5ff_Enable_Inverter.HVIL_Enable); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x5ff_HVIL_Enable(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x5ff_Enable_Inverter.HVIL_Enable = 0; + if (in > 1) + return -1; + o->can_0x5ff_Enable_Inverter.HVIL_Enable = in; + return 0; +} + +int decode_can_0x5ff_Inverter_Enable(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x5ff_Enable_Inverter.Inverter_Enable); + if (rval <= 1) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x5ff_Inverter_Enable(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x5ff_Enable_Inverter.Inverter_Enable = 0; + if (in > 1) + return -1; + o->can_0x5ff_Enable_Inverter.Inverter_Enable = in; + return 0; +} + +int print_can_0x5ff_Enable_Inverter(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "HVIL_Enable = (wire: %.0f)\n", (double)(o->can_0x5ff_Enable_Inverter.HVIL_Enable))); + r = print_helper(r, fprintf(output, "Inverter_Enable = (wire: %.0f)\n", (double)(o->can_0x5ff_Enable_Inverter.Inverter_Enable))); + return r; +} + +static int pack_can_0x600_BMS_State_Command(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_State_Request: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_State_Request)) & 0xff; + i |= x; + /* BMS_Relay_Driver_1_Command: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_1_Command)) & 0x1; + x <<= 10; + i |= x; + /* BMS_Relay_Driver_2_Command: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_2_Command)) & 0x1; + x <<= 11; + i |= x; + /* BMS_Relay_Driver_3_Command: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_3_Command)) & 0x1; + x <<= 12; + i |= x; + /* BMS_Relay_Driver_4_Command: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_4_Command)) & 0x1; + x <<= 13; + i |= x; + /* BMS_Relay_Driver_5_Command: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_5_Command)) & 0x1; + x <<= 14; + i |= x; + /* BMS_Relay_Driver_6_Command: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_6_Command)) & 0x1; + x <<= 15; + i |= x; + *data = (i); + o->can_0x600_BMS_State_Command_tx = 1; + return 2; +} + +static int unpack_can_0x600_BMS_State_Command(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 2) + return -1; + /* BMS_State_Request: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x600_BMS_State_Command.BMS_State_Request = x; + /* BMS_Relay_Driver_1_Command: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 10) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_1_Command = x; + /* BMS_Relay_Driver_2_Command: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 11) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_2_Command = x; + /* BMS_Relay_Driver_3_Command: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 12) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_3_Command = x; + /* BMS_Relay_Driver_4_Command: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 13) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_4_Command = x; + /* BMS_Relay_Driver_5_Command: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 14) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_5_Command = x; + /* BMS_Relay_Driver_6_Command: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 15) & 0x1; + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_6_Command = x; + o->can_0x600_BMS_State_Command_rx = 1; + o->can_0x600_BMS_State_Command_time_stamp_rx = time_stamp; + return 2; +} + +int decode_can_0x600_BMS_State_Request(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_State_Request); + if (rval <= 4) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x600_BMS_State_Request(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_State_Request = 0; + if (in > 4) + return -1; + o->can_0x600_BMS_State_Command.BMS_State_Request = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_1_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_1_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_1_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_1_Command = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_2_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_2_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_2_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_2_Command = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_3_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_3_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_3_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_3_Command = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_4_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_4_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_4_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_4_Command = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_5_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_5_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_5_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_5_Command = in; + return 0; +} + +int decode_can_0x600_BMS_Relay_Driver_6_Command(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_6_Command); + *out = rval; + return 0; +} + +int encode_can_0x600_BMS_Relay_Driver_6_Command(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x600_BMS_State_Command.BMS_Relay_Driver_6_Command = in; + return 0; +} + +int print_can_0x600_BMS_State_Command(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_State_Request = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_State_Request))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_1_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_1_Command))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_2_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_2_Command))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_3_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_3_Command))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_4_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_4_Command))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_5_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_5_Command))); + r = print_helper(r, fprintf(output, "BMS_Relay_Driver_6_Command = (wire: %.0f)\n", (double)(o->can_0x600_BMS_State_Command.BMS_Relay_Driver_6_Command))); + return r; +} + +static int pack_can_0x602_BMS_Master_Faults(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Isolation_Leakage_Fault: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Isolation_Leakage_Fault)) & 0x1; + i |= x; + /* BMS_Monitor_Communication_Fault: start-bit 1, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Monitor_Communication_Fault)) & 0x1; + x <<= 1; + i |= x; + /* BMS_Precharge_Fault: start-bit 2, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Precharge_Fault)) & 0x1; + x <<= 2; + i |= x; + /* BMS_Pack_Discharge_Envelope_Exceeded_Fault: start-bit 3, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Discharge_Envelope_Exceeded_Fault)) & 0x1; + x <<= 3; + i |= x; + /* BMS_Pack_Charge_Envelope_Exceeded_Fault: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Charge_Envelope_Exceeded_Fault)) & 0x1; + x <<= 4; + i |= x; + /* BMS_Failed_Thermistor_Fault: start-bit 5, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Failed_Thermistor_Fault)) & 0x1; + x <<= 5; + i |= x; + /* BMS_Cell_Over_Voltage_Fault: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Voltage_Fault)) & 0x1; + x <<= 8; + i |= x; + /* BMS_Cell_Under_Voltage_Fault: start-bit 9, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Voltage_Fault)) & 0x1; + x <<= 9; + i |= x; + /* BMS_Cell_Over_Temperature_Fault: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Temperature_Fault)) & 0x1; + x <<= 10; + i |= x; + /* BMS_Cell_Under_Temperature_Fault: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Temperature_Fault)) & 0x1; + x <<= 11; + i |= x; + /* BMS_Pack_Over_Voltage_Fault: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Over_Voltage_Fault)) & 0x1; + x <<= 12; + i |= x; + /* BMS_Pack_Under_Voltage_Fault: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Under_Voltage_Fault)) & 0x1; + x <<= 13; + i |= x; + /* BMS_Over_Current_Discharge_Fault: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Discharge_Fault)) & 0x1; + x <<= 14; + i |= x; + /* BMS_Over_Current_Charge_Fault: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Charge_Fault)) & 0x1; + x <<= 15; + i |= x; + /* BMS_Imminent_Contactor_Opening_Warning: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Imminent_Contactor_Opening_Warning)) & 0x1; + x <<= 16; + i |= x; + *data = (i); + o->can_0x602_BMS_Master_Faults_tx = 1; + return 8; +} + +static int unpack_can_0x602_BMS_Master_Faults(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Isolation_Leakage_Fault: start-bit 0, length 1, endianess intel, scaling 1, offset 0 */ + x = i & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Isolation_Leakage_Fault = x; + /* BMS_Monitor_Communication_Fault: start-bit 1, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 1) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Monitor_Communication_Fault = x; + /* BMS_Precharge_Fault: start-bit 2, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 2) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Precharge_Fault = x; + /* BMS_Pack_Discharge_Envelope_Exceeded_Fault: start-bit 3, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 3) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Pack_Discharge_Envelope_Exceeded_Fault = x; + /* BMS_Pack_Charge_Envelope_Exceeded_Fault: start-bit 4, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 4) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Pack_Charge_Envelope_Exceeded_Fault = x; + /* BMS_Failed_Thermistor_Fault: start-bit 5, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 5) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Failed_Thermistor_Fault = x; + /* BMS_Cell_Over_Voltage_Fault: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Voltage_Fault = x; + /* BMS_Cell_Under_Voltage_Fault: start-bit 9, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 9) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Voltage_Fault = x; + /* BMS_Cell_Over_Temperature_Fault: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 10) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Temperature_Fault = x; + /* BMS_Cell_Under_Temperature_Fault: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 11) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Temperature_Fault = x; + /* BMS_Pack_Over_Voltage_Fault: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 12) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Pack_Over_Voltage_Fault = x; + /* BMS_Pack_Under_Voltage_Fault: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 13) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Pack_Under_Voltage_Fault = x; + /* BMS_Over_Current_Discharge_Fault: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 14) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Discharge_Fault = x; + /* BMS_Over_Current_Charge_Fault: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 15) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Charge_Fault = x; + /* BMS_Imminent_Contactor_Opening_Warning: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x602_BMS_Master_Faults.BMS_Imminent_Contactor_Opening_Warning = x; + o->can_0x602_BMS_Master_Faults_rx = 1; + o->can_0x602_BMS_Master_Faults_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x602_BMS_Isolation_Leakage_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Isolation_Leakage_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Isolation_Leakage_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Isolation_Leakage_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Monitor_Communication_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Monitor_Communication_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Monitor_Communication_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Monitor_Communication_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Precharge_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Precharge_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Precharge_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Precharge_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Pack_Discharge_Envelope_Exceeded_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Discharge_Envelope_Exceeded_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Pack_Discharge_Envelope_Exceeded_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Pack_Discharge_Envelope_Exceeded_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Pack_Charge_Envelope_Exceeded_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Charge_Envelope_Exceeded_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Pack_Charge_Envelope_Exceeded_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Pack_Charge_Envelope_Exceeded_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Failed_Thermistor_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Failed_Thermistor_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Failed_Thermistor_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Failed_Thermistor_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Cell_Over_Voltage_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Voltage_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Cell_Over_Voltage_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Voltage_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Cell_Under_Voltage_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Voltage_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Cell_Under_Voltage_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Voltage_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Cell_Over_Temperature_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Temperature_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Cell_Over_Temperature_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Temperature_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Cell_Under_Temperature_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Temperature_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Cell_Under_Temperature_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Temperature_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Pack_Over_Voltage_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Over_Voltage_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Pack_Over_Voltage_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Pack_Over_Voltage_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Pack_Under_Voltage_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Under_Voltage_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Pack_Under_Voltage_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Pack_Under_Voltage_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Over_Current_Discharge_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Discharge_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Over_Current_Discharge_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Discharge_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Over_Current_Charge_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Charge_Fault); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Over_Current_Charge_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Charge_Fault = in; + return 0; +} + +int decode_can_0x602_BMS_Imminent_Contactor_Opening_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x602_BMS_Master_Faults.BMS_Imminent_Contactor_Opening_Warning); + *out = rval; + return 0; +} + +int encode_can_0x602_BMS_Imminent_Contactor_Opening_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x602_BMS_Master_Faults.BMS_Imminent_Contactor_Opening_Warning = in; + return 0; +} + +int print_can_0x602_BMS_Master_Faults(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Isolation_Leakage_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Isolation_Leakage_Fault))); + r = print_helper(r, fprintf(output, "BMS_Monitor_Communication_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Monitor_Communication_Fault))); + r = print_helper(r, fprintf(output, "BMS_Precharge_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Precharge_Fault))); + r = print_helper(r, fprintf(output, "BMS_Pack_Discharge_Envelope_Exceeded_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Discharge_Envelope_Exceeded_Fault))); + r = print_helper(r, fprintf(output, "BMS_Pack_Charge_Envelope_Exceeded_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Charge_Envelope_Exceeded_Fault))); + r = print_helper(r, fprintf(output, "BMS_Failed_Thermistor_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Failed_Thermistor_Fault))); + r = print_helper(r, fprintf(output, "BMS_Cell_Over_Voltage_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Voltage_Fault))); + r = print_helper(r, fprintf(output, "BMS_Cell_Under_Voltage_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Voltage_Fault))); + r = print_helper(r, fprintf(output, "BMS_Cell_Over_Temperature_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Over_Temperature_Fault))); + r = print_helper(r, fprintf(output, "BMS_Cell_Under_Temperature_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Cell_Under_Temperature_Fault))); + r = print_helper(r, fprintf(output, "BMS_Pack_Over_Voltage_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Over_Voltage_Fault))); + r = print_helper(r, fprintf(output, "BMS_Pack_Under_Voltage_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Pack_Under_Voltage_Fault))); + r = print_helper(r, fprintf(output, "BMS_Over_Current_Discharge_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Discharge_Fault))); + r = print_helper(r, fprintf(output, "BMS_Over_Current_Charge_Fault = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Over_Current_Charge_Fault))); + r = print_helper(r, fprintf(output, "BMS_Imminent_Contactor_Opening_Warning = (wire: %.0f)\n", (double)(o->can_0x602_BMS_Master_Faults.BMS_Imminent_Contactor_Opening_Warning))); + return r; +} + +static int pack_can_0x604_BMS_Master_Warnings(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_Under_Voltage_Warning: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Voltage_Warning)) & 0x1; + x <<= 8; + i |= x; + /* BMS_Cell_Over_TemperatureWarning: start-bit 9, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_TemperatureWarning)) & 0x1; + x <<= 9; + i |= x; + /* BMS_Cell_Under_Temperature_Warning: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Warning)) & 0x1; + x <<= 10; + i |= x; + /* BMS_Cell_Under_Temperature_Fault: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Fault)) & 0x1; + x <<= 11; + i |= x; + /* BMS_Pack_Over_Voltage_Warning: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Over_Voltage_Warning)) & 0x1; + x <<= 12; + i |= x; + /* BMS_Pack_Under_Voltage_Warning: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Under_Voltage_Warning)) & 0x1; + x <<= 13; + i |= x; + /* BMS_Over_Current_Discharge_Warning: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Discharge_Warning)) & 0x1; + x <<= 14; + i |= x; + /* BMS_Over_Current_Charge_Warning: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Charge_Warning)) & 0x1; + x <<= 15; + i |= x; + /* BMS_Cell_Over_Voltage_Warning: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_Voltage_Warning)) & 0x1; + x <<= 16; + i |= x; + *data = (i); + o->can_0x604_BMS_Master_Warnings_tx = 1; + return 8; +} + +static int unpack_can_0x604_BMS_Master_Warnings(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_Under_Voltage_Warning: start-bit 8, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Voltage_Warning = x; + /* BMS_Cell_Over_TemperatureWarning: start-bit 9, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 9) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_TemperatureWarning = x; + /* BMS_Cell_Under_Temperature_Warning: start-bit 10, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 10) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Warning = x; + /* BMS_Cell_Under_Temperature_Fault: start-bit 11, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 11) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Fault = x; + /* BMS_Pack_Over_Voltage_Warning: start-bit 12, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 12) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Pack_Over_Voltage_Warning = x; + /* BMS_Pack_Under_Voltage_Warning: start-bit 13, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 13) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Pack_Under_Voltage_Warning = x; + /* BMS_Over_Current_Discharge_Warning: start-bit 14, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 14) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Discharge_Warning = x; + /* BMS_Over_Current_Charge_Warning: start-bit 15, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 15) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Charge_Warning = x; + /* BMS_Cell_Over_Voltage_Warning: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_Voltage_Warning = x; + o->can_0x604_BMS_Master_Warnings_rx = 1; + o->can_0x604_BMS_Master_Warnings_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x604_BMS_Cell_Under_Voltage_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Voltage_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Cell_Under_Voltage_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Voltage_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Cell_Over_TemperatureWarning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_TemperatureWarning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Cell_Over_TemperatureWarning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_TemperatureWarning = in; + return 0; +} + +int decode_can_0x604_BMS_Cell_Under_Temperature_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Cell_Under_Temperature_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Cell_Under_Temperature_Fault(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Fault); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Cell_Under_Temperature_Fault(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Fault = in; + return 0; +} + +int decode_can_0x604_BMS_Pack_Over_Voltage_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Over_Voltage_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Pack_Over_Voltage_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Pack_Over_Voltage_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Pack_Under_Voltage_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Under_Voltage_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Pack_Under_Voltage_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Pack_Under_Voltage_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Over_Current_Discharge_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Discharge_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Over_Current_Discharge_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Discharge_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Over_Current_Charge_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Charge_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Over_Current_Charge_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Charge_Warning = in; + return 0; +} + +int decode_can_0x604_BMS_Cell_Over_Voltage_Warning(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_Voltage_Warning); + *out = rval; + return 0; +} + +int encode_can_0x604_BMS_Cell_Over_Voltage_Warning(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_Voltage_Warning = in; + return 0; +} + +int print_can_0x604_BMS_Master_Warnings(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_Under_Voltage_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Voltage_Warning))); + r = print_helper(r, fprintf(output, "BMS_Cell_Over_TemperatureWarning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_TemperatureWarning))); + r = print_helper(r, fprintf(output, "BMS_Cell_Under_Temperature_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Warning))); + r = print_helper(r, fprintf(output, "BMS_Cell_Under_Temperature_Fault = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Under_Temperature_Fault))); + r = print_helper(r, fprintf(output, "BMS_Pack_Over_Voltage_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Over_Voltage_Warning))); + r = print_helper(r, fprintf(output, "BMS_Pack_Under_Voltage_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Pack_Under_Voltage_Warning))); + r = print_helper(r, fprintf(output, "BMS_Over_Current_Discharge_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Discharge_Warning))); + r = print_helper(r, fprintf(output, "BMS_Over_Current_Charge_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Over_Current_Charge_Warning))); + r = print_helper(r, fprintf(output, "BMS_Cell_Over_Voltage_Warning = (wire: %.0f)\n", (double)(o->can_0x604_BMS_Master_Warnings.BMS_Cell_Over_Voltage_Warning))); + return r; +} + +static int pack_can_0x610_BMS_Master_System_Status(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Number_Of_Failed_Thermistors: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Of_Failed_Thermistors)) & 0xff; + x <<= 8; + i |= x; + /* BMS_Number_Monitors_Detected: start-bit 40, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Monitors_Detected)) & 0xff; + x <<= 40; + i |= x; + /* BMS_Current_State: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Current_State)) & 0xff; + x <<= 48; + i |= x; + /* BMS_Monitor_Power_Active: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Power_Active)) & 0x1; + x <<= 16; + i |= x; + /* BMS_Cell_Balancing_Active: start-bit 17, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Cell_Balancing_Active)) & 0x1; + x <<= 17; + i |= x; + /* BMS_Precharge_Relay_Closed: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Precharge_Relay_Closed)) & 0x1; + x <<= 24; + i |= x; + /* BMS_Main_Contactor_Positive_Closed: start-bit 25, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Positive_Closed)) & 0x1; + x <<= 25; + i |= x; + /* BMS_Main_Contactor_Negative_Closed: start-bit 26, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Negative_Closed)) & 0x1; + x <<= 26; + i |= x; + /* BMS_HVIL_Present: start-bit 27, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_HVIL_Present)) & 0x1; + x <<= 27; + i |= x; + /* BMS_Incorrect_Number_Monitor_Boards: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Incorrect_Number_Monitor_Boards)) & 0x1; + x <<= 32; + i |= x; + /* BMS_Incompatible_Monitor_Firmware: start-bit 33, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Incompatible_Monitor_Firmware)) & 0x1; + x <<= 33; + i |= x; + /* BMS_Loss_Of_All_Monitor_Communication: start-bit 34, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Loss_Of_All_Monitor_Communication)) & 0x1; + x <<= 34; + i |= x; + /* BMS_Monitor_Address_Conflict: start-bit 35, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Address_Conflict)) & 0x1; + x <<= 35; + i |= x; + /* BMS_Unexpected_Monitor_Address: start-bit 36, length 1, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Unexpected_Monitor_Address)) & 0x1; + x <<= 36; + i |= x; + *data = (i); + o->can_0x610_BMS_Master_System_Status_tx = 1; + return 8; +} + +static int unpack_can_0x610_BMS_Master_System_Status(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Number_Of_Failed_Thermistors: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x610_BMS_Master_System_Status.BMS_Number_Of_Failed_Thermistors = x; + /* BMS_Number_Monitors_Detected: start-bit 40, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 40) & 0xff; + o->can_0x610_BMS_Master_System_Status.BMS_Number_Monitors_Detected = x; + /* BMS_Current_State: start-bit 48, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 48) & 0xff; + o->can_0x610_BMS_Master_System_Status.BMS_Current_State = x; + /* BMS_Monitor_Power_Active: start-bit 16, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Power_Active = x; + /* BMS_Cell_Balancing_Active: start-bit 17, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 17) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Cell_Balancing_Active = x; + /* BMS_Precharge_Relay_Closed: start-bit 24, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 24) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Precharge_Relay_Closed = x; + /* BMS_Main_Contactor_Positive_Closed: start-bit 25, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 25) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Positive_Closed = x; + /* BMS_Main_Contactor_Negative_Closed: start-bit 26, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 26) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Negative_Closed = x; + /* BMS_HVIL_Present: start-bit 27, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 27) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_HVIL_Present = x; + /* BMS_Incorrect_Number_Monitor_Boards: start-bit 32, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 32) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Incorrect_Number_Monitor_Boards = x; + /* BMS_Incompatible_Monitor_Firmware: start-bit 33, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 33) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Incompatible_Monitor_Firmware = x; + /* BMS_Loss_Of_All_Monitor_Communication: start-bit 34, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 34) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Loss_Of_All_Monitor_Communication = x; + /* BMS_Monitor_Address_Conflict: start-bit 35, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 35) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Address_Conflict = x; + /* BMS_Unexpected_Monitor_Address: start-bit 36, length 1, endianess intel, scaling 1, offset 0 */ + x = (i >> 36) & 0x1; + o->can_0x610_BMS_Master_System_Status.BMS_Unexpected_Monitor_Address = x; + o->can_0x610_BMS_Master_System_Status_rx = 1; + o->can_0x610_BMS_Master_System_Status_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x610_BMS_Number_Of_Failed_Thermistors(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Of_Failed_Thermistors); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Number_Of_Failed_Thermistors(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Number_Of_Failed_Thermistors = in; + return 0; +} + +int decode_can_0x610_BMS_Number_Monitors_Detected(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Monitors_Detected); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Number_Monitors_Detected(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Number_Monitors_Detected = in; + return 0; +} + +int decode_can_0x610_BMS_Current_State(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Current_State); + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x610_BMS_Current_State(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Current_State = 0; + if (in > 6) + return -1; + o->can_0x610_BMS_Master_System_Status.BMS_Current_State = in; + return 0; +} + +int decode_can_0x610_BMS_Monitor_Power_Active(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Power_Active); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Monitor_Power_Active(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Power_Active = in; + return 0; +} + +int decode_can_0x610_BMS_Cell_Balancing_Active(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Cell_Balancing_Active); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Cell_Balancing_Active(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Cell_Balancing_Active = in; + return 0; +} + +int decode_can_0x610_BMS_Precharge_Relay_Closed(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Precharge_Relay_Closed); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Precharge_Relay_Closed(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Precharge_Relay_Closed = in; + return 0; +} + +int decode_can_0x610_BMS_Main_Contactor_Positive_Closed(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Positive_Closed); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Main_Contactor_Positive_Closed(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Positive_Closed = in; + return 0; +} + +int decode_can_0x610_BMS_Main_Contactor_Negative_Closed(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Negative_Closed); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Main_Contactor_Negative_Closed(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Negative_Closed = in; + return 0; +} + +int decode_can_0x610_BMS_HVIL_Present(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_HVIL_Present); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_HVIL_Present(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_HVIL_Present = in; + return 0; +} + +int decode_can_0x610_BMS_Incorrect_Number_Monitor_Boards(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Incorrect_Number_Monitor_Boards); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Incorrect_Number_Monitor_Boards(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Incorrect_Number_Monitor_Boards = in; + return 0; +} + +int decode_can_0x610_BMS_Incompatible_Monitor_Firmware(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Incompatible_Monitor_Firmware); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Incompatible_Monitor_Firmware(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Incompatible_Monitor_Firmware = in; + return 0; +} + +int decode_can_0x610_BMS_Loss_Of_All_Monitor_Communication(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Loss_Of_All_Monitor_Communication); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Loss_Of_All_Monitor_Communication(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Loss_Of_All_Monitor_Communication = in; + return 0; +} + +int decode_can_0x610_BMS_Monitor_Address_Conflict(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Address_Conflict); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Monitor_Address_Conflict(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Address_Conflict = in; + return 0; +} + +int decode_can_0x610_BMS_Unexpected_Monitor_Address(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x610_BMS_Master_System_Status.BMS_Unexpected_Monitor_Address); + *out = rval; + return 0; +} + +int encode_can_0x610_BMS_Unexpected_Monitor_Address(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x610_BMS_Master_System_Status.BMS_Unexpected_Monitor_Address = in; + return 0; +} + +int print_can_0x610_BMS_Master_System_Status(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Number_Of_Failed_Thermistors = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Of_Failed_Thermistors))); + r = print_helper(r, fprintf(output, "BMS_Number_Monitors_Detected = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Number_Monitors_Detected))); + r = print_helper(r, fprintf(output, "BMS_Current_State = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Current_State))); + r = print_helper(r, fprintf(output, "BMS_Monitor_Power_Active = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Power_Active))); + r = print_helper(r, fprintf(output, "BMS_Cell_Balancing_Active = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Cell_Balancing_Active))); + r = print_helper(r, fprintf(output, "BMS_Precharge_Relay_Closed = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Precharge_Relay_Closed))); + r = print_helper(r, fprintf(output, "BMS_Main_Contactor_Positive_Closed = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Positive_Closed))); + r = print_helper(r, fprintf(output, "BMS_Main_Contactor_Negative_Closed = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Main_Contactor_Negative_Closed))); + r = print_helper(r, fprintf(output, "BMS_HVIL_Present = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_HVIL_Present))); + r = print_helper(r, fprintf(output, "BMS_Incorrect_Number_Monitor_Boards = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Incorrect_Number_Monitor_Boards))); + r = print_helper(r, fprintf(output, "BMS_Incompatible_Monitor_Firmware = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Incompatible_Monitor_Firmware))); + r = print_helper(r, fprintf(output, "BMS_Loss_Of_All_Monitor_Communication = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Loss_Of_All_Monitor_Communication))); + r = print_helper(r, fprintf(output, "BMS_Monitor_Address_Conflict = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Monitor_Address_Conflict))); + r = print_helper(r, fprintf(output, "BMS_Unexpected_Monitor_Address = (wire: %.0f)\n", (double)(o->can_0x610_BMS_Master_System_Status.BMS_Unexpected_Monitor_Address))); + return r; +} + +static int pack_can_0x611_BMS_Pack_Safe_OE(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Maximum_Charge_Current_Allowed: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed)) & 0xffff; + i |= x; + /* BMS_Maximum_Discharge_Current_Allowed: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Charger_Constant_Voltage_Setpoint: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint)) & 0xffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x611_BMS_Pack_Safe_OE_tx = 1; + return 8; +} + +static int unpack_can_0x611_BMS_Pack_Safe_OE(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Maximum_Charge_Current_Allowed: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed = x; + /* BMS_Maximum_Discharge_Current_Allowed: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed = x; + /* BMS_Charger_Constant_Voltage_Setpoint: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint = x; + o->can_0x611_BMS_Pack_Safe_OE_rx = 1; + o->can_0x611_BMS_Pack_Safe_OE_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x611_BMS_Maximum_Charge_Current_Allowed(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed); + rval *= 0.1; + if (rval <= 2500) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x611_BMS_Maximum_Charge_Current_Allowed(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed = 0; + if (in > 2500) + return -1; + in *= 10; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed = in; + return 0; +} + +int decode_can_0x611_BMS_Maximum_Discharge_Current_Allowed(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed); + rval *= 0.1; + if (rval <= 2500) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x611_BMS_Maximum_Discharge_Current_Allowed(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed = 0; + if (in > 2500) + return -1; + in *= 10; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed = in; + return 0; +} + +int decode_can_0x611_BMS_Charger_Constant_Voltage_Setpoint(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint); + rval *= 0.1; + if (rval <= 1000) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x611_BMS_Charger_Constant_Voltage_Setpoint(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint = 0; + if (in > 1000) + return -1; + in *= 10; + o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint = in; + return 0; +} + +int print_can_0x611_BMS_Pack_Safe_OE(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Maximum_Charge_Current_Allowed = (wire: %.0f)\n", (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Charge_Current_Allowed))); + r = print_helper(r, fprintf(output, "BMS_Maximum_Discharge_Current_Allowed = (wire: %.0f)\n", (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Maximum_Discharge_Current_Allowed))); + r = print_helper(r, fprintf(output, "BMS_Charger_Constant_Voltage_Setpoint = (wire: %.0f)\n", (double)(o->can_0x611_BMS_Pack_Safe_OE.BMS_Charger_Constant_Voltage_Setpoint))); + return r; +} + +static int pack_can_0x612_BMS_Master_Local_Board_Measurements(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Internal_5V_Rail_Sense: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense)) & 0xffff; + i |= x; + /* BMS_HVIL_Power_Input_Sense: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Power_Input_Sense: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Master_Board_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x612_BMS_Master_Local_Board_Measurements_tx = 1; + return 8; +} + +static int unpack_can_0x612_BMS_Master_Local_Board_Measurements(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Internal_5V_Rail_Sense: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense = x; + /* BMS_HVIL_Power_Input_Sense: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense = x; + /* BMS_Power_Input_Sense: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense = x; + /* BMS_Master_Board_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature = x; + o->can_0x612_BMS_Master_Local_Board_Measurements_rx = 1; + o->can_0x612_BMS_Master_Local_Board_Measurements_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x612_BMS_Internal_5V_Rail_Sense(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense); + rval *= 0.001; + if (rval <= 7.5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x612_BMS_Internal_5V_Rail_Sense(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense = 0; + if (in > 7.5) + return -1; + in *= 1000; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense = in; + return 0; +} + +int decode_can_0x612_BMS_HVIL_Power_Input_Sense(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense); + rval *= 0.001; + if (rval <= 36) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x612_BMS_HVIL_Power_Input_Sense(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense = 0; + if (in > 36) + return -1; + in *= 1000; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense = in; + return 0; +} + +int decode_can_0x612_BMS_Power_Input_Sense(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense); + rval *= 0.001; + if (rval <= 36) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x612_BMS_Power_Input_Sense(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense = 0; + if (in > 36) + return -1; + in *= 1000; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense = in; + return 0; +} + +int decode_can_0x612_BMS_Master_Board_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature); + rval *= 0.1; + if ((rval >= -50) && (rval <= 150)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x612_BMS_Master_Board_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature = 0; + if (in < -50) + return -1; + if (in > 150) + return -1; + in *= 10; + o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature = in; + return 0; +} + +int print_can_0x612_BMS_Master_Local_Board_Measurements(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Internal_5V_Rail_Sense = (wire: %.0f)\n", (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Internal_5V_Rail_Sense))); + r = print_helper(r, fprintf(output, "BMS_HVIL_Power_Input_Sense = (wire: %.0f)\n", (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_HVIL_Power_Input_Sense))); + r = print_helper(r, fprintf(output, "BMS_Power_Input_Sense = (wire: %.0f)\n", (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Power_Input_Sense))); + r = print_helper(r, fprintf(output, "BMS_Master_Board_Temperature = (wire: %.0f)\n", (double)(o->can_0x612_BMS_Master_Local_Board_Measurements.BMS_Master_Board_Temperature))); + return r; +} + +static int pack_can_0x620_BMS_Pack_Level_Measurements_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Pack_Current: start-bit 0, length 32, endianess intel, scaling 0.001, offset 0 */ + x = ((uint32_t)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current)) & 0xffffffff; + i |= x; + /* BMS_Pack_Voltage: start-bit 32, length 32, endianess intel, scaling 0.001, offset 0 */ + x = ((uint32_t)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage)) & 0xffffffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x620_BMS_Pack_Level_Measurements_1_tx = 1; + return 8; +} + +static int unpack_can_0x620_BMS_Pack_Level_Measurements_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Pack_Current: start-bit 0, length 32, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffffffff; + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current = x; + /* BMS_Pack_Voltage: start-bit 32, length 32, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffffffff; + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage = x; + o->can_0x620_BMS_Pack_Level_Measurements_1_rx = 1; + o->can_0x620_BMS_Pack_Level_Measurements_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x620_BMS_Pack_Current(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current); + rval *= 0.001; + if ((rval >= -2500) && (rval <= 2500)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x620_BMS_Pack_Current(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current = 0; + if (in < -2500) + return -1; + if (in > 2500) + return -1; + in *= 1000; + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current = in; + return 0; +} + +int decode_can_0x620_BMS_Pack_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage); + rval *= 0.001; + if (rval <= 1500) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x620_BMS_Pack_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage = 0; + if (in > 1500) + return -1; + in *= 1000; + o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage = in; + return 0; +} + +int print_can_0x620_BMS_Pack_Level_Measurements_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Pack_Current = (wire: %.0f)\n", (double)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Current))); + r = print_helper(r, fprintf(output, "BMS_Pack_Voltage = (wire: %.0f)\n", (double)(o->can_0x620_BMS_Pack_Level_Measurements_1.BMS_Pack_Voltage))); + return r; +} + +static int pack_can_0x621_BMS_Pack_Level_Measurements_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Amp_Hours_Remaining: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_State_Of_Health: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_State_Of_Charge: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x621_BMS_Pack_Level_Measurements_2_tx = 1; + return 8; +} + +static int unpack_can_0x621_BMS_Pack_Level_Measurements_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Amp_Hours_Remaining: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining = x; + /* BMS_State_Of_Health: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health = x; + /* BMS_State_Of_Charge: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge = x; + o->can_0x621_BMS_Pack_Level_Measurements_2_rx = 1; + o->can_0x621_BMS_Pack_Level_Measurements_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x621_BMS_Amp_Hours_Remaining(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining); + rval *= 0.1; + if (rval <= 6000) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x621_BMS_Amp_Hours_Remaining(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining = 0; + if (in > 6000) + return -1; + in *= 10; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining = in; + return 0; +} + +int decode_can_0x621_BMS_State_Of_Health(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health); + rval *= 0.1; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x621_BMS_State_Of_Health(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health = 0; + if (in > 100) + return -1; + in *= 10; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health = in; + return 0; +} + +int decode_can_0x621_BMS_State_Of_Charge(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge); + rval *= 0.1; + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x621_BMS_State_Of_Charge(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge = 0; + if (in > 100) + return -1; + in *= 10; + o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge = in; + return 0; +} + +int print_can_0x621_BMS_Pack_Level_Measurements_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Amp_Hours_Remaining = (wire: %.0f)\n", (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_Amp_Hours_Remaining))); + r = print_helper(r, fprintf(output, "BMS_State_Of_Health = (wire: %.0f)\n", (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Health))); + r = print_helper(r, fprintf(output, "BMS_State_Of_Charge = (wire: %.0f)\n", (double)(o->can_0x621_BMS_Pack_Level_Measurements_2.BMS_State_Of_Charge))); + return r; +} + +static int pack_can_0x622_BMS_Cell_Voltage_Summary(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Lowest_Cell_Voltage_Position: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position)) & 0xffff; + i |= x; + /* BMS_Highest_Cell_Voltage_Position: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Lowest_Cell_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Highest_Cell_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x622_BMS_Cell_Voltage_Summary_tx = 1; + return 8; +} + +static int unpack_can_0x622_BMS_Cell_Voltage_Summary(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Lowest_Cell_Voltage_Position: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position = x; + /* BMS_Highest_Cell_Voltage_Position: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position = x; + /* BMS_Lowest_Cell_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage = x; + /* BMS_Highest_Cell_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage = x; + o->can_0x622_BMS_Cell_Voltage_Summary_rx = 1; + o->can_0x622_BMS_Cell_Voltage_Summary_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x622_BMS_Lowest_Cell_Voltage_Position(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x622_BMS_Lowest_Cell_Voltage_Position(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position = 0; + if (in > 500) + return -1; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position = in; + return 0; +} + +int decode_can_0x622_BMS_Highest_Cell_Voltage_Position(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x622_BMS_Highest_Cell_Voltage_Position(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position = 0; + if (in > 500) + return -1; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position = in; + return 0; +} + +int decode_can_0x622_BMS_Lowest_Cell_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage); + rval *= 0.001; + if (rval <= 5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x622_BMS_Lowest_Cell_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage = 0; + if (in > 5) + return -1; + in *= 1000; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage = in; + return 0; +} + +int decode_can_0x622_BMS_Highest_Cell_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage); + rval *= 0.001; + if (rval <= 5) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x622_BMS_Highest_Cell_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage = 0; + if (in > 5) + return -1; + in *= 1000; + o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage = in; + return 0; +} + +int print_can_0x622_BMS_Cell_Voltage_Summary(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Lowest_Cell_Voltage_Position = (wire: %.0f)\n", (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage_Position))); + r = print_helper(r, fprintf(output, "BMS_Highest_Cell_Voltage_Position = (wire: %.0f)\n", (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage_Position))); + r = print_helper(r, fprintf(output, "BMS_Lowest_Cell_Voltage = (wire: %.0f)\n", (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Lowest_Cell_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Highest_Cell_Voltage = (wire: %.0f)\n", (double)(o->can_0x622_BMS_Cell_Voltage_Summary.BMS_Highest_Cell_Voltage))); + return r; +} + +static int pack_can_0x623_BMS_Cell_Temperature_Summary(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Lowest_Cell_Temperature_Position: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position)) & 0xffff; + i |= x; + /* BMS_Highest_Cell_Temperature_Position: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Lowest_Cell_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Highest_Cell_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x623_BMS_Cell_Temperature_Summary_tx = 1; + return 8; +} + +static int unpack_can_0x623_BMS_Cell_Temperature_Summary(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Lowest_Cell_Temperature_Position: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position = x; + /* BMS_Highest_Cell_Temperature_Position: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position = x; + /* BMS_Lowest_Cell_Temperature: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature = x; + /* BMS_Highest_Cell_Temperature: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature = x; + o->can_0x623_BMS_Cell_Temperature_Summary_rx = 1; + o->can_0x623_BMS_Cell_Temperature_Summary_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x623_BMS_Lowest_Cell_Temperature_Position(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x623_BMS_Lowest_Cell_Temperature_Position(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position = 0; + if (in > 500) + return -1; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position = in; + return 0; +} + +int decode_can_0x623_BMS_Highest_Cell_Temperature_Position(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x623_BMS_Highest_Cell_Temperature_Position(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position = 0; + if (in > 500) + return -1; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position = in; + return 0; +} + +int decode_can_0x623_BMS_Lowest_Cell_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature); + rval *= 0.1; + if ((rval >= -50) && (rval <= 150)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x623_BMS_Lowest_Cell_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature = 0; + if (in < -50) + return -1; + if (in > 150) + return -1; + in *= 10; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature = in; + return 0; +} + +int decode_can_0x623_BMS_Highest_Cell_Temperature(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature); + rval *= 0.1; + if ((rval >= -50) && (rval <= 150)) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x623_BMS_Highest_Cell_Temperature(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature = 0; + if (in < -50) + return -1; + if (in > 150) + return -1; + in *= 10; + o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature = in; + return 0; +} + +int print_can_0x623_BMS_Cell_Temperature_Summary(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Lowest_Cell_Temperature_Position = (wire: %.0f)\n", (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature_Position))); + r = print_helper(r, fprintf(output, "BMS_Highest_Cell_Temperature_Position = (wire: %.0f)\n", (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature_Position))); + r = print_helper(r, fprintf(output, "BMS_Lowest_Cell_Temperature = (wire: %.0f)\n", (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Lowest_Cell_Temperature))); + r = print_helper(r, fprintf(output, "BMS_Highest_Cell_Temperature = (wire: %.0f)\n", (double)(o->can_0x623_BMS_Cell_Temperature_Summary.BMS_Highest_Cell_Temperature))); + return r; +} + +static int pack_can_0x624_BMS_Pack_Level_Measurements_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Precharge_Voltage: start-bit 0, length 32, endianess intel, scaling 0.001, offset 0 */ + x = ((uint32_t)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage)) & 0xffffffff; + i |= x; + /* BMS_Sum_Of_Cells_Voltage: start-bit 32, length 32, endianess intel, scaling 0.001, offset 0 */ + x = ((uint32_t)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage)) & 0xffffffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x624_BMS_Pack_Level_Measurements_3_tx = 1; + return 8; +} + +static int unpack_can_0x624_BMS_Pack_Level_Measurements_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Precharge_Voltage: start-bit 0, length 32, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffffffff; + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage = x; + /* BMS_Sum_Of_Cells_Voltage: start-bit 32, length 32, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffffffff; + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage = x; + o->can_0x624_BMS_Pack_Level_Measurements_3_rx = 1; + o->can_0x624_BMS_Pack_Level_Measurements_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x624_BMS_Precharge_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage); + rval *= 0.001; + if (rval <= 1500) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x624_BMS_Precharge_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage = 0; + if (in > 1500) + return -1; + in *= 1000; + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage = in; + return 0; +} + +int decode_can_0x624_BMS_Sum_Of_Cells_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage); + rval *= 0.001; + if (rval <= 1500) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x624_BMS_Sum_Of_Cells_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage = 0; + if (in > 1500) + return -1; + in *= 1000; + o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage = in; + return 0; +} + +int print_can_0x624_BMS_Pack_Level_Measurements_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Precharge_Voltage = (wire: %.0f)\n", (double)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Precharge_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Sum_Of_Cells_Voltage = (wire: %.0f)\n", (double)(o->can_0x624_BMS_Pack_Level_Measurements_3.BMS_Sum_Of_Cells_Voltage))); + return r; +} + +static int pack_can_0x630_BMS_M1_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x630_BMS_M1_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x630_BMS_M1_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1_rx = 1; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x630_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x630_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x630_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x630_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x630_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x630_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x630_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x630_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x630_BMS_M1_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x630_BMS_M1_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x631_BMS_M1_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x631_BMS_M1_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x631_BMS_M1_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2_rx = 1; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x631_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x631_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x631_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x631_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x631_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x631_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x631_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x631_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x631_BMS_M1_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x631_BMS_M1_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x632_BMS_M1_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x632_BMS_M1_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x632_BMS_M1_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3_rx = 1; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x632_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x632_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x632_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x632_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x632_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x632_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x632_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x632_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x632_BMS_M1_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x632_BMS_M1_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x633_BMS_M2_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x633_BMS_M2_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x633_BMS_M2_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1_rx = 1; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x633_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x633_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x633_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x633_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x633_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x633_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x633_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x633_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x633_BMS_M2_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x633_BMS_M2_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x634_BMS_M2_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x634_BMS_M2_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x634_BMS_M2_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2_rx = 1; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x634_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x634_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x634_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x634_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x634_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x634_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x634_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x634_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x634_BMS_M2_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x634_BMS_M2_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x635_BMS_M2_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x635_BMS_M2_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x635_BMS_M2_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3_rx = 1; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x635_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x635_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x635_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x635_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x635_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x635_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x635_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x635_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x635_BMS_M2_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x635_BMS_M2_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x636_BMS_M3_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x636_BMS_M3_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x636_BMS_M3_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1_rx = 1; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x636_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x636_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x636_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x636_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x636_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x636_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x636_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x636_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x636_BMS_M3_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x636_BMS_M3_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x637_BMS_M3_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x637_BMS_M3_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x637_BMS_M3_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2_rx = 1; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x637_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x637_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x637_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x637_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x637_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x637_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x637_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x637_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x637_BMS_M3_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x637_BMS_M3_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x638_BMS_M3_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x638_BMS_M3_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x638_BMS_M3_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3_rx = 1; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x638_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x638_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x638_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x638_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x638_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x638_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x638_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x638_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x638_BMS_M3_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x638_BMS_M3_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x639_BMS_M4_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x639_BMS_M4_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x639_BMS_M4_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1_rx = 1; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x639_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x639_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x639_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x639_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x639_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x639_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x639_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x639_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x639_BMS_M4_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x639_BMS_M4_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x63a_BMS_M4_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x63a_BMS_M4_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2_rx = 1; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63a_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63a_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x63a_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63a_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x63a_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63a_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x63a_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63a_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x63a_BMS_M4_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x63a_BMS_M4_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x63b_BMS_M4_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x63b_BMS_M4_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3_rx = 1; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63b_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63b_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x63b_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63b_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x63b_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63b_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x63b_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63b_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x63b_BMS_M4_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x63b_BMS_M4_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x63c_BMS_M5_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x63c_BMS_M5_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1_rx = 1; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63c_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63c_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x63c_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63c_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x63c_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63c_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x63c_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63c_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x63c_BMS_M5_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x63c_BMS_M5_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x63d_BMS_M5_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x63d_BMS_M5_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2_rx = 1; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63d_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63d_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x63d_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63d_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x63d_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63d_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x63d_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63d_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x63d_BMS_M5_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x63d_BMS_M5_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x63e_BMS_M5_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x63e_BMS_M5_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3_rx = 1; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63e_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63e_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x63e_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63e_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x63e_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63e_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x63e_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63e_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x63e_BMS_M5_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x63e_BMS_M5_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x63f_BMS_M6_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x63f_BMS_M6_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1_rx = 1; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x63f_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63f_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x63f_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63f_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x63f_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63f_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x63f_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x63f_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x63f_BMS_M6_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x63f_BMS_M6_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x640_BMS_M6_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x640_BMS_M6_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x640_BMS_M6_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2_rx = 1; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x640_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x640_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x640_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x640_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x640_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x640_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x640_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x640_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x640_BMS_M6_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x640_BMS_M6_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x641_BMS_M6_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x641_BMS_M6_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x641_BMS_M6_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3_rx = 1; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x641_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x641_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x641_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x641_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x641_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x641_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x641_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x641_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x641_BMS_M6_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x641_BMS_M6_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x642_BMS_M7_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x642_BMS_M7_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x642_BMS_M7_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1_rx = 1; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x642_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x642_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x642_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x642_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x642_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x642_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x642_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x642_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x642_BMS_M7_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x642_BMS_M7_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x643_BMS_M7_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x643_BMS_M7_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x643_BMS_M7_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2_rx = 1; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x643_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x643_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x643_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x643_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x643_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x643_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x643_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x643_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x643_BMS_M7_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x643_BMS_M7_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x644_BMS_M7_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x644_BMS_M7_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x644_BMS_M7_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3_rx = 1; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x644_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x644_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x644_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x644_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x644_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x644_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x644_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x644_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x644_BMS_M7_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x644_BMS_M7_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x645_BMS_M8_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x645_BMS_M8_Cell_Voltage_Data_1_tx = 1; + return 8; +} + +static int unpack_can_0x645_BMS_M8_Cell_Voltage_Data_1(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_4_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = x; + /* BMS_Cell_3_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = x; + /* BMS_Cell_2_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = x; + /* BMS_Cell_1_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = x; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1_rx = 1; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x645_BMS_Cell_4_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x645_BMS_Cell_4_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage = in; + return 0; +} + +int decode_can_0x645_BMS_Cell_3_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x645_BMS_Cell_3_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage = in; + return 0; +} + +int decode_can_0x645_BMS_Cell_2_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x645_BMS_Cell_2_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage = in; + return 0; +} + +int decode_can_0x645_BMS_Cell_1_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x645_BMS_Cell_1_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage = in; + return 0; +} + +int print_can_0x645_BMS_M8_Cell_Voltage_Data_1(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_4_Voltage = (wire: %.0f)\n", (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_4_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_3_Voltage = (wire: %.0f)\n", (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_3_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_2_Voltage = (wire: %.0f)\n", (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_2_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_1_Voltage = (wire: %.0f)\n", (double)(o->can_0x645_BMS_M8_Cell_Voltage_Data_1.BMS_Cell_1_Voltage))); + return r; +} + +static int pack_can_0x646_BMS_M8_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x646_BMS_M8_Cell_Voltage_Data_2_tx = 1; + return 8; +} + +static int unpack_can_0x646_BMS_M8_Cell_Voltage_Data_2(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_8_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = x; + /* BMS_Cell_7_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = x; + /* BMS_Cell_6_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = x; + /* BMS_Cell_5_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = x; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2_rx = 1; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x646_BMS_Cell_8_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x646_BMS_Cell_8_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage = in; + return 0; +} + +int decode_can_0x646_BMS_Cell_7_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x646_BMS_Cell_7_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage = in; + return 0; +} + +int decode_can_0x646_BMS_Cell_6_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x646_BMS_Cell_6_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage = in; + return 0; +} + +int decode_can_0x646_BMS_Cell_5_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x646_BMS_Cell_5_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage = in; + return 0; +} + +int print_can_0x646_BMS_M8_Cell_Voltage_Data_2(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_8_Voltage = (wire: %.0f)\n", (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_8_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_7_Voltage = (wire: %.0f)\n", (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_7_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_6_Voltage = (wire: %.0f)\n", (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_6_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_5_Voltage = (wire: %.0f)\n", (double)(o->can_0x646_BMS_M8_Cell_Voltage_Data_2.BMS_Cell_5_Voltage))); + return r; +} + +static int pack_can_0x647_BMS_M8_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage)) & 0xffff; + i |= x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = ((uint16_t)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x647_BMS_M8_Cell_Voltage_Data_3_tx = 1; + return 8; +} + +static int unpack_can_0x647_BMS_M8_Cell_Voltage_Data_3(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Cell_12_Voltage: start-bit 0, length 16, endianess intel, scaling 0.001, offset 0 */ + x = i & 0xffff; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = x; + /* BMS_Cell_11_Voltage: start-bit 16, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = x; + /* BMS_Cell_10_Voltage: start-bit 32, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = x; + /* BMS_Cell_9_Voltage: start-bit 48, length 16, endianess intel, scaling 0.001, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = x; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3_rx = 1; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x647_BMS_Cell_12_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x647_BMS_Cell_12_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage = in; + return 0; +} + +int decode_can_0x647_BMS_Cell_11_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x647_BMS_Cell_11_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage = in; + return 0; +} + +int decode_can_0x647_BMS_Cell_10_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x647_BMS_Cell_10_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage = in; + return 0; +} + +int decode_can_0x647_BMS_Cell_9_Voltage(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage); + rval *= 0.001; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x647_BMS_Cell_9_Voltage(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = 0; + if (in > 6) + return -1; + in *= 1000; + o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage = in; + return 0; +} + +int print_can_0x647_BMS_M8_Cell_Voltage_Data_3(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Cell_12_Voltage = (wire: %.0f)\n", (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_12_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_11_Voltage = (wire: %.0f)\n", (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_11_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_10_Voltage = (wire: %.0f)\n", (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_10_Voltage))); + r = print_helper(r, fprintf(output, "BMS_Cell_9_Voltage = (wire: %.0f)\n", (double)(o->can_0x647_BMS_M8_Cell_Voltage_Data_3.BMS_Cell_9_Voltage))); + return r; +} + +static int pack_can_0x680_BMS_M1_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x680_BMS_M1_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x680_BMS_M1_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x680_BMS_M1_Cell_Temp_Data_rx = 1; + o->can_0x680_BMS_M1_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x680_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x680_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x680_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x680_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x680_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x680_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x680_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x680_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x680_BMS_M1_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x680_BMS_M1_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x683_BMS_M2_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x683_BMS_M2_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x683_BMS_M2_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x683_BMS_M2_Cell_Temp_Data_rx = 1; + o->can_0x683_BMS_M2_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x683_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x683_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x683_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x683_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x683_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x683_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x683_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x683_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x683_BMS_M2_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x683_BMS_M2_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x686_BMS_M3_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x686_BMS_M3_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x686_BMS_M3_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x686_BMS_M3_Cell_Temp_Data_rx = 1; + o->can_0x686_BMS_M3_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x686_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x686_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x686_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x686_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x686_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x686_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x686_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x686_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x686_BMS_M3_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x686_BMS_M3_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x689_BMS_M4_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x689_BMS_M4_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x689_BMS_M4_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x689_BMS_M4_Cell_Temp_Data_rx = 1; + o->can_0x689_BMS_M4_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x689_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x689_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x689_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x689_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x689_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x689_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x689_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x689_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x689_BMS_M4_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x689_BMS_M4_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x68c_BMS_M5_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x68c_BMS_M5_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x68c_BMS_M5_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x68c_BMS_M5_Cell_Temp_Data_rx = 1; + o->can_0x68c_BMS_M5_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x68c_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68c_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x68c_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68c_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x68c_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68c_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x68c_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68c_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x68c_BMS_M5_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x68c_BMS_M5_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x68f_BMS_M6_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x68f_BMS_M6_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x68f_BMS_M6_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x68f_BMS_M6_Cell_Temp_Data_rx = 1; + o->can_0x68f_BMS_M6_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x68f_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68f_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x68f_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68f_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x68f_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68f_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x68f_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x68f_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x68f_BMS_M6_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x68f_BMS_M6_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x692_BMS_M7_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x692_BMS_M7_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x692_BMS_M7_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x692_BMS_M7_Cell_Temp_Data_rx = 1; + o->can_0x692_BMS_M7_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x692_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x692_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x692_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x692_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x692_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x692_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x692_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x692_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x692_BMS_M7_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x692_BMS_M7_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x695_BMS_M8_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp)) & 0xffff; + i |= x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp)) & 0xffff; + x <<= 16; + i |= x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp)) & 0xffff; + x <<= 32; + i |= x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp)) & 0xffff; + x <<= 48; + i |= x; + *data = (i); + o->can_0x695_BMS_M8_Cell_Temp_Data_tx = 1; + return 8; +} + +static int unpack_can_0x695_BMS_M8_Cell_Temp_Data(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Section_4_Temp: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp = x; + /* BMS_Section_3_Temp: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp = x; + /* BMS_Section_2_Temp: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp = x; + /* BMS_Section_1_Temp: start-bit 48, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 48) & 0xffff; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp = x; + o->can_0x695_BMS_M8_Cell_Temp_Data_rx = 1; + o->can_0x695_BMS_M8_Cell_Temp_Data_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x695_BMS_Section_4_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x695_BMS_Section_4_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp = in; + return 0; +} + +int decode_can_0x695_BMS_Section_3_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x695_BMS_Section_3_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp = in; + return 0; +} + +int decode_can_0x695_BMS_Section_2_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x695_BMS_Section_2_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp = in; + return 0; +} + +int decode_can_0x695_BMS_Section_1_Temp(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp); + rval *= 0.1; + if (rval <= 6) { + *out = rval; + return 0; + } else { + *out = (double)0; + return -1; + } +} + +int encode_can_0x695_BMS_Section_1_Temp(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp = 0; + if (in > 6) + return -1; + in *= 10; + o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp = in; + return 0; +} + +int print_can_0x695_BMS_M8_Cell_Temp_Data(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Section_4_Temp = (wire: %.0f)\n", (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_4_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_3_Temp = (wire: %.0f)\n", (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_3_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_2_Temp = (wire: %.0f)\n", (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_2_Temp))); + r = print_helper(r, fprintf(output, "BMS_Section_1_Temp = (wire: %.0f)\n", (double)(o->can_0x695_BMS_M8_Cell_Temp_Data.BMS_Section_1_Temp))); + return r; +} + +static int pack_can_0x6fc_BMS_Configuration_Information(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Number_Of_Thermistors_Configured: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured)) & 0xffff; + i |= x; + /* BMS_Number_Of_Cells_Configured: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = ((uint16_t)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured)) & 0xffff; + x <<= 16; + i |= x; + *data = (i); + o->can_0x6fc_BMS_Configuration_Information_tx = 1; + return 8; +} + +static int unpack_can_0x6fc_BMS_Configuration_Information(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Number_Of_Thermistors_Configured: start-bit 0, length 16, endianess intel, scaling 1, offset 0 */ + x = i & 0xffff; + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured = x; + /* BMS_Number_Of_Cells_Configured: start-bit 16, length 16, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured = x; + o->can_0x6fc_BMS_Configuration_Information_rx = 1; + o->can_0x6fc_BMS_Configuration_Information_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x6fc_BMS_Number_Of_Thermistors_Configured(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x6fc_BMS_Number_Of_Thermistors_Configured(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured = 0; + if (in > 500) + return -1; + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured = in; + return 0; +} + +int decode_can_0x6fc_BMS_Number_Of_Cells_Configured(const can_obj_all_sre_edited_h_t *o, uint16_t *out) { + assert(o); + assert(out); + uint16_t rval = (uint16_t)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured); + if (rval <= 500) { + *out = rval; + return 0; + } else { + *out = (uint16_t)0; + return -1; + } +} + +int encode_can_0x6fc_BMS_Number_Of_Cells_Configured(can_obj_all_sre_edited_h_t *o, uint16_t in) { + assert(o); + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured = 0; + if (in > 500) + return -1; + o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured = in; + return 0; +} + +int print_can_0x6fc_BMS_Configuration_Information(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Number_Of_Thermistors_Configured = (wire: %.0f)\n", (double)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Thermistors_Configured))); + r = print_helper(r, fprintf(output, "BMS_Number_Of_Cells_Configured = (wire: %.0f)\n", (double)(o->can_0x6fc_BMS_Configuration_Information.BMS_Number_Of_Cells_Configured))); + return r; +} + +static int pack_can_0x6fe_BMS_Firmware_Version_Information(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* BMS_Revision_Number: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number)) & 0xff; + i |= x; + /* BMS_Minor_Version_Number: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number)) & 0xff; + x <<= 8; + i |= x; + /* BMS_Major_Version_Number: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number)) & 0xff; + x <<= 16; + i |= x; + *data = (i); + o->can_0x6fe_BMS_Firmware_Version_Information_tx = 1; + return 8; +} + +static int unpack_can_0x6fe_BMS_Firmware_Version_Information(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* BMS_Revision_Number: start-bit 0, length 8, endianess intel, scaling 1, offset 0 */ + x = i & 0xff; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number = x; + /* BMS_Minor_Version_Number: start-bit 8, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 8) & 0xff; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number = x; + /* BMS_Major_Version_Number: start-bit 16, length 8, endianess intel, scaling 1, offset 0 */ + x = (i >> 16) & 0xff; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number = x; + o->can_0x6fe_BMS_Firmware_Version_Information_rx = 1; + o->can_0x6fe_BMS_Firmware_Version_Information_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x6fe_BMS_Revision_Number(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number); + if (rval <= 200) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x6fe_BMS_Revision_Number(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number = 0; + if (in > 200) + return -1; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number = in; + return 0; +} + +int decode_can_0x6fe_BMS_Minor_Version_Number(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number); + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x6fe_BMS_Minor_Version_Number(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number = 0; + if (in > 100) + return -1; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number = in; + return 0; +} + +int decode_can_0x6fe_BMS_Major_Version_Number(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number); + if (rval <= 100) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x6fe_BMS_Major_Version_Number(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number = 0; + if (in > 100) + return -1; + o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number = in; + return 0; +} + +int print_can_0x6fe_BMS_Firmware_Version_Information(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "BMS_Revision_Number = (wire: %.0f)\n", (double)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Revision_Number))); + r = print_helper(r, fprintf(output, "BMS_Minor_Version_Number = (wire: %.0f)\n", (double)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Minor_Version_Number))); + r = print_helper(r, fprintf(output, "BMS_Major_Version_Number = (wire: %.0f)\n", (double)(o->can_0x6fe_BMS_Firmware_Version_Information.BMS_Major_Version_Number))); + return r; +} + +static int pack_can_0x702_MCM_RegenModeICSent(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* RegenMode: start-bit 0, length 3, endianess intel, scaling 1, offset 0 */ + x = ((uint8_t)(o->can_0x702_MCM_RegenModeICSent.RegenMode)) & 0x7; + i |= x; + *data = (i); + o->can_0x702_MCM_RegenModeICSent_tx = 1; + return 8; +} + +static int unpack_can_0x702_MCM_RegenModeICSent(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* RegenMode: start-bit 0, length 3, endianess intel, scaling 1, offset 0 */ + x = i & 0x7; + o->can_0x702_MCM_RegenModeICSent.RegenMode = x; + o->can_0x702_MCM_RegenModeICSent_rx = 1; + o->can_0x702_MCM_RegenModeICSent_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x702_RegenMode(const can_obj_all_sre_edited_h_t *o, uint8_t *out) { + assert(o); + assert(out); + uint8_t rval = (uint8_t)(o->can_0x702_MCM_RegenModeICSent.RegenMode); + if (rval <= 3) { + *out = rval; + return 0; + } else { + *out = (uint8_t)0; + return -1; + } +} + +int encode_can_0x702_RegenMode(can_obj_all_sre_edited_h_t *o, uint8_t in) { + assert(o); + o->can_0x702_MCM_RegenModeICSent.RegenMode = 0; + if (in > 3) + return -1; + o->can_0x702_MCM_RegenModeICSent.RegenMode = in; + return 0; +} + +int print_can_0x702_MCM_RegenModeICSent(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "RegenMode = (wire: %.0f)\n", (double)(o->can_0x702_MCM_RegenModeICSent.RegenMode))); + return r; +} + +static int pack_can_0x710_S2C_PressureTabs(can_obj_all_sre_edited_h_t *o, uint64_t *data) { + assert(o); + assert(data); + register uint64_t x; + register uint64_t i = 0; + /* Wind_Speed: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x710_S2C_PressureTabs.Wind_Speed)) & 0xffff; + i |= x; + /* Pitot_Tube1: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x710_S2C_PressureTabs.Pitot_Tube1)) & 0xffff; + x <<= 16; + i |= x; + /* Pitot_Tube2: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = ((uint16_t)(o->can_0x710_S2C_PressureTabs.Pitot_Tube2)) & 0xffff; + x <<= 32; + i |= x; + *data = (i); + o->can_0x710_S2C_PressureTabs_tx = 1; + return 8; +} + +static int unpack_can_0x710_S2C_PressureTabs(can_obj_all_sre_edited_h_t *o, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(dlc <= 8); + register uint64_t x; + register uint64_t i = (data); + if (dlc < 8) + return -1; + /* Wind_Speed: start-bit 0, length 16, endianess intel, scaling 0.1, offset 0 */ + x = i & 0xffff; + o->can_0x710_S2C_PressureTabs.Wind_Speed = x; + /* Pitot_Tube1: start-bit 16, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 16) & 0xffff; + o->can_0x710_S2C_PressureTabs.Pitot_Tube1 = x; + /* Pitot_Tube2: start-bit 32, length 16, endianess intel, scaling 0.1, offset 0 */ + x = (i >> 32) & 0xffff; + o->can_0x710_S2C_PressureTabs.Pitot_Tube2 = x; + o->can_0x710_S2C_PressureTabs_rx = 1; + o->can_0x710_S2C_PressureTabs_time_stamp_rx = time_stamp; + return 8; +} + +int decode_can_0x710_Wind_Speed(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x710_S2C_PressureTabs.Wind_Speed); + rval *= 0.1; + *out = rval; + return 0; +} + +int encode_can_0x710_Wind_Speed(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + in *= 10; + o->can_0x710_S2C_PressureTabs.Wind_Speed = in; + return 0; +} + +int decode_can_0x710_Pitot_Tube1(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x710_S2C_PressureTabs.Pitot_Tube1); + rval *= 0.1; + *out = rval; + return 0; +} + +int encode_can_0x710_Pitot_Tube1(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + in *= 10; + o->can_0x710_S2C_PressureTabs.Pitot_Tube1 = in; + return 0; +} + +int decode_can_0x710_Pitot_Tube2(const can_obj_all_sre_edited_h_t *o, double *out) { + assert(o); + assert(out); + double rval = (double)(o->can_0x710_S2C_PressureTabs.Pitot_Tube2); + rval *= 0.1; + *out = rval; + return 0; +} + +int encode_can_0x710_Pitot_Tube2(can_obj_all_sre_edited_h_t *o, double in) { + assert(o); + in *= 10; + o->can_0x710_S2C_PressureTabs.Pitot_Tube2 = in; + return 0; +} + +int print_can_0x710_S2C_PressureTabs(const can_obj_all_sre_edited_h_t *o, FILE *output) { + assert(o); + assert(output); + int r = 0; + r = print_helper(r, fprintf(output, "Wind_Speed = (wire: %.0f)\n", (double)(o->can_0x710_S2C_PressureTabs.Wind_Speed))); + r = print_helper(r, fprintf(output, "Pitot_Tube1 = (wire: %.0f)\n", (double)(o->can_0x710_S2C_PressureTabs.Pitot_Tube1))); + r = print_helper(r, fprintf(output, "Pitot_Tube2 = (wire: %.0f)\n", (double)(o->can_0x710_S2C_PressureTabs.Pitot_Tube2))); + return r; +} + +int unpack_message(can_obj_all_sre_edited_h_t *o, const unsigned long id, uint64_t data, uint8_t dlc, dbcc_time_stamp_t time_stamp) { + assert(o); + assert(id < (1ul << 29)); /* 29-bit CAN ID is largest possible */ + assert(dlc <= 8); /* Maximum of 8 bytes in a CAN packet */ + switch (id) { + case 0x0a0: return unpack_can_0x0a0_MCM_Temperature_Set_1(o, data, dlc, time_stamp); + case 0x0a1: return unpack_can_0x0a1_MCM_Temperature_Set_2(o, data, dlc, time_stamp); + case 0x0a2: return unpack_can_0x0a2_MCM_Temperature_Set_3(o, data, dlc, time_stamp); + case 0x0a3: return unpack_can_0x0a3_MCM_Analog_Input_Voltages(o, data, dlc, time_stamp); + case 0x0a4: return unpack_can_0x0a4_MCM_Digital_Input_Status(o, data, dlc, time_stamp); + case 0x0a5: return unpack_can_0x0a5_MCM_Motor_Position_Info(o, data, dlc, time_stamp); + case 0x0a6: return unpack_can_0x0a6_MCM_Current_Info(o, data, dlc, time_stamp); + case 0x0a7: return unpack_can_0x0a7_MCM_Voltage_Info(o, data, dlc, time_stamp); + case 0x0a8: return unpack_can_0x0a8_MCM_Flux_ID_IQ_Info(o, data, dlc, time_stamp); + case 0x0a9: return unpack_can_0x0a9_MCM_Internal_Voltages(o, data, dlc, time_stamp); + case 0x0aa: return unpack_can_0x0aa_MCM_Internal_States(o, data, dlc, time_stamp); + case 0x0ab: return unpack_can_0x0ab_MCM_Fault_Codes(o, data, dlc, time_stamp); + case 0x0ac: return unpack_can_0x0ac_MCM_Torque_And_Timer_Info(o, data, dlc, time_stamp); + case 0x0ad: return unpack_can_0x0ad_MCM_Modulation_And_Flux_Info(o, data, dlc, time_stamp); + case 0x0ae: return unpack_can_0x0ae_MCM_Firmware_Info(o, data, dlc, time_stamp); + case 0x0af: return unpack_can_0x0af_MCM_Diag_Data(o, data, dlc, time_stamp); + case 0x0c0: return unpack_can_0x0c0_MCM_Command_Messages(o, data, dlc, time_stamp); + case 0x0c1: return unpack_can_0x0c1_MCM_Read_Write_Param_Command(o, data, dlc, time_stamp); + case 0x0c2: return unpack_can_0x0c2_MCM_Read_Write_Param_Response(o, data, dlc, time_stamp); + case 0x100: return unpack_can_0x100_EMeter_Measurement(o, data, dlc, time_stamp); + case 0x1d5: return unpack_can_0x1d5_MCM_U2C_Message_Rxd(o, data, dlc, time_stamp); + case 0x1d7: return unpack_can_0x1d7_MCM_U2C_Command_Txd(o, data, dlc, time_stamp); + case 0x400: return unpack_can_0x400_EMeter_Status(o, data, dlc, time_stamp); + case 0x4b0: return unpack_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(o, data, dlc, time_stamp); + case 0x4b1: return unpack_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(o, data, dlc, time_stamp); + case 0x4b2: return unpack_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(o, data, dlc, time_stamp); + case 0x4b3: return unpack_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(o, data, dlc, time_stamp); + case 0x4b4: return unpack_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(o, data, dlc, time_stamp); + case 0x4b5: return unpack_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(o, data, dlc, time_stamp); + case 0x4b6: return unpack_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(o, data, dlc, time_stamp); + case 0x4b7: return unpack_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(o, data, dlc, time_stamp); + case 0x4b8: return unpack_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(o, data, dlc, time_stamp); + case 0x4b9: return unpack_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(o, data, dlc, time_stamp); + case 0x4ba: return unpack_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(o, data, dlc, time_stamp); + case 0x4bb: return unpack_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(o, data, dlc, time_stamp); + case 0x4bc: return unpack_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(o, data, dlc, time_stamp); + case 0x4bd: return unpack_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(o, data, dlc, time_stamp); + case 0x4be: return unpack_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(o, data, dlc, time_stamp); + case 0x4bf: return unpack_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(o, data, dlc, time_stamp); + case 0x500: return unpack_can_0x500_VCU_TPS0(o, data, dlc, time_stamp); + case 0x501: return unpack_can_0x501_VCU_TPS1(o, data, dlc, time_stamp); + case 0x502: return unpack_can_0x502_VCU_BPS0(o, data, dlc, time_stamp); + case 0x504: return unpack_can_0x504_VCU_WSS(o, data, dlc, time_stamp); + case 0x505: return unpack_can_0x505_VCU_WSS_Smooth(o, data, dlc, time_stamp); + case 0x506: return unpack_can_0x506_VCU_Safety_Checker(o, data, dlc, time_stamp); + case 0x507: return unpack_can_0x507_Low_Voltage(o, data, dlc, time_stamp); + case 0x508: return unpack_can_0x508_VCU_Regen_Settings(o, data, dlc, time_stamp); + case 0x509: return unpack_can_0x509_MCM_RTD_HVIL(o, data, dlc, time_stamp); + case 0x50a: return unpack_can_0x50a_Ground_Speed(o, data, dlc, time_stamp); + case 0x50c: return unpack_can_0x50c_Launch_Control_Additional_Information(o, data, dlc, time_stamp); + case 0x50d: return unpack_can_0x50d_VCU_BPS1(o, data, dlc, time_stamp); + case 0x50e: return unpack_can_0x50e_VCU_BMS_Debug_1(o, data, dlc, time_stamp); + case 0x50f: return unpack_can_0x50f_VCU_BMS_Debug_2(o, data, dlc, time_stamp); + case 0x510: return unpack_can_0x510_VCU_80kW_Debug(o, data, dlc, time_stamp); + case 0x511: return unpack_can_0x511_VCU_Power_Limit_Overview(o, data, dlc, time_stamp); + case 0x512: return unpack_can_0x512_VCU_Power_Limit_PID_Output_Details(o, data, dlc, time_stamp); + case 0x513: return unpack_can_0x513_VCU_Power_Limit_LUT_Parameters(o, data, dlc, time_stamp); + case 0x514: return unpack_can_0x514_VCU_Power_Limit_PID_Information(o, data, dlc, time_stamp); + case 0x515: return unpack_can_0x515_DRS_SAS(o, data, dlc, time_stamp); + case 0x5ff: return unpack_can_0x5ff_Enable_Inverter(o, data, dlc, time_stamp); + case 0x600: return unpack_can_0x600_BMS_State_Command(o, data, dlc, time_stamp); + case 0x602: return unpack_can_0x602_BMS_Master_Faults(o, data, dlc, time_stamp); + case 0x604: return unpack_can_0x604_BMS_Master_Warnings(o, data, dlc, time_stamp); + case 0x610: return unpack_can_0x610_BMS_Master_System_Status(o, data, dlc, time_stamp); + case 0x611: return unpack_can_0x611_BMS_Pack_Safe_OE(o, data, dlc, time_stamp); + case 0x612: return unpack_can_0x612_BMS_Master_Local_Board_Measurements(o, data, dlc, time_stamp); + case 0x620: return unpack_can_0x620_BMS_Pack_Level_Measurements_1(o, data, dlc, time_stamp); + case 0x621: return unpack_can_0x621_BMS_Pack_Level_Measurements_2(o, data, dlc, time_stamp); + case 0x622: return unpack_can_0x622_BMS_Cell_Voltage_Summary(o, data, dlc, time_stamp); + case 0x623: return unpack_can_0x623_BMS_Cell_Temperature_Summary(o, data, dlc, time_stamp); + case 0x624: return unpack_can_0x624_BMS_Pack_Level_Measurements_3(o, data, dlc, time_stamp); + case 0x630: return unpack_can_0x630_BMS_M1_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x631: return unpack_can_0x631_BMS_M1_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x632: return unpack_can_0x632_BMS_M1_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x633: return unpack_can_0x633_BMS_M2_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x634: return unpack_can_0x634_BMS_M2_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x635: return unpack_can_0x635_BMS_M2_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x636: return unpack_can_0x636_BMS_M3_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x637: return unpack_can_0x637_BMS_M3_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x638: return unpack_can_0x638_BMS_M3_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x639: return unpack_can_0x639_BMS_M4_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x63a: return unpack_can_0x63a_BMS_M4_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x63b: return unpack_can_0x63b_BMS_M4_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x63c: return unpack_can_0x63c_BMS_M5_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x63d: return unpack_can_0x63d_BMS_M5_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x63e: return unpack_can_0x63e_BMS_M5_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x63f: return unpack_can_0x63f_BMS_M6_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x640: return unpack_can_0x640_BMS_M6_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x641: return unpack_can_0x641_BMS_M6_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x642: return unpack_can_0x642_BMS_M7_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x643: return unpack_can_0x643_BMS_M7_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x644: return unpack_can_0x644_BMS_M7_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x645: return unpack_can_0x645_BMS_M8_Cell_Voltage_Data_1(o, data, dlc, time_stamp); + case 0x646: return unpack_can_0x646_BMS_M8_Cell_Voltage_Data_2(o, data, dlc, time_stamp); + case 0x647: return unpack_can_0x647_BMS_M8_Cell_Voltage_Data_3(o, data, dlc, time_stamp); + case 0x680: return unpack_can_0x680_BMS_M1_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x683: return unpack_can_0x683_BMS_M2_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x686: return unpack_can_0x686_BMS_M3_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x689: return unpack_can_0x689_BMS_M4_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x68c: return unpack_can_0x68c_BMS_M5_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x68f: return unpack_can_0x68f_BMS_M6_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x692: return unpack_can_0x692_BMS_M7_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x695: return unpack_can_0x695_BMS_M8_Cell_Temp_Data(o, data, dlc, time_stamp); + case 0x6fc: return unpack_can_0x6fc_BMS_Configuration_Information(o, data, dlc, time_stamp); + case 0x6fe: return unpack_can_0x6fe_BMS_Firmware_Version_Information(o, data, dlc, time_stamp); + case 0x702: return unpack_can_0x702_MCM_RegenModeICSent(o, data, dlc, time_stamp); + case 0x710: return unpack_can_0x710_S2C_PressureTabs(o, data, dlc, time_stamp); + default: break; + } + return -1; +} + +int pack_message(can_obj_all_sre_edited_h_t *o, const unsigned long id, uint64_t *data) { + assert(o); + assert(id < (1ul << 29)); /* 29-bit CAN ID is largest possible */ + switch (id) { + case 0x0a0: return pack_can_0x0a0_MCM_Temperature_Set_1(o, data); + case 0x0a1: return pack_can_0x0a1_MCM_Temperature_Set_2(o, data); + case 0x0a2: return pack_can_0x0a2_MCM_Temperature_Set_3(o, data); + case 0x0a3: return pack_can_0x0a3_MCM_Analog_Input_Voltages(o, data); + case 0x0a4: return pack_can_0x0a4_MCM_Digital_Input_Status(o, data); + case 0x0a5: return pack_can_0x0a5_MCM_Motor_Position_Info(o, data); + case 0x0a6: return pack_can_0x0a6_MCM_Current_Info(o, data); + case 0x0a7: return pack_can_0x0a7_MCM_Voltage_Info(o, data); + case 0x0a8: return pack_can_0x0a8_MCM_Flux_ID_IQ_Info(o, data); + case 0x0a9: return pack_can_0x0a9_MCM_Internal_Voltages(o, data); + case 0x0aa: return pack_can_0x0aa_MCM_Internal_States(o, data); + case 0x0ab: return pack_can_0x0ab_MCM_Fault_Codes(o, data); + case 0x0ac: return pack_can_0x0ac_MCM_Torque_And_Timer_Info(o, data); + case 0x0ad: return pack_can_0x0ad_MCM_Modulation_And_Flux_Info(o, data); + case 0x0ae: return pack_can_0x0ae_MCM_Firmware_Info(o, data); + case 0x0af: return pack_can_0x0af_MCM_Diag_Data(o, data); + case 0x0c0: return pack_can_0x0c0_MCM_Command_Messages(o, data); + case 0x0c1: return pack_can_0x0c1_MCM_Read_Write_Param_Command(o, data); + case 0x0c2: return pack_can_0x0c2_MCM_Read_Write_Param_Response(o, data); + case 0x100: return pack_can_0x100_EMeter_Measurement(o, data); + case 0x1d5: return pack_can_0x1d5_MCM_U2C_Message_Rxd(o, data); + case 0x1d7: return pack_can_0x1d7_MCM_U2C_Command_Txd(o, data); + case 0x400: return pack_can_0x400_EMeter_Status(o, data); + case 0x4b0: return pack_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(o, data); + case 0x4b1: return pack_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(o, data); + case 0x4b2: return pack_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(o, data); + case 0x4b3: return pack_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(o, data); + case 0x4b4: return pack_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(o, data); + case 0x4b5: return pack_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(o, data); + case 0x4b6: return pack_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(o, data); + case 0x4b7: return pack_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(o, data); + case 0x4b8: return pack_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(o, data); + case 0x4b9: return pack_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(o, data); + case 0x4ba: return pack_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(o, data); + case 0x4bb: return pack_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(o, data); + case 0x4bc: return pack_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(o, data); + case 0x4bd: return pack_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(o, data); + case 0x4be: return pack_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(o, data); + case 0x4bf: return pack_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(o, data); + case 0x500: return pack_can_0x500_VCU_TPS0(o, data); + case 0x501: return pack_can_0x501_VCU_TPS1(o, data); + case 0x502: return pack_can_0x502_VCU_BPS0(o, data); + case 0x504: return pack_can_0x504_VCU_WSS(o, data); + case 0x505: return pack_can_0x505_VCU_WSS_Smooth(o, data); + case 0x506: return pack_can_0x506_VCU_Safety_Checker(o, data); + case 0x507: return pack_can_0x507_Low_Voltage(o, data); + case 0x508: return pack_can_0x508_VCU_Regen_Settings(o, data); + case 0x509: return pack_can_0x509_MCM_RTD_HVIL(o, data); + case 0x50a: return pack_can_0x50a_Ground_Speed(o, data); + case 0x50c: return pack_can_0x50c_Launch_Control_Additional_Information(o, data); + case 0x50d: return pack_can_0x50d_VCU_BPS1(o, data); + case 0x50e: return pack_can_0x50e_VCU_BMS_Debug_1(o, data); + case 0x50f: return pack_can_0x50f_VCU_BMS_Debug_2(o, data); + case 0x510: return pack_can_0x510_VCU_80kW_Debug(o, data); + case 0x511: return pack_can_0x511_VCU_Power_Limit_Overview(o, data); + case 0x512: return pack_can_0x512_VCU_Power_Limit_PID_Output_Details(o, data); + case 0x513: return pack_can_0x513_VCU_Power_Limit_LUT_Parameters(o, data); + case 0x514: return pack_can_0x514_VCU_Power_Limit_PID_Information(o, data); + case 0x515: return pack_can_0x515_DRS_SAS(o, data); + case 0x5ff: return pack_can_0x5ff_Enable_Inverter(o, data); + case 0x600: return pack_can_0x600_BMS_State_Command(o, data); + case 0x602: return pack_can_0x602_BMS_Master_Faults(o, data); + case 0x604: return pack_can_0x604_BMS_Master_Warnings(o, data); + case 0x610: return pack_can_0x610_BMS_Master_System_Status(o, data); + case 0x611: return pack_can_0x611_BMS_Pack_Safe_OE(o, data); + case 0x612: return pack_can_0x612_BMS_Master_Local_Board_Measurements(o, data); + case 0x620: return pack_can_0x620_BMS_Pack_Level_Measurements_1(o, data); + case 0x621: return pack_can_0x621_BMS_Pack_Level_Measurements_2(o, data); + case 0x622: return pack_can_0x622_BMS_Cell_Voltage_Summary(o, data); + case 0x623: return pack_can_0x623_BMS_Cell_Temperature_Summary(o, data); + case 0x624: return pack_can_0x624_BMS_Pack_Level_Measurements_3(o, data); + case 0x630: return pack_can_0x630_BMS_M1_Cell_Voltage_Data_1(o, data); + case 0x631: return pack_can_0x631_BMS_M1_Cell_Voltage_Data_2(o, data); + case 0x632: return pack_can_0x632_BMS_M1_Cell_Voltage_Data_3(o, data); + case 0x633: return pack_can_0x633_BMS_M2_Cell_Voltage_Data_1(o, data); + case 0x634: return pack_can_0x634_BMS_M2_Cell_Voltage_Data_2(o, data); + case 0x635: return pack_can_0x635_BMS_M2_Cell_Voltage_Data_3(o, data); + case 0x636: return pack_can_0x636_BMS_M3_Cell_Voltage_Data_1(o, data); + case 0x637: return pack_can_0x637_BMS_M3_Cell_Voltage_Data_2(o, data); + case 0x638: return pack_can_0x638_BMS_M3_Cell_Voltage_Data_3(o, data); + case 0x639: return pack_can_0x639_BMS_M4_Cell_Voltage_Data_1(o, data); + case 0x63a: return pack_can_0x63a_BMS_M4_Cell_Voltage_Data_2(o, data); + case 0x63b: return pack_can_0x63b_BMS_M4_Cell_Voltage_Data_3(o, data); + case 0x63c: return pack_can_0x63c_BMS_M5_Cell_Voltage_Data_1(o, data); + case 0x63d: return pack_can_0x63d_BMS_M5_Cell_Voltage_Data_2(o, data); + case 0x63e: return pack_can_0x63e_BMS_M5_Cell_Voltage_Data_3(o, data); + case 0x63f: return pack_can_0x63f_BMS_M6_Cell_Voltage_Data_1(o, data); + case 0x640: return pack_can_0x640_BMS_M6_Cell_Voltage_Data_2(o, data); + case 0x641: return pack_can_0x641_BMS_M6_Cell_Voltage_Data_3(o, data); + case 0x642: return pack_can_0x642_BMS_M7_Cell_Voltage_Data_1(o, data); + case 0x643: return pack_can_0x643_BMS_M7_Cell_Voltage_Data_2(o, data); + case 0x644: return pack_can_0x644_BMS_M7_Cell_Voltage_Data_3(o, data); + case 0x645: return pack_can_0x645_BMS_M8_Cell_Voltage_Data_1(o, data); + case 0x646: return pack_can_0x646_BMS_M8_Cell_Voltage_Data_2(o, data); + case 0x647: return pack_can_0x647_BMS_M8_Cell_Voltage_Data_3(o, data); + case 0x680: return pack_can_0x680_BMS_M1_Cell_Temp_Data(o, data); + case 0x683: return pack_can_0x683_BMS_M2_Cell_Temp_Data(o, data); + case 0x686: return pack_can_0x686_BMS_M3_Cell_Temp_Data(o, data); + case 0x689: return pack_can_0x689_BMS_M4_Cell_Temp_Data(o, data); + case 0x68c: return pack_can_0x68c_BMS_M5_Cell_Temp_Data(o, data); + case 0x68f: return pack_can_0x68f_BMS_M6_Cell_Temp_Data(o, data); + case 0x692: return pack_can_0x692_BMS_M7_Cell_Temp_Data(o, data); + case 0x695: return pack_can_0x695_BMS_M8_Cell_Temp_Data(o, data); + case 0x6fc: return pack_can_0x6fc_BMS_Configuration_Information(o, data); + case 0x6fe: return pack_can_0x6fe_BMS_Firmware_Version_Information(o, data); + case 0x702: return pack_can_0x702_MCM_RegenModeICSent(o, data); + case 0x710: return pack_can_0x710_S2C_PressureTabs(o, data); + default: break; + } + return -1; +} + +int print_message(const can_obj_all_sre_edited_h_t *o, const unsigned long id, FILE *output) { + assert(o); + assert(id < (1ul << 29)); /* 29-bit CAN ID is largest possible */ + assert(output); + switch (id) { + case 0x0a0: return print_can_0x0a0_MCM_Temperature_Set_1(o, output); + case 0x0a1: return print_can_0x0a1_MCM_Temperature_Set_2(o, output); + case 0x0a2: return print_can_0x0a2_MCM_Temperature_Set_3(o, output); + case 0x0a3: return print_can_0x0a3_MCM_Analog_Input_Voltages(o, output); + case 0x0a4: return print_can_0x0a4_MCM_Digital_Input_Status(o, output); + case 0x0a5: return print_can_0x0a5_MCM_Motor_Position_Info(o, output); + case 0x0a6: return print_can_0x0a6_MCM_Current_Info(o, output); + case 0x0a7: return print_can_0x0a7_MCM_Voltage_Info(o, output); + case 0x0a8: return print_can_0x0a8_MCM_Flux_ID_IQ_Info(o, output); + case 0x0a9: return print_can_0x0a9_MCM_Internal_Voltages(o, output); + case 0x0aa: return print_can_0x0aa_MCM_Internal_States(o, output); + case 0x0ab: return print_can_0x0ab_MCM_Fault_Codes(o, output); + case 0x0ac: return print_can_0x0ac_MCM_Torque_And_Timer_Info(o, output); + case 0x0ad: return print_can_0x0ad_MCM_Modulation_And_Flux_Info(o, output); + case 0x0ae: return print_can_0x0ae_MCM_Firmware_Info(o, output); + case 0x0af: return print_can_0x0af_MCM_Diag_Data(o, output); + case 0x0c0: return print_can_0x0c0_MCM_Command_Messages(o, output); + case 0x0c1: return print_can_0x0c1_MCM_Read_Write_Param_Command(o, output); + case 0x0c2: return print_can_0x0c2_MCM_Read_Write_Param_Response(o, output); + case 0x100: return print_can_0x100_EMeter_Measurement(o, output); + case 0x1d5: return print_can_0x1d5_MCM_U2C_Message_Rxd(o, output); + case 0x1d7: return print_can_0x1d7_MCM_U2C_Command_Txd(o, output); + case 0x400: return print_can_0x400_EMeter_Status(o, output); + case 0x4b0: return print_can_0x4b0_DAQ_LF_Tire_Temp_Ch1_4(o, output); + case 0x4b1: return print_can_0x4b1_DAQ_LF_Tire_Temp_Ch5_8(o, output); + case 0x4b2: return print_can_0x4b2_DAQ_LF_Tire_Temp_Ch9_12(o, output); + case 0x4b3: return print_can_0x4b3_DAQ_LF_Tire_Temp_Ch13_16(o, output); + case 0x4b4: return print_can_0x4b4_DAQ_RF_Tire_Temp_Ch1_4(o, output); + case 0x4b5: return print_can_0x4b5_DAQ_RF_Tire_Temp_Ch5_8(o, output); + case 0x4b6: return print_can_0x4b6_DAQ_RF_Tire_Temp_Ch9_12(o, output); + case 0x4b7: return print_can_0x4b7_DAQ_RF_Tire_Temp_Ch13_16(o, output); + case 0x4b8: return print_can_0x4b8_DAQ_LR_Tire_Temp_Ch1_4(o, output); + case 0x4b9: return print_can_0x4b9_DAQ_LR_Tire_Temp_Ch5_8(o, output); + case 0x4ba: return print_can_0x4ba_DAQ_LR_Tire_Temp_Ch9_12(o, output); + case 0x4bb: return print_can_0x4bb_DAQ_LR_Tire_Temp_Ch13_16(o, output); + case 0x4bc: return print_can_0x4bc_DAQ_RR_Tire_Temp_Ch1_4(o, output); + case 0x4bd: return print_can_0x4bd_DAQ_RR_Tire_Temp_Ch5_8(o, output); + case 0x4be: return print_can_0x4be_DAQ_RR_Tire_Temp_Ch9_12(o, output); + case 0x4bf: return print_can_0x4bf_DAQ_RR_Tire_Temp_Ch13_16(o, output); + case 0x500: return print_can_0x500_VCU_TPS0(o, output); + case 0x501: return print_can_0x501_VCU_TPS1(o, output); + case 0x502: return print_can_0x502_VCU_BPS0(o, output); + case 0x504: return print_can_0x504_VCU_WSS(o, output); + case 0x505: return print_can_0x505_VCU_WSS_Smooth(o, output); + case 0x506: return print_can_0x506_VCU_Safety_Checker(o, output); + case 0x507: return print_can_0x507_Low_Voltage(o, output); + case 0x508: return print_can_0x508_VCU_Regen_Settings(o, output); + case 0x509: return print_can_0x509_MCM_RTD_HVIL(o, output); + case 0x50a: return print_can_0x50a_Ground_Speed(o, output); + case 0x50c: return print_can_0x50c_Launch_Control_Additional_Information(o, output); + case 0x50d: return print_can_0x50d_VCU_BPS1(o, output); + case 0x50e: return print_can_0x50e_VCU_BMS_Debug_1(o, output); + case 0x50f: return print_can_0x50f_VCU_BMS_Debug_2(o, output); + case 0x510: return print_can_0x510_VCU_80kW_Debug(o, output); + case 0x511: return print_can_0x511_VCU_Power_Limit_Overview(o, output); + case 0x512: return print_can_0x512_VCU_Power_Limit_PID_Output_Details(o, output); + case 0x513: return print_can_0x513_VCU_Power_Limit_LUT_Parameters(o, output); + case 0x514: return print_can_0x514_VCU_Power_Limit_PID_Information(o, output); + case 0x515: return print_can_0x515_DRS_SAS(o, output); + case 0x5ff: return print_can_0x5ff_Enable_Inverter(o, output); + case 0x600: return print_can_0x600_BMS_State_Command(o, output); + case 0x602: return print_can_0x602_BMS_Master_Faults(o, output); + case 0x604: return print_can_0x604_BMS_Master_Warnings(o, output); + case 0x610: return print_can_0x610_BMS_Master_System_Status(o, output); + case 0x611: return print_can_0x611_BMS_Pack_Safe_OE(o, output); + case 0x612: return print_can_0x612_BMS_Master_Local_Board_Measurements(o, output); + case 0x620: return print_can_0x620_BMS_Pack_Level_Measurements_1(o, output); + case 0x621: return print_can_0x621_BMS_Pack_Level_Measurements_2(o, output); + case 0x622: return print_can_0x622_BMS_Cell_Voltage_Summary(o, output); + case 0x623: return print_can_0x623_BMS_Cell_Temperature_Summary(o, output); + case 0x624: return print_can_0x624_BMS_Pack_Level_Measurements_3(o, output); + case 0x630: return print_can_0x630_BMS_M1_Cell_Voltage_Data_1(o, output); + case 0x631: return print_can_0x631_BMS_M1_Cell_Voltage_Data_2(o, output); + case 0x632: return print_can_0x632_BMS_M1_Cell_Voltage_Data_3(o, output); + case 0x633: return print_can_0x633_BMS_M2_Cell_Voltage_Data_1(o, output); + case 0x634: return print_can_0x634_BMS_M2_Cell_Voltage_Data_2(o, output); + case 0x635: return print_can_0x635_BMS_M2_Cell_Voltage_Data_3(o, output); + case 0x636: return print_can_0x636_BMS_M3_Cell_Voltage_Data_1(o, output); + case 0x637: return print_can_0x637_BMS_M3_Cell_Voltage_Data_2(o, output); + case 0x638: return print_can_0x638_BMS_M3_Cell_Voltage_Data_3(o, output); + case 0x639: return print_can_0x639_BMS_M4_Cell_Voltage_Data_1(o, output); + case 0x63a: return print_can_0x63a_BMS_M4_Cell_Voltage_Data_2(o, output); + case 0x63b: return print_can_0x63b_BMS_M4_Cell_Voltage_Data_3(o, output); + case 0x63c: return print_can_0x63c_BMS_M5_Cell_Voltage_Data_1(o, output); + case 0x63d: return print_can_0x63d_BMS_M5_Cell_Voltage_Data_2(o, output); + case 0x63e: return print_can_0x63e_BMS_M5_Cell_Voltage_Data_3(o, output); + case 0x63f: return print_can_0x63f_BMS_M6_Cell_Voltage_Data_1(o, output); + case 0x640: return print_can_0x640_BMS_M6_Cell_Voltage_Data_2(o, output); + case 0x641: return print_can_0x641_BMS_M6_Cell_Voltage_Data_3(o, output); + case 0x642: return print_can_0x642_BMS_M7_Cell_Voltage_Data_1(o, output); + case 0x643: return print_can_0x643_BMS_M7_Cell_Voltage_Data_2(o, output); + case 0x644: return print_can_0x644_BMS_M7_Cell_Voltage_Data_3(o, output); + case 0x645: return print_can_0x645_BMS_M8_Cell_Voltage_Data_1(o, output); + case 0x646: return print_can_0x646_BMS_M8_Cell_Voltage_Data_2(o, output); + case 0x647: return print_can_0x647_BMS_M8_Cell_Voltage_Data_3(o, output); + case 0x680: return print_can_0x680_BMS_M1_Cell_Temp_Data(o, output); + case 0x683: return print_can_0x683_BMS_M2_Cell_Temp_Data(o, output); + case 0x686: return print_can_0x686_BMS_M3_Cell_Temp_Data(o, output); + case 0x689: return print_can_0x689_BMS_M4_Cell_Temp_Data(o, output); + case 0x68c: return print_can_0x68c_BMS_M5_Cell_Temp_Data(o, output); + case 0x68f: return print_can_0x68f_BMS_M6_Cell_Temp_Data(o, output); + case 0x692: return print_can_0x692_BMS_M7_Cell_Temp_Data(o, output); + case 0x695: return print_can_0x695_BMS_M8_Cell_Temp_Data(o, output); + case 0x6fc: return print_can_0x6fc_BMS_Configuration_Information(o, output); + case 0x6fe: return print_can_0x6fe_BMS_Firmware_Version_Information(o, output); + case 0x702: return print_can_0x702_MCM_RegenModeICSent(o, output); + case 0x710: return print_can_0x710_S2C_PressureTabs(o, output); + default: break; + } + return -1; +} + |