public static DeviceStates AnalysisData(Rs485ModelForParal rs485ModelForParal) { string[] strArray1 = new string[4]; States[] partStates = new States[5]; int num1 = ((IEnumerable <string>)Rs485Parse.WorkState).ToList <string>().IndexOf(rs485ModelForParal.WorkState); CurOrited curOrited; switch (num1) { case 2: case 3: case 4: case 6: string[] strArray2 = strArray1; curOrited = CurOrited.ELtoR; string str1 = curOrited.ToString(); strArray2[2] = str1; break; } int result1; double numFromString; if (int.TryParse(Regex.Match(rs485ModelForParal.PGrid, "\\d+").Value, out result1)) { numFromString = StringParse.GetNumFromString(rs485ModelForParal.RatedPower); double result2; int num2 = double.TryParse(numFromString.ToString((IFormatProvider)CultureInfo.InvariantCulture), out result2) ? 1 : 0; numFromString = StringParse.GetNumFromString(rs485ModelForParal.InverterSoftwareVersion.Replace(".", "")); double result3; bool flag = double.TryParse(numFromString.ToString((IFormatProvider)CultureInfo.InvariantCulture), out result3); int num3 = (int)result2; int num4 = (int)result3; int num5 = flag ? 1 : 0; if ((num2 & num5) != 0 && num4 > 20000 && (num3 == 20000 || num3 == 3000) && (num1 == 3 || num1 == 4 || num1 == 6)) { string[] strArray3 = strArray1; curOrited = CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } else if (num1 == 6) { string[] strArray3 = strArray1; curOrited = CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } else { if (result1 > 0) { string[] strArray3 = strArray1; curOrited = CurOrited.NBtoT; string str2 = curOrited.ToString(); strArray3[1] = str2; } if (result1 < 0) { string[] strArray3 = strArray1; curOrited = CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } } } numFromString = StringParse.GetNumFromString(rs485ModelForParal.BattCurrent); double result4; if (double.TryParse(numFromString.ToString((IFormatProvider)CultureInfo.InvariantCulture), out result4)) { if (num1 == 6) { string[] strArray3 = strArray1; curOrited = CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } else { if (result4 > 0.0) { string[] strArray3 = strArray1; curOrited = CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } if (result4 < 0.0) { string[] strArray3 = strArray1; curOrited = CurOrited.STtoB; string str2 = curOrited.ToString(); strArray3[3] = str2; } if (result1 == 0 && Math.Abs(result4) < 0.1) { string[] strArray3 = strArray1; curOrited = CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } } } numFromString = StringParse.GetNumFromString(rs485ModelForParal.ChargerPower); double result5; if (double.TryParse(numFromString.ToString((IFormatProvider)CultureInfo.InvariantCulture), out result5) && (int)result5 != 0) { string[] strArray3 = strArray1; curOrited = CurOrited.WLtoR; string str2 = curOrited.ToString(); strArray3[0] = str2; } double?soc = new double?(100.0); string[] curOrient = strArray1; return(new DeviceStates(partStates, soc, curOrient)); }
public static DeviceStates AnalysisData(Rs485ModelForParal rs485ModelForParal) { string[] strArray1 = new string[4]; States[] partStates = new States[5]; int num1 = 0; int num2 = ((IEnumerable <string>)Rs485Parse.WorkState).ToList <string>().IndexOf(rs485ModelForParal.WorkState); Rs485Parse.CurOrited curOrited; switch (num2) { case 2: case 3: case 4: case 6: string[] strArray2 = strArray1; curOrited = Rs485Parse.CurOrited.ELtoR; string str1 = curOrited.ToString(); strArray2[2] = str1; break; } (double dNo, int iNo, string dNoStr, string iNoStr, bool isConverted)num3 = StringParse.GetNum(rs485ModelForParal.PGrid, 1); if (num3.isConverted) { num1 = num3.iNo; double result1; int num4 = double.TryParse(StringParse.GetNumFromString(rs485ModelForParal.RatedPower).ToString((IFormatProvider)CultureInfo.InvariantCulture), out result1) ? 1 : 0; double result2; bool flag = double.TryParse(StringParse.GetNumFromString(rs485ModelForParal.InverterSoftwareVersion.Replace(".", "")).ToString((IFormatProvider)CultureInfo.InvariantCulture), out result2); int num5 = (int)result1; int num6 = (int)result2; int num7 = flag ? 1 : 0; if ((num4 & num7) != 0 && num6 > 20000 && (num5 == 20000 || num5 == 3000) && (num2 == 3 || num2 == 4 || num2 == 6)) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } else if (num2 == 6) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } else { if (num1 > 0) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.NBtoT; string str2 = curOrited.ToString(); strArray3[1] = str2; } if (num1 < 0) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.NTtoB; string str2 = curOrited.ToString(); strArray3[1] = str2; } } } double result; if (double.TryParse(StringParse.GetNumFromString(rs485ModelForParal.BattCurrent).ToString((IFormatProvider)CultureInfo.InvariantCulture), out result)) { if (num2 == 6) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } else { if (result > 0.0) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } if (result < 0.0) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.STtoB; string str2 = curOrited.ToString(); strArray3[3] = str2; } if (num1 == 0 && Math.Abs(result) < 0.1) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.SBtoT; string str2 = curOrited.ToString(); strArray3[3] = str2; } } } if (((IEnumerable <string>)Rs485Parse.ChargerWorkstate).ToList <string>().IndexOf(rs485ModelForParal.ChargerWorkstate) == 2) { string[] strArray3 = strArray1; curOrited = Rs485Parse.CurOrited.WLtoR; string str2 = curOrited.ToString(); strArray3[0] = str2; } double?soc = new double?(100.0); string[] curOrient = strArray1; return(new DeviceStates(partStates, soc, curOrient)); }