public static Rs485ModelForParal GetPartData(int chargerId, int inverterId, SerialPort sp) { Rs485ModelForParal rs485ModelForParal1 = new Rs485ModelForParal(chargerId, inverterId); byte[] crcb1 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 27 11 00 0A", (object)chargerId.ToString().PadLeft(2, '0'))); byte[] crcb2 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 27 75 00 0C", (object)chargerId.ToString().PadLeft(2, '0'))); byte[] crcb3 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 3B 61 00 15", (object)chargerId.ToString().PadLeft(2, '0'))); byte[] crcb4 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 4E 21 00 10", (object)inverterId.ToString().PadLeft(2, '0'))); byte[] crcb5 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 4E 85 00 2B", (object)inverterId.ToString().PadLeft(2, '0'))); byte[] crcb6 = Rs485ComServer.Operator.GenerateCRCB(string.Format("{0} 03 62 71 00 4A", (object)inverterId.ToString().PadLeft(2, '0'))); if (!sp.IsOpen) { sp.Open(); } string[] partArr1 = Rs485ComServer.GetPartArr(sp, crcb1, 10, 20); if (partArr1 != null && partArr1.Length == 10) { string[] partArr2 = Rs485ComServer.GetPartArr(sp, crcb2, 12, 20); Thread.Sleep(100); string[] partArr3 = Rs485ComServer.GetPartArr(sp, crcb3, 21, 20); Thread.Sleep(100); string[] partArr4 = Rs485ComServer.GetPartArr(sp, crcb4, 16, 20); Thread.Sleep(100); string[] partArr5 = Rs485ComServer.GetPartArr(sp, crcb5, 43, 20); Thread.Sleep(100); string[] partArr6 = Rs485ComServer.GetPartArr(sp, crcb6, 74, 40); rs485ModelForParal1.MachineType = partArr1[0]; rs485ModelForParal1.SerialNumber = partArr1[1] + partArr1[2]; int int16_1 = (int)Convert.ToInt16(partArr1[3], 16); rs485ModelForParal1.HardwareVersion = string.IsNullOrEmpty(partArr1[3]) ? string.Empty : (partArr1[3] == "0" || int16_1 == 0 ? "1.00.00" : Convert.ToInt16(partArr1[3], 16).ToString().Insert(3, ".").Insert(1, ".")); int int16_2 = (int)Convert.ToInt16(partArr1[4], 16); rs485ModelForParal1.SoftwareVersion = string.IsNullOrEmpty(partArr1[4]) ? string.Empty : (partArr1[4] == "0" || int16_2 == 0 ? "1.00.00" : Convert.ToInt16(partArr1[4], 16).ToString().Insert(3, ".").Insert(1, ".")); rs485ModelForParal1.PvVoltageC = partArr1[5]; rs485ModelForParal1.BatteryVoltageC = partArr1[6]; rs485ModelForParal1.ChargerCurrentC = partArr1[7]; double num; if (partArr2 != null && partArr2.Length == 12) { rs485ModelForParal1.ChargerWorkEnable = Convert.ToInt16(partArr2[0], 16).ToString(); rs485ModelForParal1.AbsorbVoltage = ((double)Convert.ToInt16(partArr2[1], 16) * 0.1).ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal1.FloatVoltage = ((double)Convert.ToInt16(partArr2[2], 16) * 0.1).ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal1.AbsorptionVoltage = ((double)Convert.ToInt16(partArr2[3], 16) * 0.1).ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal1.BatteryLowVoltage = ((double)Convert.ToInt16(partArr2[4], 16) * 0.1).ToString((IFormatProvider)CultureInfo.InvariantCulture); Rs485ModelForParal rs485ModelForParal2 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr2[6], 16) * 0.1; string str1 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal2.BatteryHighVoltage = str1; Rs485ModelForParal rs485ModelForParal3 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr2[7], 16) * 0.1; string str2 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal3.MaxChargerCurrent = str2; Rs485ModelForParal rs485ModelForParal4 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr2[8], 16) * 0.1; string str3 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal4.AbsorbChargerCurrent = str3; rs485ModelForParal1.BatteryType = Convert.ToInt16(partArr2[9], 16).ToString(); rs485ModelForParal1.BatteryAh = Convert.ToInt16(partArr2[10], 16).ToString(); rs485ModelForParal1.RemoveTheAccumulatedData = Convert.ToInt16(partArr2[11], 16).ToString(); } short int16_3; if (partArr3 != null && partArr3.Length == 21) { rs485ModelForParal1.ChargerWorkstate = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr3[0], 16), Rs485Parse.ChargerWorkstate); rs485ModelForParal1.MpptState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr3[1], 16), Rs485Parse.MpptState); rs485ModelForParal1.ChargingState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr3[2], 16), Rs485Parse.ChargingState); Rs485ModelForParal rs485ModelForParal2 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr3[4], 16) * 0.1; string str1 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal2.PvVoltage = str1; Rs485ModelForParal rs485ModelForParal3 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr3[5], 16) * 0.1; string str2 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal3.BatteryVoltage = str2; Rs485ModelForParal rs485ModelForParal4 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr3[6], 16) * 0.1; string str3 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); // + "A"; rs485ModelForParal4.ChargerCurrent = str3; rs485ModelForParal1.ChargerPower = Convert.ToInt16(partArr3[7], 16).ToString(); // + " W"; rs485ModelForParal1.RadiatorTemperature = Convert.ToInt16(partArr3[8], 16).ToString(); // + " ℃"; rs485ModelForParal1.ExternalTemperature = Convert.ToInt16(partArr3[9], 16).ToString(); // + " ℃"; rs485ModelForParal1.BatteryRelay = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr3[10], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.PvRelay = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr3[11], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.ErrorMessage = Rs485ComServer.Operator.AnalyBitMessage(partArr3[12], Rs485Parse.ChargerError); rs485ModelForParal1.WarningMessage = Rs485ComServer.Operator.AnalyBitMessage(partArr3[13], Rs485Parse.ChargerWarning); rs485ModelForParal1.BattVolGrade = Convert.ToInt16(partArr3[14], 16).ToString();// + " V"; Rs485ModelForParal rs485ModelForParal5 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr3[15], 16) * 0.1; string str4 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " A"; rs485ModelForParal5.RatedCurrent = str4; Rs485ModelForParal rs485ModelForParal6 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr3[16], 16) * 1000) + (double)Convert.ToInt16(partArr3[17], 16) * 0.1; string str5 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " KWH"; rs485ModelForParal6.AccumulatedPower = str5; Rs485ModelForParal rs485ModelForParal7 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr3[18], 16); string str6 = int16_3.ToString().PadLeft(2, '0'); int16_3 = Convert.ToInt16(partArr3[19], 16); string str7 = int16_3.ToString().PadLeft(2, '0'); int16_3 = Convert.ToInt16(partArr3[20], 16); string str8 = int16_3.ToString().PadLeft(2, '0'); string str9 = string.Format("{0}:{1}:{2}", (object)str6, (object)str7, (object)str8); rs485ModelForParal7.AccumulatedTime = str9; } if (partArr4 != null && partArr4.Length == 16) { int int16_4 = (int)Convert.ToInt16(partArr1[4], 16); int int16_5 = (int)Convert.ToInt16(partArr1[0], 16); string str1 = string.Empty; switch (int16_5) { case 1600: str1 = "PC1600"; break; case 1800: str1 = int16_4 > 20000 ? "PV1800" : "PH1800"; break; case 3000: str1 = "PH3000"; break; case 3500: str1 = "PV3500"; break; } rs485ModelForParal1.InverterMachineType = str1; rs485ModelForParal1.InverterSerialNumber = partArr4[1] + partArr4[2]; int int16_6 = (int)Convert.ToInt16(partArr4[3], 16); Rs485ModelForParal rs485ModelForParal2 = rs485ModelForParal1; string str2; if (!string.IsNullOrEmpty(partArr4[3])) { if (!(partArr4[3] == "0") && int16_6 != 0) { int16_3 = Convert.ToInt16(partArr4[3], 16); str2 = int16_3.ToString().Insert(3, ".").Insert(1, "."); } else { str2 = "1.00.00"; } } else { str2 = string.Empty; } rs485ModelForParal2.InverterHardwareVersion = str2; int int16_7 = (int)Convert.ToInt16(partArr4[4], 16); Rs485ModelForParal rs485ModelForParal3 = rs485ModelForParal1; string str3; if (!string.IsNullOrEmpty(partArr4[4])) { if (!(partArr4[4] == "0") && int16_7 != 0) { int16_3 = Convert.ToInt16(partArr4[4], 16); str3 = int16_3.ToString().Insert(3, ".").Insert(1, "."); } else { str3 = "1.00.00"; } } else { str3 = string.Empty; } rs485ModelForParal3.InverterSoftwareVersion = str3; rs485ModelForParal1.InverterBatteryVoltageC = partArr4[8]; rs485ModelForParal1.InverterVoltageC = partArr4[9]; rs485ModelForParal1.GridVoltageC = partArr4[10]; rs485ModelForParal1.BusVoltageC = partArr4[11]; rs485ModelForParal1.ControlCurrentC = partArr4[12]; rs485ModelForParal1.InverterCurrentC = partArr4[13]; rs485ModelForParal1.GridCurrentC = partArr4[14]; rs485ModelForParal1.LoadCurrentC = partArr4[15]; } if (partArr5 != null && partArr5.Length == 43) { Rs485ModelForParal rs485ModelForParal2 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[0], 16); string str1 = int16_3.ToString(); rs485ModelForParal2.InverterOffgridWorkEnable = str1; Rs485ModelForParal rs485ModelForParal3 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[1], 16) * 0.1; string str2 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal3.InverterOutputVoltageSet = str2; Rs485ModelForParal rs485ModelForParal4 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[2], 16); string str3 = int16_3.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal4.InverterOutputFrequencySet = str3; Rs485ModelForParal rs485ModelForParal5 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[3], 16); string str4 = int16_3.ToString(); rs485ModelForParal5.InverterSearchModeEnable = str4; Rs485ModelForParal rs485ModelForParal6 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[7], 16); string str5 = int16_3.ToString(); rs485ModelForParal6.InverterDischargerToGridEnable = str5; Rs485ModelForParal rs485ModelForParal7 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[8], 16); string str6 = int16_3.ToString(); rs485ModelForParal7.EnergyUseMode = str6; Rs485ModelForParal rs485ModelForParal8 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[10], 16); string str7 = int16_3.ToString(); rs485ModelForParal8.GridProtectStandard = str7; Rs485ModelForParal rs485ModelForParal9 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[11], 16); string str8 = int16_3.ToString(); rs485ModelForParal9.SolarUseAim = str8; Rs485ModelForParal rs485ModelForParal10 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[12], 16) * 0.1; string str9 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal10.InverterMaxDischargerCurrent = str9; Rs485ModelForParal rs485ModelForParal11 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[17], 16) * 0.1; string str10 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal11.NormalVoltagePoint = str10; Rs485ModelForParal rs485ModelForParal12 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[18], 16) * 0.1; string str11 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal12.StartSellVoltagePoint = str11; Rs485ModelForParal rs485ModelForParal13 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[24], 16) * 0.1; string str12 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal13.GridMaxChargerCurrentSet = str12; Rs485ModelForParal rs485ModelForParal14 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[26], 16) * 0.1; string str13 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal14.InverterBatteryLowVoltage = str13; Rs485ModelForParal rs485ModelForParal15 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[27], 16) * 0.1; string str14 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal15.InverterBatteryHighVoltage = str14; Rs485ModelForParal rs485ModelForParal16 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr5[31], 16) * 0.1; string str15 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); rs485ModelForParal16.MaxCombineChargerCurrent = str15; rs485ModelForParal1.SystemSetting = Rs485ComServer.Operator.AnalyBitMessage(partArr5[41]); Rs485ModelForParal rs485ModelForParal17 = rs485ModelForParal1; int16_3 = Convert.ToInt16(partArr5[42], 16); string str16 = int16_3.ToString(); rs485ModelForParal17.ChargerSourcePriority = str16; } if (partArr6 != null && partArr6.Length == 74) { rs485ModelForParal1.WorkState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[0], 16), Rs485Parse.WorkState); rs485ModelForParal1.AcVoltageGrade = Convert.ToInt16(partArr6[1], 16).ToString();// + " V"; int int16_4 = (int)Convert.ToInt16(partArr6[2], 16); string inverterMachineType = rs485ModelForParal1.InverterMachineType; //string str1 = inverterMachineType == "PV1800" || inverterMachineType == "PH1800" ? int16_4.ToString() + " VA" : (inverterMachineType == "PH3000" ? int16_4.ToString() + " W" : int16_4.ToString() + "W"); string str1 = inverterMachineType == "PV1800" || inverterMachineType == "PH1800" ? int16_4.ToString() : (inverterMachineType == "PH3000" ? int16_4.ToString() : int16_4.ToString()); rs485ModelForParal1.RatedPower = str1; Rs485ModelForParal rs485ModelForParal2 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[4], 16) * 0.1; string str2 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal2.InverterBatteryVoltage = str2; Rs485ModelForParal rs485ModelForParal3 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[5], 16) * 0.1; string str3 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal3.InverterVoltage = str3; Rs485ModelForParal rs485ModelForParal4 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[6], 16) * 0.1; string str4 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal4.GridVoltage = str4; Rs485ModelForParal rs485ModelForParal5 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[7], 16) * 0.1; string str5 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " V"; rs485ModelForParal5.BusVoltage = str5; Rs485ModelForParal rs485ModelForParal6 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[8], 16) * 0.1; string str6 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " A"; rs485ModelForParal6.ControlCurrent = str6; Rs485ModelForParal rs485ModelForParal7 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[9], 16) * 0.1; string str7 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " A"; rs485ModelForParal7.InverterCurrent = str7; Rs485ModelForParal rs485ModelForParal8 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[10], 16) * 0.1; string str8 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " A"; rs485ModelForParal8.GridCurrent = str8; Rs485ModelForParal rs485ModelForParal9 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[11], 16) * 0.1; string str9 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture); // + " A"; rs485ModelForParal9.LoadCurrent = str9; rs485ModelForParal1.PInverter = Convert.ToInt16(partArr6[12], 16).ToString(); // + " W"; rs485ModelForParal1.PGrid = Convert.ToInt16(partArr6[13], 16).ToString(); // + " W"; rs485ModelForParal1.PLoad = Convert.ToInt16(partArr6[14], 16).ToString(); // + " W"; rs485ModelForParal1.LoadPercent = Convert.ToInt16(partArr6[15], 16).ToString(); // + " %"; rs485ModelForParal1.SInverter = Convert.ToInt16(partArr6[16], 16).ToString(); // + " VA"; rs485ModelForParal1.SGrid = Convert.ToInt16(partArr6[17], 16).ToString(); // + " VA"; rs485ModelForParal1.Sload = Convert.ToInt16(partArr6[18], 16).ToString(); // + " VA"; rs485ModelForParal1.Qinverter = Convert.ToInt16(partArr6[20], 16).ToString(); // + " var"; rs485ModelForParal1.Qgrid = Convert.ToInt16(partArr6[21], 16).ToString(); // + " var"; rs485ModelForParal1.Qload = Convert.ToInt16(partArr6[22], 16).ToString(); // + " var"; Rs485ModelForParal rs485ModelForParal10 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[24], 16) * 0.01; string str10 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " Hz"; rs485ModelForParal10.InverterFrequency = str10; Rs485ModelForParal rs485ModelForParal11 = rs485ModelForParal1; num = (double)Convert.ToInt16(partArr6[25], 16) * 0.01; string str11 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " Hz"; rs485ModelForParal11.GridFrequency = str11; rs485ModelForParal1.InverterMaxNumber = partArr6[28]; rs485ModelForParal1.CombineType = partArr6[29]; rs485ModelForParal1.InverterNumber = partArr6[30]; rs485ModelForParal1.AcRadiatorTemperature = Convert.ToInt16(partArr6[32], 16).ToString(); // + " ℃"; rs485ModelForParal1.TransformerTemperature = Convert.ToInt16(partArr6[33], 16).ToString(); // + " ℃"; rs485ModelForParal1.DcRadiatorTemperature = Convert.ToInt16(partArr6[34], 16).ToString(); // + " ℃"; rs485ModelForParal1.InverterRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[36], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.GridRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[37], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.LoadRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[38], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.N_LineRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[39], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.DCRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[40], 16), Rs485Parse.ConnectStates); rs485ModelForParal1.EarthRelayState = Rs485ComServer.GetValue((int)Convert.ToInt16(partArr6[41], 16), Rs485Parse.ConnectStates); Rs485ModelForParal rs485ModelForParal12 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[44], 16) * 1000) + (double)Convert.ToInt16(partArr6[45], 16) * 0.1; string str12 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " KWH"; rs485ModelForParal12.AccumulatedChargerPower = str12; Rs485ModelForParal rs485ModelForParal13 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[46], 16) * 1000) + (double)Convert.ToInt16(partArr6[47], 16) * 0.1; string str13 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + " KWH"; rs485ModelForParal13.AccumulatedDischargerPower = str13; Rs485ModelForParal rs485ModelForParal14 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[48], 16) * 1000) + (double)Convert.ToInt16(partArr6[49], 16) * 0.1; string str14 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal14.AccumulatedBuyPower = str14; Rs485ModelForParal rs485ModelForParal15 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[50], 16) * 1000) + (double)Convert.ToInt16(partArr6[51], 16) * 0.1; string str15 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal15.AccumulatedSellPower = str15; Rs485ModelForParal rs485ModelForParal16 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[52], 16) * 1000) + (double)Convert.ToInt16(partArr6[53], 16) * 0.1; string str16 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal16.AccumulatedLoadPower = str16; Rs485ModelForParal rs485ModelForParal17 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[54], 16) * 1000) + (double)Convert.ToInt16(partArr6[55], 16) * 0.1; string str17 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal17.AccumulatedSelf_usePower = str17; Rs485ModelForParal rs485ModelForParal18 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[56], 16) * 1000) + (double)Convert.ToInt16(partArr6[57], 16) * 0.1; string str18 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal18.AccumulatedPV_sellPower = str18; Rs485ModelForParal rs485ModelForParal19 = rs485ModelForParal1; num = (double)((int)Convert.ToInt16(partArr6[58], 16) * 1000) + (double)Convert.ToInt16(partArr6[59], 16) * 0.1; string str19 = num.ToString((IFormatProvider)CultureInfo.InvariantCulture);// + "KWH"; rs485ModelForParal19.AccumulatedGrid_chargerPower = str19; rs485ModelForParal1.InverterErrorMessage = Rs485ComServer.Operator.AnalyBitMessage(partArr6[60], Rs485Parse.InverterError1) + Rs485ComServer.Operator.AnalyBitMessage(partArr6[61], Rs485Parse.InverterError2); rs485ModelForParal1.InverterWarningMessage = Rs485ComServer.Operator.AnalyBitMessage(partArr6[64], Rs485Parse.InverterWarning); rs485ModelForParal1.BattPower = Convert.ToInt16(partArr6[72], 16).ToString(); // + "W"; rs485ModelForParal1.BattCurrent = Convert.ToInt16(partArr6[73], 16).ToString(); // + "A"; } } return(rs485ModelForParal1); }
public static UnitedRs485 GetData(UnitedRs485 rs) { try { UnitedRs485 unitedRs485 = new UnitedRs485(rs.MTypy, rs.PortName); using (SerialPort sp = new SerialPort(unitedRs485.PortName, 19200) { ReadTimeout = 1000, WriteTimeout = 1000, RtsEnable = true }) { for (int index = 0; index < ((Collection <Rs485ModelForParal>)unitedRs485.Rs485Models).Count; ++index) { ((Collection <Rs485ModelForParal>)unitedRs485.Rs485Models)[index] = Rs485ComServer.GetPartData(((Collection <Rs485ModelForParal>)unitedRs485.Rs485Models)[index].ChargerId, ((Collection <Rs485ModelForParal>)unitedRs485.Rs485Models)[index].InverterId, sp); } return(unitedRs485); } } catch (Exception) { return((UnitedRs485)null); } }