Searching through arrays

Hi, I have been trying to make the following code work I don't know why it isn't working. The code must return the name mentioned in the if statements or return caught while printing the rows. It isn't returning any error. Basically the if statements aren't executing. Please help!

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_VoltDelta_V;BMS_PackInfo1;-;0;16;Intel;Unsigned;0;0.0001;0;0;6.5535;V;-;Cell voltage difference between minimum and maximum cell voltage;0x71B;0;Cyclic;0\n"
              "BMS_Cell_VoltMax_CmuId_num;BMS_CellVoltageInfo;-;48;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with maximum voltage;0x713;0;Cyclic;0\n"
              "BMS_Cell_VoltMax_Id_num;BMS_CellVoltageInfo;-;56;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with maximum voltage;0x713;0;Cyclic;0\n"
              "BMS_Cell_VoltMax_V;BMS_CellVoltageInfo;-;32;16;Intel;Unsigned;0;0.0001;0;0;6.5535;V;-;Maximum cell voltage;0x713;0;Cyclic;0\n"
              "BMS_Cell_VoltMin_CmuId_num;BMS_CellVoltageInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with minimum voltage;0x713;0;Cyclic;0\n"
              "BMS_Cell_VoltMin_Id_num;BMS_CellVoltageInfo;-;24;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest voltage;0x713;0;Cyclic;0\n"
              "BMS_Cell_VoltMin_V;BMS_CellVoltageInfo;-;0;16;Intel;Unsigned;0;0.0001;0;0;6.5535;V;-;Minimum cell voltage;0x713;0;Cyclic;0\n"
              "BMS_Chrg_CapacityRemain_Ah;BMS_Status2;-;32;8;Intel;Unsigned;0;0.2;0;0;51;-;-;Battery Pack Charge Capacity Remaining in Ah;0x291;0;Cyclic;0\n"
              "BMS_Chrg_TmRemain_min;BMS_PackInfo5;-;16;16;Intel;Unsigned;0;1;0;0;65534;minutes;-;-;0x71F;0;Cyclic;0\n"
              "BMS_ChrgComplete_bool;BMS_Status2;-;7;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS charge complete flag. 0 = Not complete, 1 = Complete.;0x291;0;Cyclic;0\n"
              "BMS_ChrgCurLim30s_A;BMS_Limits2;-;16;16;Intel;Unsigned;0;0.1;0;0;6553.5;A;-;Charge Current Limit for 30 second events / continuous;0x296;0;Cyclic;0\n"
              "BMS_ChrgCurrLim30s_enum;BMS_FltInfo_Derate1;-;48;16;Intel;Unsigned;0;1;0;0;65535;enum;VtSig_BMS_ChrgCurrLim30s_enum;Charge Current Limit Enumeration for 30 second events / continuous;0x73F;0;Cyclic;0\n"
              "BMS_ChrgCurrReq_A;BMS_Limits1;-;32;16;Intel;Unsigned;0;0.1;0;0;6553.5;A;-;Current request for charging in Amps;0x295;0;Cyclic;0\n"
              "BMS_ChrgModeReqFb_bool;BMS_Status1;-;6;1;Intel;Unsigned;0;1;0;0;1;bool;-;Charge mode request acknowledgement feedback (0 = charge mode not requested feedback, 1 = charge mode requested feedback);0x290;0;Cyclic;0\n"
              "BMS_ChrgPwrLim10s_enum;BMS_FltInfo_Derate1;-;16;16;Intel;Unsigned;0;1;0;0;65535;enum;VtSig_BMS_ChrgPwrLim10s_enum;Regen Current Limit Enumeration for 10 second events / instantaneous;0x73F;0;Cyclic;0\n"
              "BMS_ChrgPwrLim10s_W;BMS_Limits1;-;16;16;Intel;Unsigned;0;20;0;0;1310700;W;-;Regen Current Limit for 10 second events / instantaneous;0x295;0;Cyclic;0\n"
              "BMS_ChrgVolt_V;BMS_PackInfo3;-;32;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Anc Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_ChrgVoltMax_V;BMS_Limits1;-;48;16;Intel;Unsigned;0;0.1;0;0;6553.5;V;-;Maximum charging voltage of pack;0x295;0;Cyclic;0\n"
              "BMS_CMU1_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU1_voltage1;BMS_CMU_Voltages1;BMS_CMU_counter = 0x0;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage10;BMS_CMU_Voltages1;BMS_CMU_counter = 0x2;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage11;BMS_CMU_Voltages1;BMS_CMU_counter = 0x2;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage12;BMS_CMU_Voltages1;BMS_CMU_counter = 0x2;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage13;BMS_CMU_Voltages1;BMS_CMU_counter = 0x3;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage14;BMS_CMU_Voltages1;BMS_CMU_counter = 0x3;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage2;BMS_CMU_Voltages1;BMS_CMU_counter = 0x0;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage3;BMS_CMU_Voltages1;BMS_CMU_counter = 0x0;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage4;BMS_CMU_Voltages1;BMS_CMU_counter = 0x0;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage5;BMS_CMU_Voltages1;BMS_CMU_counter = 0x1;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage6;BMS_CMU_Voltages1;BMS_CMU_counter = 0x1;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage7;BMS_CMU_Voltages1;BMS_CMU_counter = 0x1;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage8;BMS_CMU_Voltages1;BMS_CMU_counter = 0x1;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU1_voltage9;BMS_CMU_Voltages1;BMS_CMU_counter = 0x2;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x0;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU2_voltage1;BMS_CMU_Voltages1;BMS_CMU_counter = 0x3;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage10;BMS_CMU_Voltages1;BMS_CMU_counter = 0x5;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage11;BMS_CMU_Voltages1;BMS_CMU_counter = 0x6;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage12;BMS_CMU_Voltages1;BMS_CMU_counter = 0x6;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage13;BMS_CMU_Voltages1;BMS_CMU_counter = 0x6;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage14;BMS_CMU_Voltages1;BMS_CMU_counter = 0x6;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage2;BMS_CMU_Voltages1;BMS_CMU_counter = 0x3;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage3;BMS_CMU_Voltages1;BMS_CMU_counter = 0x4;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage4;BMS_CMU_Voltages1;BMS_CMU_counter = 0x4;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage5;BMS_CMU_Voltages1;BMS_CMU_counter = 0x4;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage6;BMS_CMU_Voltages1;BMS_CMU_counter = 0x4;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage7;BMS_CMU_Voltages1;BMS_CMU_counter = 0x5;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage8;BMS_CMU_Voltages1;BMS_CMU_counter = 0x5;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU2_voltage9;BMS_CMU_Voltages1;BMS_CMU_counter = 0x5;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x1;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU3_voltage1;BMS_CMU_Voltages1;BMS_CMU_counter = 0x7;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage10;BMS_CMU_Voltages1;BMS_CMU_counter = 0x9;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage11;BMS_CMU_Voltages1;BMS_CMU_counter = 0x9;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage12;BMS_CMU_Voltages1;BMS_CMU_counter = 0x9;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage13;BMS_CMU_Voltages2;BMS_CMU_counter = 0x0;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU3_voltage14;BMS_CMU_Voltages2;BMS_CMU_counter = 0x0;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU3_voltage2;BMS_CMU_Voltages1;BMS_CMU_counter = 0x7;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage3;BMS_CMU_Voltages1;BMS_CMU_counter = 0x7;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage4;BMS_CMU_Voltages1;BMS_CMU_counter = 0x7;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage5;BMS_CMU_Voltages1;BMS_CMU_counter = 0x8;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage6;BMS_CMU_Voltages1;BMS_CMU_counter = 0x8;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage7;BMS_CMU_Voltages1;BMS_CMU_counter = 0x8;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage8;BMS_CMU_Voltages1;BMS_CMU_counter = 0x8;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU3_voltage9;BMS_CMU_Voltages1;BMS_CMU_counter = 0x9;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x507;0;Cyclic;0\n"
              "BMS_CMU4_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x2;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU4_voltage1;BMS_CMU_Voltages2;BMS_CMU_counter = 0x0;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage10;BMS_CMU_Voltages2;BMS_CMU_counter = 0x2;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage11;BMS_CMU_Voltages2;BMS_CMU_counter = 0x3;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage12;BMS_CMU_Voltages2;BMS_CMU_counter = 0x3;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage13;BMS_CMU_Voltages2;BMS_CMU_counter = 0x3;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage14;BMS_CMU_Voltages2;BMS_CMU_counter = 0x3;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage2;BMS_CMU_Voltages2;BMS_CMU_counter = 0x0;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage3;BMS_CMU_Voltages2;BMS_CMU_counter = 0x1;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage4;BMS_CMU_Voltages2;BMS_CMU_counter = 0x1;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage5;BMS_CMU_Voltages2;BMS_CMU_counter = 0x1;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage6;BMS_CMU_Voltages2;BMS_CMU_counter = 0x1;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage7;BMS_CMU_Voltages2;BMS_CMU_counter = 0x2;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage8;BMS_CMU_Voltages2;BMS_CMU_counter = 0x2;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU4_voltage9;BMS_CMU_Voltages2;BMS_CMU_counter = 0x2;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x3;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU5_voltage1;BMS_CMU_Voltages2;BMS_CMU_counter = 0x4;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage10;BMS_CMU_Voltages2;BMS_CMU_counter = 0x6;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage11;BMS_CMU_Voltages2;BMS_CMU_counter = 0x6;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage12;BMS_CMU_Voltages2;BMS_CMU_counter = 0x6;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage13;BMS_CMU_Voltages2;BMS_CMU_counter = 0x7;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage14;BMS_CMU_Voltages2;BMS_CMU_counter = 0x7;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage2;BMS_CMU_Voltages2;BMS_CMU_counter = 0x4;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage3;BMS_CMU_Voltages2;BMS_CMU_counter = 0x4;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage4;BMS_CMU_Voltages2;BMS_CMU_counter = 0x4;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage5;BMS_CMU_Voltages2;BMS_CMU_counter = 0x5;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage6;BMS_CMU_Voltages2;BMS_CMU_counter = 0x5;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage7;BMS_CMU_Voltages2;BMS_CMU_counter = 0x5;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage8;BMS_CMU_Voltages2;BMS_CMU_counter = 0x5;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU5_voltage9;BMS_CMU_Voltages2;BMS_CMU_counter = 0x6;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x4;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU6_voltage1;BMS_CMU_Voltages2;BMS_CMU_counter = 0x7;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage10;BMS_CMU_Voltages2;BMS_CMU_counter = 0x9;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage11;BMS_CMU_Voltages3;BMS_CMU_counter = 0x0;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU6_voltage12;BMS_CMU_Voltages3;BMS_CMU_counter = 0x0;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU6_voltage13;BMS_CMU_Voltages3;BMS_CMU_counter = 0x0;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU6_voltage14;BMS_CMU_Voltages3;BMS_CMU_counter = 0x0;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU6_voltage2;BMS_CMU_Voltages2;BMS_CMU_counter = 0x7;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage3;BMS_CMU_Voltages2;BMS_CMU_counter = 0x8;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage4;BMS_CMU_Voltages2;BMS_CMU_counter = 0x8;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage5;BMS_CMU_Voltages2;BMS_CMU_counter = 0x8;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage6;BMS_CMU_Voltages2;BMS_CMU_counter = 0x8;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage7;BMS_CMU_Voltages2;BMS_CMU_counter = 0x9;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage8;BMS_CMU_Voltages2;BMS_CMU_counter = 0x9;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU6_voltage9;BMS_CMU_Voltages2;BMS_CMU_counter = 0x9;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x508;0;Cyclic;0\n"
              "BMS_CMU7_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x5;56;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU7_voltage01;BMS_CMU_Voltages3;BMS_CMU_counter = 0x1;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage02;BMS_CMU_Voltages3;BMS_CMU_counter = 0x1;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage03;BMS_CMU_Voltages3;BMS_CMU_counter = 0x1;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage04;BMS_CMU_Voltages3;BMS_CMU_counter = 0x1;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage05;BMS_CMU_Voltages3;BMS_CMU_counter = 0x2;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage06;BMS_CMU_Voltages3;BMS_CMU_counter = 0x2;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage07;BMS_CMU_Voltages3;BMS_CMU_counter = 0x2;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage08;BMS_CMU_Voltages3;BMS_CMU_counter = 0x2;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage09;BMS_CMU_Voltages3;BMS_CMU_counter = 0x3;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage10;BMS_CMU_Voltages3;BMS_CMU_counter = 0x3;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage11;BMS_CMU_Voltages3;BMS_CMU_counter = 0x3;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage12;BMS_CMU_Voltages3;BMS_CMU_counter = 0x3;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage13;BMS_CMU_Voltages3;BMS_CMU_counter = 0x4;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU7_voltage14;BMS_CMU_Voltages3;BMS_CMU_counter = 0x4;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_temp1;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;8;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_temp2;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;16;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_temp3;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;24;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_temp4;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;32;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_temp5;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;40;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_temp6;BMS_CMU_Temp1;BMS_CMU_counter = 0x6;48;8;Intel;Unsigned;-40;1;-40;-40;215;DegC;-;CMU Cell Temperature;0x500;0;Cyclic;0\n"
              "BMS_CMU8_voltage1;BMS_CMU_Voltages3;BMS_CMU_counter = 0x4;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage10;BMS_CMU_Voltages3;BMS_CMU_counter = 0x6;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage11;BMS_CMU_Voltages3;BMS_CMU_counter = 0x7;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage12;BMS_CMU_Voltages3;BMS_CMU_counter = 0x7;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage13;BMS_CMU_Voltages3;BMS_CMU_counter = 0x7;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage14;BMS_CMU_Voltages3;BMS_CMU_counter = 0x7;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage2;BMS_CMU_Voltages3;BMS_CMU_counter = 0x4;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage3;BMS_CMU_Voltages3;BMS_CMU_counter = 0x5;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage4;BMS_CMU_Voltages3;BMS_CMU_counter = 0x5;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage5;BMS_CMU_Voltages3;BMS_CMU_counter = 0x5;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage6;BMS_CMU_Voltages3;BMS_CMU_counter = 0x5;45;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage7;BMS_CMU_Voltages3;BMS_CMU_counter = 0x6;6;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage8;BMS_CMU_Voltages3;BMS_CMU_counter = 0x6;19;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU8_voltage9;BMS_CMU_Voltages3;BMS_CMU_counter = 0x6;32;13;Intel;Unsigned;0;0.001;0;0;8.191;volts;-;CMU Cell Voltage;0x509;0;Cyclic;0\n"
              "BMS_CMU_counter;BMS_CMU_Voltages3;Multiplexor;0;6;Intel;Unsigned;0;1;0;0;63;count;-;-;0x509;0;Cyclic;0\n"
              "BMS_CMU_counter;BMS_CMU_Voltages2;Multiplexor;0;6;Intel;Unsigned;0;1;0;0;63;count;-;-;0x508;0;Cyclic;0\n"
              "BMS_CMU_counter;BMS_CMU_Voltages1;Multiplexor;0;6;Intel;Unsigned;0;1;0;0;63;count;-;-;0x507;0;Cyclic;0\n"
              "BMS_CMU_counter;BMS_CMU_Temp1;Multiplexor;0;6;Intel;Unsigned;0;1;0;0;63;count;-;-;0x500;0;Cyclic;0\n"
              "BMS_Cool_Emgncy_Req_bool;BMS_Status2;-;2;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Emergency cooling request;0x291;0;Cyclic;0\n"
              "BMS_Cool_None_Req_bool;BMS_Status2;-;0;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS no cooling request;0x291;0;Cyclic;0\n"
              "BMS_Cool_Normal_Req_bool;BMS_Status2;-;1;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Normal cooling request;0x291;0;Cyclic;0\n"
              "BMS_Counter_num;BMS_Status1;-;8;4;Intel;Unsigned;0;1;0;0;15;count;-;4 bit continuously incrementing counter. Wraps around to 0 after 15.;0x290;0;Cyclic;0\n"
              "BMS_Counter_num;BMS_Status2;-;8;4;Intel;Unsigned;0;1;0;0;15;count;-;4 bit continuously incrementing counter. Wraps around to 0 after 15.;0x291;0;Cyclic;0\n"
              "BMS_Dischrg_CapacityRemain_Ah;BMS_Status2;-;24;8;Intel;Unsigned;0;0.2;0;0;51;-;-;Battery Pack Discharge Capacity Remaining in Ah;0x291;0;Cyclic;0\n"
              "BMS_DischrgPwrLim10s_enum;BMS_FltInfo_Derate1;-;0;16;Intel;Unsigned;0;1;0;0;65535;enum;VtSig_BMS_DischrgPwrLim10s_enum;Discharge Current Limit Enumeration for 10 second events / instantaneous;0x73F;0;Cyclic;0\n"
              "BMS_DischrgPwrLim10s_W;BMS_Limits1;-;0;16;Intel;Unsigned;0;20;0;0;1310700;W;-;Discharge Current Limit for 10 second events / instantaneous;0x295;0;Cyclic;0\n"
              "BMS_DischrgPwrLim30s_enum;BMS_FltInfo_Derate1;-;32;16;Intel;Unsigned;0;1;0;0;65535;enum;VtSig_BMS_DischrgPwrLim30s_enum;Discharge Current Limit Enumeration for 30 second events / continuous;0x73F;0;Cyclic;0\n"
              "BMS_DischrgPwrLim30s_W;BMS_Limits2;-;0;16;Intel;Unsigned;0;20;0;0;1310700;W;-;Discharge Current Limit for 30 second events / continuous;0x296;0;Cyclic;0\n"
              "BMS_EmgncyCttrOpening_bool;BMS_Status1;-;15;1;Intel;Unsigned;0;1;0;0;1;bool;-;Emergency contactor opening warning (0 = contactors not able to open, 1 = contactors about to open due to emergency);0x290;0;Cyclic;0\n"
              "BMS_FltDisbl_Act_bool;BMS_Status2;-;3;1;Intel;Unsigned;0;1;0;0;1;bool;-;Any Disable Fault is active;0x291;0;Cyclic;0\n"
              "BMS_FltDrate_Act_bool;BMS_Status2;-;5;1;Intel;Unsigned;0;1;0;0;1;bool;-;Any Derate Fault is active;0x291;0;Cyclic;0\n"
              "BMS_FltLmpHm_Act_bool;BMS_Status2;-;4;1;Intel;Unsigned;0;1;0;0;1;bool;-;Any Limp Home Fault is active;0x291;0;Cyclic;0\n"
              "BMS_FltWarn_Act_bool;BMS_Status2;-;6;1;Intel;Unsigned;0;1;0;0;1;bool;-;Any Warn Fault is active;0x291;0;Cyclic;0\n"
              "BMS_HMI_WarnLevel_0_bool;BMS_FltInfo_Sfty1;-;9;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS HMI safety layer warning level 0...;0x72A;0;Cyclic;0\n"
              "BMS_HMI_WarnLevel_1_bool;BMS_FltInfo_Sfty1;-;10;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS HMI safety layer warning level 1...;0x72A;0;Cyclic;0\n"
              "BMS_HMI_WarnLevel_2_bool;BMS_FltInfo_Sfty1;-;11;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS HMI safety layer warning level 2...;0x72A;0;Cyclic;0\n"
              "BMS_HMI_WarnLevel_3_bool;BMS_FltInfo_Sfty1;-;12;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS HMI safety layer warning level 3...;0x72A;0;Cyclic;0\n"
              "BMS_HVBattTotalCapacity_kWh;BMS_PackInfo1;-;16;12;Intel;Unsigned;0;0.1;0;0;102.35;kWh;-;Total battery capacity in kWh (energy content)....;0x71B;0;Cyclic;0\n"
              "BMS_HvBus1_Tract_OnFb_bool;BMS_Status1;-;0;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 1 (Traction) feedback (negative & relevant positive contactor are open or closed) (0 = open, 1 = closed);0x290;0;Cyclic;0\n"
              "BMS_HvBus2_Chrg_OnFb_bool;BMS_Status1;-;1;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 2 (Fuel Cell) feedback (negative & relevant positive contactor are open or closed) (0 = open, 1 = closed);0x290;0;Cyclic;0\n"
              "BMS_HvBus3_Anc_OnFb_bool;BMS_Status1;-;2;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 3 (Ancillary) feedback (negative & relevant positive contactor are open or closed) (0 = open, 1 = closed);0x290;0;Cyclic;0\n"
              "BMS_HvBus4_Null_OnFb_bool;BMS_Status1;-;3;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 4 (Not Used) feedback (negative & relevant positive contactor are open or closed) (0 = open, 1 = closed);0x290;0;Cyclic;0\n"
              "BMS_HvBus5_Null_OnFb_bool;BMS_Status1;-;4;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 5 (Not Used) feedback (negative & relevant positive contactor are open or closed) (0 = open, 1 = closed);0x290;0;Cyclic;0\n"
              "BMS_IsolDisbl_ReqFb_bool;BMS_Status1;-;5;1;Intel;Unsigned;0;1;0;0;1;bool;-;Isolation monitor disable request feedback (0 = requested enabled, 1 = requested disabled);0x290;0;Cyclic;0\n"
              "BMS_IsolVal_kohm;BMS_PackInfo2;-;32;16;Intel;Unsigned;0;1;0;0;65535;kohm;-;Isolation Value in kohm;0x71C;0;Cyclic;0\n"
              "BMS_PackCurr_A;BMS_Status1;-;40;16;Intel;Signed;0;0.1;0;-3276.8;3276.7;A;-;Battery Pack Current (Convention: Positive = Discharge , Negative = Charge);0x290;0;Cyclic;0\n"
              "BMS_PackPwr_W;BMS_Status2;-;40;16;Intel;Signed;0;40;0;-1310720;1310680;W;-;Calculated Pack Power in Watts (Convention: Positive = Discharge , Negative = Charge);0x291;0;Cyclic;0\n"
              "BMS_PackVolt_Meas_V;BMS_PackInfo1;-;48;16;Intel;Unsigned;0;0.1;0;0;6553.5;V;-;Battery Pack Voltage - measured by HVM;0x71B;0;Cyclic;0\n"
              "BMS_PackVolt_Sum_V;BMS_PackInfo2;-;16;16;Intel;Unsigned;0;0.1;0;0;6553.5;V;-;Battery Pack Voltage - summation of cell voltages;0x71C;0;Cyclic;0\n"
              "BMS_PackVolt_V;BMS_Status1;-;24;16;Intel;Unsigned;0;0.1;0;0;6553.5;V;-;Battery Pack Voltage;0x290;0;Cyclic;0\n"
              "BMS_Press_CoolInlet_bar;BMS_PackInfo4;-;16;16;Intel;Unsigned;0;0.001;0;0;65.535;bar;-;Coolant inlet pressure;0x71E;0;Cyclic;0\n"
              "BMS_Press_CoolOutlet_bar;BMS_PackInfo4;-;32;16;Intel;Unsigned;0;0.001;0;0;65.535;bar;-;Coolant outlet pressure;0x71E;0;Cyclic;0\n"
              "BMS_ResponseLevel_1_bool;BMS_FltInfo_Sfty1;-;0;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 1 (CAT3);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_2_bool;BMS_FltInfo_Sfty1;-;1;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 2 (CAT3);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_3_bool;BMS_FltInfo_Sfty1;-;2;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 3 (CAT3);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_4_bool;BMS_FltInfo_Sfty1;-;3;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 4 (CAT4);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_5_bool;BMS_FltInfo_Sfty1;-;4;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 5 (CAT5);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_6_bool;BMS_FltInfo_Sfty1;-;5;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 6 (CAT6);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_7_bool;BMS_FltInfo_Sfty1;-;6;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 7 (CAT7);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_8_bool;BMS_FltInfo_Sfty1;-;7;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 8 (CAT7);0x72A;0;Cyclic;0\n"
              "BMS_ResponseLevel_9_bool;BMS_FltInfo_Sfty1;-;8;1;Intel;Unsigned;0;1;0;0;1;bool;-;BMS Safety Layer Response Level 9 (CAT7);0x72A;0;Cyclic;0\n"
              "BMS_SftyLyr_FaultCode_num;BMS_FltInfo_Sfty1;-;16;32;Intel;Unsigned;0;1;0;-1;0;-;-;BMS Safety Layer Fault Codes;0x72A;0;Cyclic;0\n"
              "BMS_SftyLyr_FaultCodeActNum_num;BMS_FltInfo_Sfty1;-;48;8;Intel;Unsigned;0;1;0;0;255;-;-;BMS Number of Active Safety Layer Fault Codes;0x72A;0;Cyclic;0\n"
              "BMS_ShutdownOk_bool;BMS_Status1;-;7;1;Intel;Unsigned;0;1;0;0;1;bool;-;Shutdown request has been received and the battery is ready to be shutdown (0 = not ready to shutdown, 1 = ready to shutdown);0x290;0;Cyclic;0\n"
              "BMS_SOC_pack_CellVoltMax_pc;BMS_PackInfo5;-;32;16;Intel;Unsigned;0;0.01;0;0;100;%;-;Cell Voltage Maximum State Of Charge;0x71F;0;Cyclic;0\n"
              "BMS_SOC_pack_CellVoltMin_pc;BMS_PackInfo5;-;48;16;Intel;Unsigned;0;0.01;0;0;100;%;-;Cell Voltage Minimum State Of Charge;0x71F;0;Cyclic;0\n"
              "BMS_SOC_pack_pc;BMS_PackInfo2;-;0;16;Intel;Unsigned;0;0.01;0;0;100;%;-;Pack State Of Charge (Actual State of Charge);0x71C;0;Cyclic;0\n"
              "BMS_SOC_pc;BMS_Status1;-;16;8;Intel;Unsigned;0;0.5;0;0;100;%;-;Usable State of Charge;0x290;0;Cyclic;0\n"
              "BMS_SoftwareVersion_num;BMS_PackInfo2;-;48;16;Intel;Unsigned;0;1;0;0;65534;num;-;-;0x71C;0;Cyclic;0\n"
              "BMS_SOH_pc;BMS_PackInfo1;-;32;16;Intel;Unsigned;0;0.01;0;0;100;%;-;State Of Health;0x71B;0;Cyclic;0\n"
              "BMS_Startup_Rdy_bool;BMS_Status1;-;14;1;Intel;Unsigned;0;1;0;0;1;bool;-;Startup ready status to indicate readiness for receiving requests (0 = startup not complete, 1 = startup complete);0x290;0;Cyclic;0\n"
              "BMS_Status1_CRC_num;BMS_Status1;-;56;8;Intel;Unsigned;0;1;0;0;255;num;-;CRC value calculated on the message (8 bit), for safety reasons this must be calculated correctly.;0x290;0;Cyclic;0\n"
              "BMS_Status2_CRC_num;BMS_Status2;-;56;8;Intel;Unsigned;0;1;0;0;255;num;-;CRC value calculated on the message (8 bit), for safety reasons this must be calculated correctly.;0x291;0;Cyclic;0\n"
              "BMS_Status_enum;BMS_Status2;-;16;8;Intel;Unsigned;0;1;0;0;255;enum;VtSig_BMS_Status_enum;BMS status enumeration;0x291;0;Cyclic;0\n"
              "BMS_Temp_CoolInlet_degC;BMS_PackInfo4;-;0;8;Intel;Unsigned;-20;0.5;-20;-20;107.5;degC;-;Coolant inlet temperature;0x71E;0;Cyclic;0\n"
              "BMS_Temp_CoolOutlet_degC;BMS_PackInfo4;-;8;8;Intel;Unsigned;-20;0.5;-20;-20;107.5;degC;-;Coolant outlet temperature;0x71E;0;Cyclic;0\n"
              "BMS_TractVolt_V;BMS_PackInfo3;-;0;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Traction Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "VSC_ChrgModeReq_bool;VSC_BatCmd;-;6;1;Intel;Unsigned;0;1;0;0;1;bool;-;Stationary Charge mode request (0 = charge mode not requested, 1 = charge mode requested);0x270;0;Cyclic;0\n"
              "VSC_Cmd_CRC_num;VSC_BatCmd;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;CRC value calculated on the message (8 bit), for safety reasons this must be calculated correctly.;0x270;0;Cyclic;0\n"
              "VSC_Counter_num;VSC_BatCmd;-;8;4;Intel;Unsigned;0;1;0;0;15;count;-;4 bit continuously incrementing counter. Wraps around to 0 after 15.;0x270;0;Cyclic;0\n"
              "VSC_CrashStatus_bool;VSC_BatCmd;-;13;1;Intel;Unsigned;0;1;0;0;1;bool;-;This signal defines the crash status of the vehicle safety system....;0x270;0;Cyclic;0\n"
              "VSC_HvBus1_Tract_OnReq_bool;VSC_BatCmd;-;0;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 1 (Traction) request (negative & relevant positive contactor to be closed or opened) (0 = open, 1 = close);0x270;0;Cyclic;0\n"
              "VSC_HvBus2_Chrg_OnReq_bool;VSC_BatCmd;-;1;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 2 (Fuel Cell) request (negative & relevant positive contactor to be closed or opened) (0 = open, 1 = close);0x270;0;Cyclic;0\n"
              "VSC_HvBus3_Anc_OnReq_bool;VSC_BatCmd;-;2;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 3 (Ancillary) request (negative & relevant positive contactor to be closed or opened) (0 = open, 1 = close);0x270;0;Cyclic;0\n"
              "VSC_HvBus4_Null_OnReq_bool;VSC_BatCmd;-;3;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 4 (Not Used) request (negative & relevant positive contactor to be closed or opened) (0 = open, 1 = close);0x270;0;Cyclic;0\n"
              "VSC_HvBus5_Null_OnReq_bool;VSC_BatCmd;-;4;1;Intel;Unsigned;0;1;0;0;1;bool;-;High voltage bus 5 (Not Used) request (negative & relevant positive contactor to be closed or opened) (0 = open, 1 = close);0x270;0;Cyclic;0\n"
              "VSC_IsolDisbl_Req_bool;VSC_BatCmd;-;5;1;Intel;Unsigned;0;1;0;0;1;bool;-;Battery Pack Isolation monitor disable request (0 = enable, 1 = disable);0x270;0;Cyclic;0\n"
              "VSC_ShutdownReq_bool;VSC_BatCmd;-;7;1;Intel;Unsigned;0;1;0;0;1;bool;-;Shutdown request to prepare system for shutting down (0 = no shutdown requested, 1 = shutdown requested);0x270;0;Cyclic;0\n"
              "VSC_StorageModeReq_bool;VSC_BatCmd;-;12;1;Intel;Unsigned;0;1;0;0;1;bool;-;Storage Mode request prepare system for storage mode (0 = no storage mode requested, 1 = storage mode requested);0x270;0;Cyclic;0\n";
              

int dbc_index = 0;

char feedRowParser() {
  return dbc[dbc_index++];
}

bool rowParserFinished() {
  return dbc[dbc_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];

    Serial.print(String(row_index));
    Serial.print(". Name: ");
    Serial.print(name);
    Serial.print(" | Startbit: ");
    Serial.print(startbit, DEC);
    Serial.print(" | Length: ");
    Serial.print(length, DEC);
    Serial.print(" | Initial Value: ");
    Serial.print(initial_value, DEC);
    Serial.print(" | Factor: ");
    Serial.print(factor);
    Serial.print(" | Offset: ");
    Serial.print(offset, DEC);
    Serial.print(" | Message ID: 0x");
    Serial.print(message_id, HEX);
    Serial.println();

    if (name == "BMS_AncVolt_V") {
      Serial.println("Caught");
    }

    row_index++;
  }
  Serial.println();
  for (int i = 0; i < row_index + 1; i++) {
    if (names[row_index] == "VSC_StorageModeReq_bool") {
      Serial.println(names[row_index]);
    }
  }
  cp.print();
}

void loop() {
}

if (name == "BMS_AncVolt_V")

You cannot compare arrays of chars like that. Use strcmp() instead

        if (strcmp(name, "BMS_AncVolt_V") == 0)

Thanks that worked. Can you also tell me where can I learn about such functions and expand my repertoire?

BTW, it didn't work the way I wanted it to. Please see attached image. It should have printed caught instead of "BMS_AncVolt_V".

Any book or tutorial on C would be a good place to start

What did you want it to do ?

Please don't post images of code or output. Select and copy the text and post it into a reply using code tags to make it more readable

Line 2 (BMS_AncVolt_V) of output is still printed instead of printing caught. I also want the index of the array to be printed. How do I do that with this if statement?

The code

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n";
              

int dbc_index = 0;

char feedRowParser() {
  return dbc[dbc_index++];
}

bool rowParserFinished() {
  return dbc[dbc_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];

    Serial.print(String(row_index));
    Serial.print(". Name: ");
    Serial.print(name);
    Serial.print(" | Startbit: ");
    Serial.print(startbit, DEC);
    Serial.print(" | Length: ");
    Serial.print(length, DEC);
    Serial.print(" | Initial Value: ");
    Serial.print(initial_value, DEC);
    Serial.print(" | Factor: ");
    Serial.print(factor);
    Serial.print(" | Offset: ");
    Serial.print(offset, DEC);
    Serial.print(" | Message ID: 0x");
    Serial.print(message_id, HEX);
    Serial.println();

   if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.println("Caught");
    }

    row_index++;
  }
  Serial.println();
  cp.print();
}

void loop() {
}

The ouput

08:56:22.225 -> Accessing values by column name:
08:56:22.225 -> 0. Name: Name | Startbit: 0 | Length: 0 | Initial Value: 0 | Factor: 0.00 | Offset: 0 | Message ID: 0x0
08:56:22.225 -> 1. Name: BMS_AncVolt_V | Startbit: 16 | Length: 16 | Initial Value: 0 | Factor: 0.10 | Offset: 0 | Message ID: 0x71D
08:56:22.257 -> Caught
08:56:22.257 -> 2. Name: BMS_BalancingStatus_enum | Startbit: 12 | Length: 4 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x291
08:56:22.257 -> 3. Name: BMS_Cell_ChrgCycles_num | Startbit: 0 | Length: 16 | Initial Value: 0 | Factor: 0.10 | Offset: 0 | Message ID: 0x71F
08:56:22.257 -> 4. Name: BMS_Cell_TempAvg_degC | Startbit: 48 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 5. Name: BMS_Cell_TempMax_CmuId_num | Startbit: 32 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 6. Name: BMS_Cell_TempMax_degC | Startbit: 24 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 7. Name: BMS_Cell_TempMax_Id_num | Startbit: 40 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 8. Name: BMS_Cell_TempMin_CmuId_num | Startbit: 8 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 9. Name: BMS_Cell_TempMin_degC | Startbit: 0 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 10. Name: BMS_Cell_TempMin_Id_num | Startbit: 16 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 
08:56:22.289 -> CSV_Parser content:
08:56:22.289 -> rows_count = 1, cols_count = 19
08:56:22.289 ->    Header:
08:56:22.290 ->       Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
08:56:22.290 ->    Types:
08:56:22.290 ->       char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
08:56:22.290 ->    Values:
08:56:22.290 ->       BMS_Cell_TempMin_Id_num | - | - | 16 | 8 | - | - | 0 | 1.00 | 0 | - | - | num | - | - | 717 | - | - | -
08:56:22.290 -> Memory occupied by values themselves = 95
08:56:22.290 -> sizeof(CSV_Parser) = 56

The latest sketch that you posted still has this in it

        if (names[row_index] == "VSC_StorageModeReq_bool")

Fix that first

Line 2 (BMS_AncVolt_V) of output is still printed instead of printing caught. I also want the index of the array to be printed. How do I do that with this if statement?

The code

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n";
              

int dbc_index = 0;

char feedRowParser() {
  return dbc[dbc_index++];
}

bool rowParserFinished() {
  return dbc[dbc_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];

    Serial.print(String(row_index));
    Serial.print(". Name: ");
    Serial.print(name);
    Serial.print(" | Startbit: ");
    Serial.print(startbit, DEC);
    Serial.print(" | Length: ");
    Serial.print(length, DEC);
    Serial.print(" | Initial Value: ");
    Serial.print(initial_value, DEC);
    Serial.print(" | Factor: ");
    Serial.print(factor);
    Serial.print(" | Offset: ");
    Serial.print(offset, DEC);
    Serial.print(" | Message ID: 0x");
    Serial.print(message_id, HEX);
    Serial.println();

   if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.println("Caught");
    }

    row_index++;
  }
  Serial.println();
  cp.print();
}

void loop() {
}

The ouput

08:56:22.225 -> Accessing values by column name:
08:56:22.225 -> 0. Name: Name | Startbit: 0 | Length: 0 | Initial Value: 0 | Factor: 0.00 | Offset: 0 | Message ID: 0x0
08:56:22.225 -> 1. Name: BMS_AncVolt_V | Startbit: 16 | Length: 16 | Initial Value: 0 | Factor: 0.10 | Offset: 0 | Message ID: 0x71D
08:56:22.257 -> Caught
08:56:22.257 -> 2. Name: BMS_BalancingStatus_enum | Startbit: 12 | Length: 4 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x291
08:56:22.257 -> 3. Name: BMS_Cell_ChrgCycles_num | Startbit: 0 | Length: 16 | Initial Value: 0 | Factor: 0.10 | Offset: 0 | Message ID: 0x71F
08:56:22.257 -> 4. Name: BMS_Cell_TempAvg_degC | Startbit: 48 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 5. Name: BMS_Cell_TempMax_CmuId_num | Startbit: 32 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 6. Name: BMS_Cell_TempMax_degC | Startbit: 24 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 7. Name: BMS_Cell_TempMax_Id_num | Startbit: 40 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.257 -> 8. Name: BMS_Cell_TempMin_CmuId_num | Startbit: 8 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 9. Name: BMS_Cell_TempMin_degC | Startbit: 0 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 10. Name: BMS_Cell_TempMin_Id_num | Startbit: 16 | Length: 8 | Initial Value: 0 | Factor: 1.00 | Offset: 0 | Message ID: 0x717
08:56:22.289 -> 
08:56:22.289 -> CSV_Parser content:
08:56:22.289 -> rows_count = 1, cols_count = 19
08:56:22.289 ->    Header:
08:56:22.290 ->       Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
08:56:22.290 ->    Types:
08:56:22.290 ->       char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
08:56:22.290 ->    Values:
08:56:22.290 ->       BMS_Cell_TempMin_Id_num | - | - | 16 | 8 | - | - | 0 | 1.00 | 0 | - | - | num | - | - | 717 | - | - | -
08:56:22.290 -> Memory occupied by values themselves = 95
08:56:22.290 -> sizeof(CSV_Parser) = 56

I am not clear exactly what you are trying to do but look at this portion of code

        if (strcmp(name, "BMS_AncVolt_V") == 0)
        {
            Serial.println("Caught");
        }

The only code dependent on finding a match is the line that prints "caught"

What is it that yo really want to do when a match is found ?

Hi,
I want to know why the following code is unable to fetch BMS_AncVolt_V through the names[] array and why is it printing BMS_Cell_TempMin_Id_num twice. Please help!

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n";
              

int dbc_index = 0;

char feedRowParser() {
  return dbc[dbc_index++];
}

bool rowParserFinished() {
  return dbc[dbc_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];
    
    if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.print("Caught! BMS_AncVolt_V found at index");
      Serial.print(String(row_index));
      Serial.println();
    }

    row_index++;
  }
  Serial.println();
  cp.print();
  for(int i = 0; i < 10; i++) {
    Serial.println(names[i]);
  }
}

void loop() {
}

12:08:09.246 -> Accessing values by column name:
12:08:09.246 -> Caught! BMS_AncVolt_V found at index1
12:08:09.280 -> 
12:08:09.280 -> CSV_Parser content:
12:08:09.280 -> rows_count = 1, cols_count = 19
12:08:09.280 ->    Header:
12:08:09.280 ->       Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
12:08:09.280 ->    Types:
12:08:09.280 ->       char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
12:08:09.280 ->    Values:
12:08:09.280 ->       BMS_Cell_TempMin_Id_num | - | - | 16 | 8 | - | - | 0 | 1.00 | 0 | - | - | num | - | - | 717 | - | - | -
12:08:09.280 -> Memory occupied by values themselves = 95
12:08:09.280 -> sizeof(CSV_Parser) = 56
12:08:09.280 -> BMS_Cell_TempMin_Id_num
12:08:09.280 -> 
12:08:09.280 -> BMS_Cell_ChrgCycles_num
12:08:09.280 -> BMS_Cell_TempAvg_degC
12:08:09.280 -> BMS_Cell_TempMax_CmuId_num
12:08:09.280 -> BMS_Cell_TempMax_degC
12:08:09.280 -> BMS_Cell_TempMax_Id_num
12:08:09.280 -> BMS_Cell_TempMin_CmuId_num
12:08:09.280 -> BMS_Cell_TempMin_degC
12:08:09.280 -> BMS_Cell_TempMin_Id_num

I don't know the answers, but only as a test idea - try to change the order of the rows. Put the row with BMS_AncVolt_V somewhere in the middle and move the row with BMS_Cell_TempMin_Id_num from the last place... then test again.

Doesn't work. No worries, I will just use fillers for 2nd row and start the count from there.

Please show the rearranged array and the result of the parsing

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n";
              
              

int row_index = 0;

char feedRowParser() {
  return dbc[row_index++];
}

bool rowParserFinished() {
  return dbc[row_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];
    
    if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.print("Caught! BMS_AncVolt_V found at index");
      Serial.print(String(row_index));
      Serial.println();
    }

    row_index++;
  }
  Serial.println();
  cp.print();
  for(int i = 0; i < 10; i++) {
    Serial.println(names[i]);
  }
}

void loop() {
}

Accessing values by column name:
Caught! BMS_AncVolt_V found at index3

CSV_Parser content:
rows_count = 1, cols_count = 19
   Header:
      Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
   Types:
      char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
   Values:
      BMS_Cell_TempMin_degC | - | - | 0 | 8 | - | - | 0 | 1.00 | 0 | - | - | degC | - | - | 717 | - | - | -
Memory occupied by values themselves = 95
sizeof(CSV_Parser) = 56
BMS_Cell_TempMin_degC

BMS_AncVolt_V
BMS_BalancingStatus_enum
BMS_Cell_ChrgCycles_num
BMS_Cell_TempAvg_degC
BMS_Cell_TempMax_CmuId_num
BMS_Cell_TempMax_degC
BMS_Cell_TempMax_Id_num
BMS_Cell_TempMin_degC

Based on the comparison of the two results, it looks like the Parser always prints the last row of the array in the print() method

Yes, it always skips row 2 as well. It should have returned 16 after the first 0.

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;16;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;8;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;16;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;12;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;0;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;48;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;32;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;24;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;40;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;0;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n";
              
              

int row_index = 0;

char feedRowParser() {
  return dbc[row_index++];
}

bool rowParserFinished() {
  return dbc[row_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];
    
    if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.print("Caught! BMS_AncVolt_V found at index");
      Serial.print(String(row_index));
      Serial.println();
    }

    row_index++;
  }
  Serial.println();
  cp.print();
  
  for(int i = 0; i < 10; i++) {
    Serial.println(startbits[i]);
  }
}

void loop() {
}

Accessing values by column name:
Caught! BMS_AncVolt_V found at index3

CSV_Parser content:
rows_count = 1, cols_count = 19
   Header:
      Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
   Types:
      char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
   Values:
      BMS_Cell_TempMin_degC | - | - | 0 | 8 | - | - | 0 | 1.00 | 0 | - | - | degC | - | - | 717 | - | - | -
Memory occupied by values themselves = 95
sizeof(CSV_Parser) = 56
0
8
16
12
0
48
32
24
40
0

@kush3110

Your two or more topics on the same or similar subject have been merged.

Please do not duplicate your questions as doing so wastes the time and effort of the volunteers trying to help you as they are then answering the same thing in different places.

Please create one topic only for your question and choose the forum category carefully. If you have multiple questions about the same project then please ask your questions in the one topic as the answers to one question provide useful context for the others, and also you won’t have to keep explaining your project repeatedly.

Repeated duplicate posting could result in a temporary or permanent ban from the forum.

Could you take a few moments to Learn How To Use The Forum

It will help you get the best out of the forum in the future.

Thank you.

It appears that CVS_Parser overwrites the first entry in the arrays when parsing row by row. I changed your data a bit so the the startbits go in order from 1..10

#include <string.h>
#include <CSV_Parser.h>

char * dbc =  "Name;Message;Multiplexing/Group;Startbit;Length [Bit];Byte Order;Value Type;Initial Value;Factor;Offset;Minimum;Maximum;Unit;Value Table;Comment;Message ID;GenSigInactiveValue;GenSigSendType;GenSigStartValue\n"
              "BMS_Cell_TempMin_Id_num;BMS_CellTemperatureInfo;-;1;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_CmuId_num;BMS_CellTemperatureInfo;-;2;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with lowest temperature;0x717;0;Cyclic;0\n"
              "BMS_AncVolt_V;BMS_PackInfo3;-;3;16;Intel;Unsigned;0;0.1;0;0;1000;V;-;Fuel Cell Voltage - measured by HVM;0x71D;0;Cyclic;0\n"
              "BMS_BalancingStatus_enum;BMS_Status2;-;4;4;Intel;Unsigned;0;1;0;0;15;enum;VtSig_BMS_BalancingStatus_enum;Balancing state;0x291;0;Cyclic;0\n"
              "BMS_Cell_ChrgCycles_num;BMS_PackInfo5;-;5;16;Intel;Unsigned;0;0.1;0;0;6553.4;num;-;-;0x71F;0;Cyclic;0\n"
              "BMS_Cell_TempAvg_degC;BMS_CellTemperatureInfo;-;6;8;Intel;Signed;0;1;0;-128;127;degC;-;Average cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_CmuId_num;BMS_CellTemperatureInfo;-;7;8;Intel;Unsigned;0;1;0;0;255;num;-;CMU ID of cell with highest temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_degC;BMS_CellTemperatureInfo;-;8;8;Intel;Signed;0;1;0;-128;127;degC;-;Maximum cell temperature;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMax_Id_num;BMS_CellTemperatureInfo;-;9;8;Intel;Unsigned;0;1;0;0;255;num;-;Cell number of cell with highest temperature.;0x717;0;Cyclic;0\n"
              "BMS_Cell_TempMin_degC;BMS_CellTemperatureInfo;-;10;8;Intel;Signed;0;1;0;-128;127;degC;-;Minimum cell temperature;0x717;0;Cyclic;0\n";
              
              

int row_index = 0;

int str_index = 0;

char feedRowParser() {
  return dbc[str_index++];
}

bool rowParserFinished() {
  return dbc[str_index] == 0;
}

void setup() {
  Serial.begin(115200);
  delay(5000);
                   
  CSV_Parser cp(dbc,"s--udud--dfd--s--ux---", true, ';');

  Serial.println("Accessing values by column name:");

  char      **names          = (char**)cp[0];
  uint16_t  *startbits       = (uint16_t*)cp[3];
  uint16_t  *lengths         = (uint16_t*)cp[4];
  int16_t   *initial_values  = (int16_t*)cp[7];
  float     *factors         = (float*)cp[8];
  int16_t   *offsets         = (int16_t*)cp[9];
  char      **units          = (char**)cp[12];
  int32_t   *message_ids     = (int32_t*)cp[15];

  int row_index = 0;
  
  while (cp.parseRow()) {
    char      *name          = names[0];
    uint16_t  startbit       = startbits[0];
    uint16_t  length         = lengths[0];
    int16_t   initial_value  = initial_values[0];
    float     factor         = factors[0];
    int16_t   offset         = offsets[0];
    char      *unit          = units[0];
    int32_t   message_id     = message_ids[0];
    
    if (strcmp(name, "BMS_AncVolt_V") == 0) {
      Serial.print("Caught! BMS_AncVolt_V found at index ");
      Serial.println(row_index);
      cp.print();
    }
    Serial.print("startbit = " ); Serial.print(startbit);
    Serial.print(", startbits["); Serial.print(row_index);
    Serial.print("] = "); Serial.println(startbits[row_index]);
    Serial.print("startbits[0] = " ); Serial.println(startbits[0]);
    row_index++;
  }
  Serial.println();
  cp.print();
  
  for(int i = 0; i < 10; i++) {
    Serial.println(startbits[i]);
  }
}

void loop() {
}

and you can see that startbits[0] get overwritten each time through a row.

Accessing values by column name:
startbit = 0, startbits[0] = 0
startbits[0] = 0
startbit = 1, startbits[1] = 2
startbits[0] = 1
startbit = 2, startbits[2] = 3
startbits[0] = 2
Caught! BMS_AncVolt_V found at index 3
CSV_Parser content:
rows_count = 1, cols_count = 19
   Header:
      Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
   Types:
      char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
   Values:
      BMS_AncVolt_V | - | - | 3 | 16 | - | - | 0 | 0.10 | 0 | - | - | V | - | - | 71D | - | - | -
Memory occupied by values themselves = 95
sizeof(CSV_Parser) = 56
startbit = 3, startbits[3] = 4
startbits[0] = 3
startbit = 4, startbits[4] = 5
startbits[0] = 4
startbit = 5, startbits[5] = 6
startbits[0] = 5
startbit = 6, startbits[6] = 7
startbits[0] = 6
startbit = 7, startbits[7] = 8
startbits[0] = 7
startbit = 8, startbits[8] = 9
startbits[0] = 8
startbit = 9, startbits[9] = 10
startbits[0] = 9
startbit = 10, startbits[10] = 22136
startbits[0] = 10

CSV_Parser content:
rows_count = 1, cols_count = 19
   Header:
      Name |  -  |  -  | Startbit | Length [Bit] |  -  |  -  | Initial Value | Factor | Offset |  -  |  -  | Unit |  -  |  -  | Message ID |  -  |  -  |  - 
   Types:
      char* | - | - | uint16_t | uint16_t | - | - | int16_t | float | int16_t | - | - | char* | - | - | hex (uint32_t) | - | - | -
   Values:
      BMS_Cell_TempMin_degC | - | - | 10 | 8 | - | - | 0 | 1.00 | 0 | - | - | degC | - | - | 717 | - | - | -
Memory occupied by values themselves = 95
sizeof(CSV_Parser) = 56
10
2
3
4
5
6
7
8
9
10

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.