public SerialPortParser() { _inputBuffer = new byte[100]; _bufferCounter = 0; _axSPortAx.CreateControl(); _axSPortAx.OnRxChar += AxSPortAx_OnRxChar; _axSPortAx.OnChangePortsList += _axSPortAx_OnChangePortsList; _parsedTemperatures = new BindableCollection <int?>(); _parsedVoltages = new BindableCollection <float?>(); ParsedRpm = 0; ParsedCompassValues = new CompassValues(); }
private void DecodeInput(string input) { var subStrings = input.Split(','); try { if (subStrings[0].Equals("Med1") && subStrings.Length >= VoltageCount + 1) { _parsedVoltages.Clear(); for (var i = 1; i <= VoltageCount; i++) { _parsedVoltages.Add(float.Parse(subStrings[i])); } UpdateData(DataType.Voltages); } else if (subStrings[0].Equals("Med2") && subStrings.Length >= TemperatureCount + 1) { _parsedTemperatures.Clear(); for (var i = 1; i <= TemperatureCount; i++) { _parsedTemperatures.Add((int)float.Parse(subStrings[i])); } UpdateData(DataType.Temperatures); } else if (subStrings[0].Equals("Med3") && subStrings.Length >= 7) { //float temperature1, temperature2, temperature3; //temperature1 = float.Parse(subStrings[1]); //3 //temperature2 = float.Parse(subStrings[2]); //1 //temperature3 = float.Parse(subStrings[3]); //2 //motorDiagram1.setTemperatures(temperature1, temperature3, temperature2); ParsedRpm = float.Parse(subStrings[4]); ParsedAirSpeed = float.Parse(subStrings[5]); //float mainGasVoltage, reserveGasVoltage; //mainGasVoltage = float.Parse(subStrings[6]); //reserveGasVoltage = float.Parse(subStrings[7]); //fuelBar1.setLevelVoltages(mainGasVoltage, reserveGasVoltage); UpdateData(DataType.EngineRpmFuel); } else if (subStrings[0].Equals("Med4") && subStrings.Length >= 5) { //Med4,lat,NS,log,EW,alt,angulo ParsedCompassValues = new CompassValues { Latitude = float.Parse(subStrings[1]), DirectionNs = char.Parse(subStrings[2]), Longitude = float.Parse(subStrings[3]), DirectionEw = char.Parse(subStrings[4]), Altitude = float.Parse(subStrings[5]), Orientation = float.Parse(subStrings[6]) }; UpdateData(DataType.Compass); } } catch (Exception) { // ignored } LogWriter.WriteDataToLog(input); }