示例#1
0
        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());
                }
            }
        }
示例#2
0
        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;
        }
示例#3
0
        public void splitReceivedString(char Separator)
        {
            try
            {
                splittedData      = RxString.Split(Separator);
                numOfDataReceived = splittedData.Length;

                if ((splittedData[numOfDataReceived - 1] == "") && (numOfDataReceived > 1))
                {
                    numOfDataReceived = numOfDataReceived - 1;
                }
            }
            catch (NullReferenceException)
            {
            }
        }
示例#4
0
        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();
                }
            }
        }