Esempio n. 1
0
        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;
            }
        }