private void TratarDadosRecebidos(object sender, EventArgs e) { string pacote = string.Empty; if (rProtocolo.Tam_pacote == 0 ? true : RxString.Trim().Length.Equals(rProtocolo.Tam_pacote)) { strCompleta.Text = RxString.Trim(); tamanhoString.Text = RxString.Trim().Length.ToString(); pacote = RxString.Trim(); RxString = string.Empty; if (rProtocolo.Char_eol_str != ' ') { string[] aux = pacote.Split(new char[] { rProtocolo.Char_eol_str }); if (aux.Length > 0) { pacote = aux[0]; } } vl_capturado.Text = pacote.Trim().Substring(rProtocolo.Pos_ini, rProtocolo.Size_word); if (!string.IsNullOrEmpty(vl_capturado.Text.SoNumero())) { pesocapturado.Value = Convert.ToDecimal(vl_capturado.Text.SoNumero()); } } }
private void upDateData() { if (serialPort1.IsOpen) { RxString = serialPort1.ReadLine(); if (RxString.First() == '+') { try { RxString1 = RxString.Substring(RxString.IndexOf("!") + 1, (RxString.IndexOf("$") - 2)); //RxString2 = RxString.Substring(RxString.IndexOf("@") + 1, (RxString.IndexOf(".") + 1)); //RxString3 = RxString.Substring(RxString.IndexOf("#") + 1, (RxString.IndexOf("."))); RxString4 = RxString.Substring(RxString.IndexOf("$") + 1, (RxString.IndexOf("."))); //RxString5 = RxString.Substring(RxString.IndexOf("%") + 1, (RxString.IndexOf(".") - 1)); //RxString6 = RxString.Substring(RxString.IndexOf("&") + 1, (RxString.IndexOf(".") - 1)); ControlRcvd = false; X.Write(RxString1); X.Write(", "); X.Write(RxString4); X.WriteLine(); } catch { X.Write(""); X.Write(", "); X.Write(""); X.WriteLine(); return; } //this.Dispatcher.Invoke(upDateData); } //serialPort1.Close(); //serialPort1.Open(); RxString = ""; } /*Voltage_A.Content = "Voltage A: " + RxString1 + " V"; * Voltage_B.Content = "Voltage B: " + RxString2 + " V"; * Voltage_C.Content = "Voltage C: " + RxString3 + " V"; * Current_A.Content = "Current A: " + RxString4 + " A"; * Current_B.Content = "Current B: " + RxString5 + " A"; * Current_C.Content = "Current C: " + RxString6 + " A"; * Power_A.Content = "Power A: " + Convert.ToString(potA) + " W"; * Power_B.Content = "Power B: " + Convert.ToString(potB) + " W"; * Power_C.Content = "Power C: " + Convert.ToString(potC) + " W";*/ ControlRcvd = true; }
public void splitReceivedString(char Separator) { try { splittedData = RxString.Split(Separator); numOfDataReceived = splittedData.Length; if ((splittedData[numOfDataReceived - 1] == "") && (numOfDataReceived > 1)) { numOfDataReceived = numOfDataReceived - 1; } } catch (NullReferenceException) { } }
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (port.IsOpen == true) { RxString = port.ReadLine(); richTextBox1.Text = RxString + "\n"; ArduinoData = RxString.Split(',', '\n', '\r'); if (ArduinoData.Count() == 4) //ensures we have all data, plus line end ("\n" or "\r") { sX = Convert.ToDouble(ArduinoData[0]); sY = Convert.ToDouble(ArduinoData[1]); sZ = Convert.ToDouble(ArduinoData[2]); Invalidate(); } } }