/// <summary> /// Converts data to string of Comma Separated Variables. /// </summary> /// <returns> /// CSV text line. /// </returns> public string ConvertToCSVstring() { return(BatteryVoltage.ToString(CultureInfo.InvariantCulture) + "," + Thermometer.ToString(CultureInfo.InvariantCulture)); }
/// <summary> /// Converts data to string of Comma Separated Variables. /// </summary> /// <returns> /// CSV text line. /// </returns> public string ConvertToCSVstring() { return(BatteryVoltage.ToString() + "," + Thermometer.ToString()); }
public void DataReceiveHandler(object sender, SerialDataReceivedEventArgs e) { /* * Q1 Command * (000.8 160.0 230.1 009 50.0 2.22 32.1 10000001 (batt mode) * (214.3 110.0 214.1 009 50.0 2.12 32.0 00100001 (power mode with eco bypass) * (212.6 110.0 229.7 008 49.9 2.22 32.4 00000001 (power mode normal) * * F Command #230.0 008 048.0 50.0 * * I Command #Ablerex RS-RT 2000 AS041811 */ SerialPort sp = (SerialPort)sender; string indata = sp.ReadLine(); Console.WriteLine(indata); //for debug double BatVal; bool upsType = false; if (indata.Substring(0, 1) == "#") { indata = indata.Substring(1); if (indata.Contains("Ablerex") || indata.Contains("ABLEREX")) //I Command { string[] ModelInfo = indata.Split(' '); Brand = ModelInfo[0]; Model = ModelInfo[9] + " " + ModelInfo[10]; FirmwareVersion = ModelInfo[11]; } else //F Command { string[] ratedInfo = indata.Split(' '); RatedVoltage = (float)Convert.ToDouble(ratedInfo[0]); RatedCurrent = Convert.ToInt32(ratedInfo[1]); BatteryVoltage = (float)Convert.ToDouble(ratedInfo[2]); RatedFrequency = (float)Convert.ToDouble(ratedInfo[3]); } } else if (indata.Substring(0, 1) == "(") //Q1 Command { indata = indata.Substring(1); RawData = indata; string[] upsState = indata.Split(' '); InputVoltage = (float)Convert.ToDouble(upsState[0]); OutputVoltage = (float)Convert.ToDouble(upsState[2]); UPSLoad = Convert.ToInt32(upsState[3]); UPSLoadAmp = (Convert.ToDouble(UPSLoad) / Convert.ToDouble(100.0)) * RatedCurrent; UPSLoadWatt = (float)Convert.ToDouble(OutputVoltage * UPSLoadAmp); InputFrequency = (float)Convert.ToDouble(upsState[4]); Temperature = (float)Convert.ToDouble(upsState[6]); //UPS Battery Capacity StatusFlag = upsState[7]; BatVal = Convert.ToDouble(upsState[5]); if (Convert.ToInt16(RawData.Substring(42, 1)) == 0) { upsType = false; } else if (Convert.ToInt16(RawData.Substring(42, 1)) == 1) { upsType = true; } //BatteryVoltage BatteryPercent = CalCapacity(upsType, BatVal.ToString(), BatteryVoltage.ToString()); } else if (indata.Substring(0, 5) == "M02.0" || indata.Substring(0, 5) == "M00.0") //Q3 Command { indata = indata.Substring(5); DisplaySystem = Convert.ToInt32(indata.Substring(0, 1)); //Display System VoltageOutput = Convert.ToInt32(indata.Substring(1, 1)); //Vout UPSMode = Convert.ToInt32(indata.Substring(4, 1)); //UPS Mode FineTuning = Convert.ToInt32(indata.Substring(7, 1)); //Fine Tuning BypassWindow = Convert.ToInt32(indata.Substring(8, 1)); //Bypass Window Synchronization = Convert.ToInt32(indata.Substring(9, 1)); //Synchronization Q3DataAvaiable = true; } }