//**********************************************************************************// //***************************** Нажатие кнопки "Подключить" ************************// private void button2_Click(object sender, EventArgs e) { try { if (Porty.Text == "" || Speeder.Text == "") { Comander.AppendText("Пожалуйста, выберите настройки порта.\r\n"); } else { serialPort1.PortName = Porty.Text; serialPort1.BaudRate = Convert.ToInt32(Speeder.Text); serialPort1.Open(); Connect.Enabled = false; DisConnect.Enabled = true; Send.Enabled = true; Sender.Enabled = true; Comander.AppendText("Подключение произошло успешно.\r\n"); } } catch (UnauthorizedAccessException) { Comander.AppendText("Ошибка!\r\n"); } }
//***********************************************************************************// //**************************** Нажатие кнопки "Отключить" ***************************// private void button3_Click(object sender, EventArgs e) { serialPort1.Close(); Connect.Enabled = true; DisConnect.Enabled = false; Send.Enabled = false; Sender.Enabled = false; Comander.AppendText("Устройство отключено.\r\n"); }
//*************************** Поиск и введение компортов ***************************// void getAvaliablePorts() { String[] ports = SerialPort.GetPortNames(); //Поиск компортов. Porty.Items.AddRange(ports); //Добавление компортов в комбокс. Comander.AppendText("COM порты найдены.\r\n"); }
//************************************************************************************// //**************************** Автоскролл и получение ********************************// private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (data.Length < 60) { data += serialPort1.ReadExisting(); } else { data = serialPort1.ReadExisting(); return; } if (!((data[0] >= 0x30) && (data[0] < 0x40))) { Words.Invoke((MethodInvoker) delegate { Words.AppendText(data); Words.SelectionStart = Words.Text.Length; if (Autosc.Checked) { Words.ScrollToCaret(); } }); data = ""; return; } if (data.IndexOf(".") == 61) { //Все ОК try { str = data.Split(';'); //if (str.Length == 9) //{ Int32.TryParse(str[0], out tim); temp = str[1].Substring(0, 4); temp1 = Convert.ToSingle(temp); temp = str[2].Substring(0, 4); temp2 = Convert.ToSingle(temp); temp = str[3].Substring(0, 6); Int32.TryParse(temp, out press); temp = str[4].Substring(0, 5); barheight = Convert.ToSingle(temp); ax = Convert.ToSingle(str[5]); ay = Convert.ToSingle(str[6]); az = Convert.ToSingle(str[7]); temp = str[8].Substring(0, 4); volt = Convert.ToSingle(temp); if (counter < 150) { x[counter] = tim; //Запись значений в массивы. h[counter] = barheight; //Запись значений в массивы. t1[counter] = temp1; //Запись значений в массивы. t2[counter] = temp2; //Запись значений в массивы. aax[counter] = ax; //Запись значений в массивы. aay[counter] = ay; //Запись значений в массивы. aaz[counter] = az; //Запись значений в массивы. for (int abc = counter; abc < 150; abc++) { x[abc] = x[counter]; h[abc] = h[counter]; t1[abc] = t1[counter]; t2[abc] = t2[counter]; aax[abc] = aax[counter]; aay[abc] = aay[counter]; aaz[abc] = aaz[counter]; } } else { for (int abc = 1; abc < 150; abc++) { x[abc - 1] = x[abc]; h[abc - 1] = h[abc]; t1[abc - 1] = t1[abc]; t2[abc - 1] = t2[abc]; aax[abc - 1] = aax[abc]; aay[abc - 1] = aay[abc]; aaz[abc - 1] = aaz[abc]; } counter--; x[counter] = tim; //Запись значений в массивы. h[counter] = barheight; //Запись значений в массивы. t1[counter] = temp1; //Запись значений в массивы. t2[counter] = temp2; //Запись значений в массивы. aax[counter] = ax; //Запись значений в массивы. aay[counter] = ay; //Запись значений в массивы. aaz[counter] = az; //Запись значений в массивы. } //Запись данных this.Invoke((MethodInvoker) delegate { timeee.Text = (Convert.ToString(tim)); Davlenie.Text = (Convert.ToString(press)); xxx.Text = (Convert.ToString(ax)); yyy.Text = (Convert.ToString(ay)); zzz.Text = (Convert.ToString(az)); tds.Text = (Convert.ToString(temp1)); tbmp.Text = (Convert.ToString(temp2)); heighttt.Text = (Convert.ToString(barheight)); voltageee.Text = (Convert.ToString(volt)); // Вывод графиков. chart1.Series[0].Points.DataBindXY(x, h); chart1.Series[1].Points.DataBindXY(x, t1); chart1.Series[2].Points.DataBindXY(x, t2); chart2.Series[0].Points.DataBindXY(x, aax); chart2.Series[1].Points.DataBindXY(x, aay); chart2.Series[2].Points.DataBindXY(x, aaz); }); counter++; //} } catch (Exception ex) { Comander.Invoke((MethodInvoker) delegate { Comander.AppendText("Ошибка" + ex.Message + "\r\n"); Comander.SelectionStart = Comander.Text.Length; if (Autosc.Checked) { Comander.ScrollToCaret(); } }); } //Автопрокрутка поля вордс. Words.Invoke((MethodInvoker) delegate { Words.AppendText(data); Words.SelectionStart = Words.Text.Length; if (Autosc.Checked) { Words.ScrollToCaret(); } }); //Автопрокрутка поля инициализации. Comander.Invoke((MethodInvoker) delegate { Comander.SelectionStart = Comander.Text.Length; if (Autosc.Checked) { Comander.ScrollToCaret(); } }); } else { /*//Автопрокрутка поля вордс. * Words.Invoke((MethodInvoker)delegate * { * Words.AppendText(data); * * Words.SelectionStart = Words.Text.Length; * if (Autosc.Checked) * { * Words.ScrollToCaret(); * } * });*/ //Автопрокрутка поля инициализации. Comander.Invoke((MethodInvoker) delegate { Comander.AppendText(data.Length.ToString() + "\r\n"); Comander.SelectionStart = Comander.Text.Length; if (Autosc.Checked) { Comander.ScrollToCaret(); } }); if (data.Length > 60) { data = data.Substring(31, 30); } } }