private void parent_DiagnoseEvent(object sender, ReadCfgArgs e) { Random rd = new Random(); CANSDK.VCI_CAN_OBJ obj = e.Args; string tag = obj.ID.ToString("X2").Substring(3, 1); switch (tag) { case "1": diagnose.MON_PWM_SWP = (int)(obj.Data[0] * ResolutionRatioModel.mON_PWM_SWP_rr + ResolutionRatioModel.mON_PWM_SWP_offset); diagnose.MON_PWM_SWP_Fre = (double)(obj.Data[1] * ResolutionRatioModel.mON_PWM_SWP_Fre_rr + ResolutionRatioModel.mON_PWM_SWP_Fre_offset); //低字节在前,高字节在后 diagnose.MON_VB_24V = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_VB_24V_rr + ResolutionRatioModel.mON_VB_24V_offset; //显示小数点后3位 diagnose.MON_VB_24V = double.Parse(string.Format("{0:f3}", diagnose.MON_VB_24V)); diagnose.MON_VS_24V = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_VS_24V_rr + ResolutionRatioModel.mON_VS_24V_offset; diagnose.MON_VS_24V = double.Parse(string.Format("{0:f3}", diagnose.MON_VS_24V)); diagnose.MON_EN_VB_24V = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_EN_VB_24V_rr + ResolutionRatioModel.mON_EN_VB_24V_offset; diagnose.MON_EN_VB_24V = double.Parse(string.Format("{0:f3}", diagnose.MON_EN_VB_24V)); break; case "2": diagnose.MON_EN_POWER = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_EN_POWER_rr + ResolutionRatioModel.mON_EN_POWER_offset; diagnose.MON_EN_POWER = double.Parse(string.Format("{0:f3}", diagnose.MON_EN_POWER)); diagnose.MON_12VL = ((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_12VL_rr + ResolutionRatioModel.mON_12VL_offset; diagnose.MON_12VL = double.Parse(string.Format("{0:f3}", diagnose.MON_12VL)); diagnose.MON_Vref_25VL = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_Vref_25VL_rr + ResolutionRatioModel.mON_Vref_25VL_offset; diagnose.MON_Vref_25VL = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_25VL)); diagnose.MON_Vref_147VL = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_Vref_147VL_rr + ResolutionRatioModel.mON_Vref_147VL_offset; diagnose.MON_Vref_147VL = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_147VL)); break; case "3": diagnose.MON_Vref_353VL = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_Vref_353VL_rr + ResolutionRatioModel.mON_Vref_353VL_offset; diagnose.MON_Vref_353VL = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_353VL)); diagnose.MON_T_AMB = (int)(((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_T_AMB_rr + ResolutionRatioModel.mON_T_AMB_offset); diagnose.MON_T_AMB = double.Parse(string.Format("{0:f3}", diagnose.MON_T_AMB)); diagnose.MON_ABC_PRI_0 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_ABC_PRI_0_rr + ResolutionRatioModel.mON_ABC_PRI_0_offset * ResolutionRatioModel.mON_ABC_PRI_0_rr; diagnose.MON_ABC_PRI_0 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_PRI_0)); diagnose.MON_T_PRI_0 = (int)(((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_T_PRI_0_rr + ResolutionRatioModel.mON_T_PRI_0_offset * ResolutionRatioModel.mON_T_PRI_0_rr); diagnose.MON_T_PRI_0 = double.Parse(string.Format("{0:f3}", diagnose.MON_T_PRI_0)); break; case "4": diagnose.MON_5VH_1428 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_5VH_1428_rr + ResolutionRatioModel.mON_5VH_1428_offset; diagnose.MON_5VH_1428 = double.Parse(string.Format("{0:f3}", diagnose.MON_5VH_1428)); diagnose.MON_12VH = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_12VH_rr + ResolutionRatioModel.mON_12VH_offset; diagnose.MON_12VH = double.Parse(string.Format("{0:f3}", diagnose.MON_12VH)); diagnose.MON_Vref_03VH = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_Vref_03VH_rr + ResolutionRatioModel.mON_Vref_03VH_offset; diagnose.MON_Vref_03VH = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_03VH)); diagnose.MON_Vref_47VH = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_Vref_47VH_rr + ResolutionRatioModel.mON_Vref_47VH_offset; diagnose.MON_Vref_47VH = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_47VH)); break; case "5": diagnose.MON_ABC_SEC = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_ABC_SEC_rr + ResolutionRatioModel.mON_ABC_SEC_offset * ResolutionRatioModel.mON_ABC_SEC_rr; diagnose.MON_ABC_SEC = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_SEC)); diagnose.MON_ABV = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_ABV_rr + ResolutionRatioModel.mON_ABV_offset; diagnose.MON_ABV = double.Parse(string.Format("{0:f3}", diagnose.MON_ABV)); diagnose.MON_VREF2 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_VREF2_rr + ResolutionRatioModel.mON_VREF2_offset; diagnose.MON_VREF2 = double.Parse(string.Format("{0:f3}", diagnose.MON_VREF2)); diagnose.MON_VSET = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_VSET_rr + ResolutionRatioModel.mON_VSET_offset; diagnose.MON_VSET = double.Parse(string.Format("{0:f3}", diagnose.MON_VSET)); break; case "6": diagnose.MON_T_SEC = (int)(((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_T_SEC_rr + ResolutionRatioModel.mON_T_SEC_offset); diagnose.MON_T_SEC = double.Parse(string.Format("{0:f3}", diagnose.MON_T_SEC)); diagnose.MON_TV_Cell = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_TV_Cell_rr + ResolutionRatioModel.mON_TV_Cell_offset; diagnose.MON_TV_Cell = double.Parse(string.Format("{0:f3}", diagnose.MON_TV_Cell)); diagnose.MON_FAULT_INT_1428 = (int)(((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_FAULT_INT_1428_rr + ResolutionRatioModel.mON_FAULT_INT_1428_offset); diagnose.MON_FAULT_INT_1428 = double.Parse(string.Format("{0:f3}", diagnose.MON_FAULT_INT_1428)); diagnose.MON_GATE_LS_0 = (int)(obj.Data[6] * ResolutionRatioModel.mON_GATE_LS_0_rr + ResolutionRatioModel.mON_GATE_LS_0_offset); diagnose.MON_GATE_LS_0 = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_0)); diagnose.MON_GATE_LS_0_Fre = (double)(obj.Data[7] * ResolutionRatioModel.mON_GATE_LS_0_Fre_rr + ResolutionRatioModel.mON_GATE_LS_0_Fre_offset); diagnose.MON_GATE_LS_0_Fre = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_0_Fre)); break; case "7": diagnose.MON_ABC_PRI_1 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_ABC_PRI_1_rr + ResolutionRatioModel.mON_ABC_PRI_1_offset * ResolutionRatioModel.mON_ABC_PRI_1_rr; diagnose.MON_ABC_PRI_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_PRI_1)); diagnose.MON_T_PRI_1 = (int)(((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_T_PRI_1_rr + ResolutionRatioModel.mON_T_PRI_1_offset); diagnose.MON_T_PRI_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_T_PRI_1)); diagnose.MON_5VH_1428_1 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_5VH_1428_1_rr + ResolutionRatioModel.mON_5VH_1428_1_offset; diagnose.MON_5VH_1428_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_5VH_1428_1)); diagnose.MON_12VH1 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_12VH1_rr + ResolutionRatioModel.mON_12VH1_offset; diagnose.MON_12VH1 = double.Parse(string.Format("{0:f3}", diagnose.MON_12VH1)); break; case "8": diagnose.MON_Vref_03VH1 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_Vref_03VH1_rr + ResolutionRatioModel.mON_Vref_03VH1_offset; diagnose.MON_Vref_03VH1 = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_03VH1)); diagnose.MON_Vref_47VH1 = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_Vref_47VH1_rr + ResolutionRatioModel.mON_Vref_47VH1_offset; diagnose.MON_Vref_47VH1 = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_47VH1)); diagnose.MON_ABC_SEC_1 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_ABC_SEC_1_rr + ResolutionRatioModel.mON_ABC_SEC_1_offset * ResolutionRatioModel.mON_ABC_SEC_1_rr; diagnose.MON_ABC_SEC_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_SEC_1)); diagnose.MON_ABV_1 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_ABV_1_rr + ResolutionRatioModel.mON_ABV_1_offset; diagnose.MON_ABV_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABV_1)); break; case "9": diagnose.MON_VREF2_1 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_VREF2_1_rr + ResolutionRatioModel.mON_VREF2_1_offset; diagnose.MON_VREF2_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_VREF2_1)); diagnose.MON_VSET_1 = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_VSET_1_rr + ResolutionRatioModel.mON_VSET_1_offset; diagnose.MON_VSET_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_VSET_1)); diagnose.MON_T_SEC_1 = (int)(((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_T_SEC_1_rr + ResolutionRatioModel.mON_T_SEC_1_offset); diagnose.MON_T_SEC_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_T_SEC_1)); diagnose.MON_TV_Cell_1 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_TV_Cell_1_rr + ResolutionRatioModel.mON_TV_Cell_1_offset; diagnose.MON_TV_Cell_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_TV_Cell_1)); break; case "A": diagnose.MON_FAULT_INT_1428_1 = (int)(((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_FAULT_INT_1428_1_rr + ResolutionRatioModel.mON_FAULT_INT_1428_1_offset); diagnose.MON_FAULT_INT_1428_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_FAULT_INT_1428_1)); diagnose.MON_GATE_LS_1 = (int)(obj.Data[2] * ResolutionRatioModel.mON_GATE_LS_1_rr + ResolutionRatioModel.mON_GATE_LS_1_offset); diagnose.MON_GATE_LS_1 = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_1)); diagnose.MON_GATE_LS_1_Fre = (double)(obj.Data[3] * ResolutionRatioModel.mON_GATE_LS_1_Fre_rr + ResolutionRatioModel.mON_GATE_LS_1_Fre_offset); diagnose.MON_GATE_LS_1_Fre = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_1_Fre)); diagnose.MON_ABC_PRI_2 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_ABC_PRI_2_rr + ResolutionRatioModel.mON_ABC_PRI_2_offset * ResolutionRatioModel.mON_ABC_PRI_2_rr; diagnose.MON_ABC_PRI_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_PRI_2)); diagnose.MON_T_PRI_2 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_T_PRI_2_rr + ResolutionRatioModel.mON_T_PRI_2_offset; diagnose.MON_T_PRI_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_T_PRI_2)); break; case "B": diagnose.MON_5VH_1428_2 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_5VH_1428_2_rr + ResolutionRatioModel.mON_5VH_1428_2_offset; diagnose.MON_5VH_1428_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_5VH_1428_2)); diagnose.MON_12VH2 = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_12VH2_rr + ResolutionRatioModel.mON_12VH2_offset; diagnose.MON_12VH2 = double.Parse(string.Format("{0:f3}", diagnose.MON_12VH2)); diagnose.MON_Vref_03VH2 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_Vref_03VH2_rr + ResolutionRatioModel.mON_Vref_03VH2_offset; diagnose.MON_Vref_03VH2 = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_03VH2)); diagnose.MON_Vref_47VH2 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_Vref_47VH2_rr + ResolutionRatioModel.mON_Vref_47VH2_offset; diagnose.MON_Vref_47VH2 = double.Parse(string.Format("{0:f3}", diagnose.MON_Vref_47VH2)); break; case "C": diagnose.MON_ABC_SEC_2 = (double)((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_ABC_SEC_2_rr + ResolutionRatioModel.mON_ABC_SEC_2_offset * ResolutionRatioModel.mON_ABC_SEC_2_rr; diagnose.MON_ABC_SEC_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABC_SEC_2)); diagnose.MON_ABV_2 = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_ABV_2_rr + ResolutionRatioModel.mON_ABV_2_offset; diagnose.MON_ABV_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_ABV_2)); diagnose.MON_VREF2_2 = (double)((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_VREF2_2_rr + ResolutionRatioModel.mON_VREF2_2_offset; diagnose.MON_VREF2_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_VREF2_2)); diagnose.MON_VSET_2 = (double)((obj.Data[7] & 0x00FF) << 8 | obj.Data[6]) * ResolutionRatioModel.mON_VSET_2_rr + ResolutionRatioModel.mON_VSET_2_offset; diagnose.MON_VSET_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_VSET_2)); break; case "D": diagnose.MON_T_SEC_2 = (int)(((obj.Data[1] & 0x00FF) << 8 | obj.Data[0]) * ResolutionRatioModel.mON_T_SEC_2_rr + ResolutionRatioModel.mON_T_SEC_2_offset); diagnose.MON_T_SEC_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_T_SEC_2)); diagnose.MON_TV_Cell_2 = (double)((obj.Data[3] & 0x00FF) << 8 | obj.Data[2]) * ResolutionRatioModel.mON_TV_Cell_2_rr + ResolutionRatioModel.mON_TV_Cell_2_offset; diagnose.MON_TV_Cell_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_TV_Cell_2)); diagnose.MON_FAULT_INT_1428_2 = (int)(((obj.Data[5] & 0x00FF) << 8 | obj.Data[4]) * ResolutionRatioModel.mON_FAULT_INT_1428_2_rr + ResolutionRatioModel.mON_FAULT_INT_1428_2_offset); diagnose.MON_FAULT_INT_1428_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_FAULT_INT_1428_2)); diagnose.MON_GATE_LS_2 = (int)(obj.Data[6] * ResolutionRatioModel.mON_GATE_LS_2_rr + ResolutionRatioModel.mON_GATE_LS_2_offset); diagnose.MON_GATE_LS_2 = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_2)); diagnose.MON_GATE_LS_2_Fre = (double)(obj.Data[7] * ResolutionRatioModel.mON_GATE_LS_2_Fre_rr + ResolutionRatioModel.mON_GATE_LS_2_Fre_offset); diagnose.MON_GATE_LS_2_Fre = double.Parse(string.Format("{0:f3}", diagnose.MON_GATE_LS_2_Fre)); break; case "F": byte[] b = obj.Data; int[] resultArray = new int[56]; for (int i = 0; i < 56; i++) { resultArray[i] = obj.Data[i / 8] >> (i % 8) & 0x01; } int[] q = resultArray; Application.Current.Dispatcher.Invoke((Action) delegate { int j = -1; foreach (UIElement element in dfGlobal.parent.Children) { if (element is StackPanel) { StackPanel elm = element as StackPanel; foreach (var item in elm.Children) { Button btn = item as Button; if (btn != null) { j++; Console.Write(j + ","); if (resultArray[j] == 0) { btn.SetValue(Button.StyleProperty, Application.Current.Resources["SignalEnableButton"]); } } } } } }); break; } }
void parent_ReadCfgEvent(object sender, ReadCfgArgs e) { CANSDK.VCI_CAN_OBJ obj = e.Args; byte id = obj.Data[0]; switch (id) { case 0x41: double cell1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.cellVolHighAlarmFirst_rr; CellVolHighAlarmFirst = cell1.ToString(); double cell2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.cellVolHighAlarmSecond_rr; CellVolHighAlarmSecond = cell2.ToString(); double cell3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.cellVolHighAlarmThird_rr; CellVolHighAlarmThird = cell3.ToString(); break; case 0x42: double cellremove1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.cellVolHighAlarmRemoveFirst_rr; CellVolHighAlarmRemoveFirst = cellremove1.ToString(); double cellremove12 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.cellVolHighAlarmRemoveSecond_rr; CellVolHighAlarmRemoveSecond = cellremove12.ToString(); double cellremove13 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.cellVolHighAlarmRemoveThird_rr; CellVolHighAlarmRemoveThird = cellremove13.ToString(); break; case 0x43: double cellalarm1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.cellVolLowAlarmFirst_rr; CellVolLowAlarmFirst = cellalarm1.ToString(); double cellalarm2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.cellVolLowAlarmSecond_rr; CellVolLowAlarmSecond = cellalarm2.ToString(); double cellalarm3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.cellVolLowAlarmThird_rr; CellVolLowAlarmThird = cellalarm3.ToString(); break; case 0x44: double c1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.cellVolLowAlarmRemoveFirst_rr; CellVolLowAlarmRemoveFirst = c1.ToString(); double c2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.cellVolLowAlarmRemoveFirst_rr; CellVolLowAlarmRemoveSecond = c2.ToString(); double c3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.cellVolLowAlarmRemoveThird_rr; CellVolLowAlarmRemoveThird = c3.ToString(); break; case 0x45: int t1 = (int)(obj.Data[1] + ResolutionRatioModel.cellTemperatureHighAlarmFirst_offset); CellTemperatureHighAlarmFirst = t1.ToString(); int t2 = (int)(obj.Data[2] + ResolutionRatioModel.cellTemperatureHighAlarmSecond_offset); CellTemperatureHighAlarmSecond = t2.ToString(); int t3 = (int)(obj.Data[3] + ResolutionRatioModel.cellTemperatureHighAlarmThird_offset); CellTemperatureHighAlarmThird = t3.ToString(); int tr1 = (int)(obj.Data[4] + ResolutionRatioModel.cellTemperatureHighAlarmRemoveFirst_offset); CellTemperatureHighAlarmRemoveFirst = tr1.ToString(); int tr2 = (int)(obj.Data[5] + ResolutionRatioModel.cellTemperatureHighAlarmRemoveSecond_offset); CellTemperatureHighAlarmRemoveSecond = tr2.ToString(); int tr3 = (int)(obj.Data[6] + ResolutionRatioModel.cellTemperatureHighAlarmRemoveThird_offset); CellTemperatureHighAlarmRemoveThird = tr3.ToString(); break; case 0x46: int tl1 = (int)(obj.Data[1] + ResolutionRatioModel.cellTemperatureLowAlarmFirst_offset); CellTemperatureLowAlarmFirst = tl1.ToString(); int tl2 = (int)(obj.Data[2] + ResolutionRatioModel.cellTemperatureLowAlarmSecond_offset); CellTemperatureLowAlarmSecond = tl2.ToString(); int tl3 = (int)(obj.Data[3] + ResolutionRatioModel.cellTemperatureLowAlarmThird_offset); CellTemperatureLowAlarmThird = tl3.ToString(); int tlr1 = (int)(obj.Data[4] + ResolutionRatioModel.cellTemperatureLowAlarmRemoveFirst_offset); CellTemperatureLowAlarmRemoveFirst = tlr1.ToString(); int tlr2 = (int)(obj.Data[5] + ResolutionRatioModel.cellTemperatureLowAlarmRemoveSecond_offset); CellTemperatureLowAlarmRemoveSecond = tlr2.ToString(); int tlr3 = (int)(obj.Data[6] + ResolutionRatioModel.cellTemperatureLowAlarmRemoveThird_offset); CellTemperatureLowAlarmRemoveThird = tlr3.ToString(); break; case 0x47: double ba1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanCurrentHighAlarmFirst_rr; BalanCurrentHighAlarmFirst = ba1.ToString(); double ba2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.balanCurrentHighAlarmSecond_rr; BalanCurrentHighAlarmSecond = ba2.ToString(); double ba3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.balanCurrentHighAlarmThird_rr; BalanCurrentHighAlarmThird = ba3.ToString(); break; case 0x48: double bra1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanCurrentHighAlarmRemoveFirst_rr; BalanCurrentHighAlarmRemoveFirst = bra1.ToString(); double bra2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.balanCurrentHighAlarmRemoveSecond_rr; BalanCurrentHighAlarmRemoveSecond = bra2.ToString(); double bra3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.balanCurrentHighAlarmRemoveThird_rr; BalanCurrentHighAlarmRemoveThird = bra3.ToString(); break; case 0x49: double bla1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanCurrentLowAlarmFirst_rr; BalanCurrentLowAlarmFirst = bla1.ToString(); double bla2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.balanCurrentLowAlarmSecond_rr; BalanCurrentLowAlarmSecond = bla2.ToString(); double bla3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.balanCurrentLowAlarmThird_rr; BalanCurrentLowAlarmThird = bla3.ToString(); break; case 0x4A: double bb1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanCurrentLowAlarmRemoveFirst_rr; BalanCurrentLowAlarmRemoveFirst = bb1.ToString(); double bb2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.balanCurrentLowAlarmRemoveSecond_rr; BalanCurrentLowAlarmRemoveSecond = bb2.ToString(); double bb3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.balanCurrentLowAlarmRemoveThird_rr; BalanCurrentLowAlarmRemoveThird = bb3.ToString(); break; case 0x4B: double cc1 = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanCurrentSetValueFirst_rr; BalanCurrentSetValueFirst = cc1.ToString(); double cc2 = (double)(((obj.Data[4] & 0x00FF) << 8) | obj.Data[3]) * ResolutionRatioModel.balanCurrentSetValueSecond_rr; BalanCurrentSetValueSecond = cc2.ToString(); double cc3 = (double)(((obj.Data[6] & 0x00FF) << 8) | obj.Data[5]) * ResolutionRatioModel.balanCurrentSetValueThird_rr; BalanCurrentSetValueThird = cc3.ToString(); break; case 0x4C: double bvv = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanVolOpenValue_rr; BalanVolOpenValue = bvv.ToString(); break; case 0x4D: double bcv = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanVolCloseValue_rr; BalanVolCloseValue = bcv.ToString(); break; case 0x4E: double bdov = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanVolDifOpenValue_rr; BalanVolDifOpenValue = bdov.ToString(); break; case 0x4F: double bvdcv = (double)(((obj.Data[2] & 0x00FF) << 8) | obj.Data[1]) * ResolutionRatioModel.balanVolDifCloseValue_rr; BalanVolDifCloseValue = bvdcv.ToString(); break; case 0x50: int cbto = (int)(obj.Data[1] + ResolutionRatioModel.cellBalanTemperatureOpenValue_offset); CellBalanTemperatureOpenValue = cbto.ToString(); int ctcv = (int)(obj.Data[2] + ResolutionRatioModel.cellBalanTemperatureCloseValue_offset); CellBalanTemperatureCloseValue = ctcv.ToString(); break; case 0x51: int sn = (int)(obj.Data[1] + ResolutionRatioModel.slaveNum_offset); SlaveNum = sn.ToString(); int mode = (int)(obj.Data[2] + ResolutionRatioModel.cellBalanMode_offset); switch (mode) { case 'N': CellBalanMode = "不均衡"; break; case 'A': CellBalanMode = "主动均衡"; break; case 'P': CellBalanMode = "被动均衡"; break; default: CellBalanMode = "获取错误"; break; } int cmmcn = (int)(obj.Data[3] + ResolutionRatioModel.childModuleMonCellNumber_offset); ChildModuleMonCellNumber = cmmcn.ToString(); int cmmtn = (int)(obj.Data[4] + ResolutionRatioModel.childMonModuleTemperatureNumber_offset); ChildMonModuleTemperatureNumber = cmmtn.ToString(); int mamcn = (int)(obj.Data[5] + ResolutionRatioModel.moduleAMonCellNum_offset); ModuleAMonCellNum = mamcn.ToString(); int matn = (int)(obj.Data[6] + ResolutionRatioModel.moduleAMonTemperatureNum_offset); ModuleAMonTemperatureNum = matn.ToString(); break; case 0x52: int mbcn = (int)(obj.Data[1] + ResolutionRatioModel.moduleBMonCellNum_offset); ModuleBMonCellNum = mbcn.ToString(); int mbtn = (int)(obj.Data[2] + ResolutionRatioModel.moduleBMonTemperatureNum_offset); ModuleBMonTemperatureNum = mbtn.ToString(); int mccn = (int)(obj.Data[3] + ResolutionRatioModel.moduleCMonCellNum_offset); ModuleCMonCellNum = mccn.ToString(); int mctn = (int)(obj.Data[4] + ResolutionRatioModel.moduleCMonTemperatureNum_offset); ModuleCMonTemperatureNum = mctn.ToString(); int mdcn = (int)(obj.Data[5] + ResolutionRatioModel.moduleDMonCellNum_offset); ModuleDMonCellNum = mdcn.ToString(); int mdtn = (int)(obj.Data[6] + ResolutionRatioModel.moduleDMonTemperatureNum_offset); ModuleDMonTemperatureNum = mdtn.ToString(); break; case 0x53: int mecn = (int)(obj.Data[1] + ResolutionRatioModel.moduleEMonCellNum_offset); ModuleEMonCellNum = mecn.ToString(); int metn = (int)(obj.Data[2] + ResolutionRatioModel.moduleEMonTemperatureNum_offset); ModuleEMonTemperatureNum = metn.ToString(); int ppy = (int)((((obj.Data[3] & 0x00FF) << 8) | obj.Data[4]) + ResolutionRatioModel.packProYear_offset); PackProYear = ppy.ToString(); int ppm = (int)(obj.Data[5] + ResolutionRatioModel.packProMonth_offset); PackProMonth = ppm.ToString(); int ppd = (int)(obj.Data[6] + ResolutionRatioModel.packProDay_offset); PackProDay = ppd.ToString(); break; case 0x54: int p1 = obj.Data[1]; PackBatchNumberData1 = p1.ToString(); double p2 = obj.Data[2]; PackBatchNumberData2 = p2.ToString(); int p3 = obj.Data[3]; PackBatchNumberData3 = p3.ToString(); double p4 = obj.Data[4]; PackBatchNumberData4 = p4.ToString(); int p5 = obj.Data[5]; PackBatchNumberData5 = p5.ToString(); double p6 = obj.Data[6]; PackBatchNumberData6 = p6.ToString(); break; } }