Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.IO;
- using System.Windows.Forms.DataVisualization.Charting;
- using System.IO.Ports;
- using System.Threading;
- using System.Management;
- namespace ArdentMills_GUI
- {
- public partial class Form1 : Form
- {
- SerialPort port;
- SerialPort port2;
- int count = 0;
- double newTempValue = 1;
- double newDistValue = 0;
- Boolean rollStart;
- double weight1;
- double weight2;
- String weight;
- public Form1()
- {
- InitializeComponent();
- try
- {
- if (port == null)
- {
- using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
- {
- string[] portnames = SerialPort.GetPortNames();
- var ports = searcher.Get().Cast<ManagementBaseObject>().ToList();
- foreach(var p in ports)
- {
- // Uno
- if(p["Caption"].ToString().Contains("Uno"))
- {
- port = new SerialPort(p["DeviceID"].ToString(), 9600);//Set your board COM
- port.Open();
- port.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceivedEventHandler);
- }
- // Mega
- if (p["Caption"].ToString().Contains("Mega"))
- {
- port2 = new SerialPort(p["DeviceID"].ToString(), 9600);//Set your board COM
- port2.Open();
- port2.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceivedEventHandler2);
- }
- }
- }
- /*
- //Uno
- port = new SerialPort("COM5", 9600);//Set your board COM
- port.Open();
- port.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceivedEventHandler);
- //Mega
- port2 = new SerialPort("COM4", 9600);//Set your board COM
- port2.Open();
- port2.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceivedEventHandler2);
- */
- }
- }
- catch(IOException ioe)
- {
- }
- uxChart.Series[0].ChartType = SeriesChartType.Line;
- uxChart.ChartAreas[0].BackColor = Color.Black;
- uxChart.ChartAreas[0].BorderWidth = 10;
- uxChart.ChartAreas[0].BorderColor = Color.Purple;
- uxChart.Series[0].ChartType = SeriesChartType.Line;
- uxChart.Series[0].BorderWidth = 3;
- uxChart.Series[0].Color = Color.Green;
- uxChart.Series[0].XValueType = ChartValueType.Int32;
- uxChart.Series[0].YValueType = ChartValueType.Int32;
- uxChart.Series[0].MarkerStyle = MarkerStyle.Square;
- uxChart.Series[0].MarkerSize = 0;
- uxChart.Series[0].MarkerStep = 5;
- uxChart.Series[0].MarkerColor = Color.White;
- uxChart.Series[0].ToolTip = @"Value";
- uxChart.ChartAreas[0].AxisY.MajorGrid.Enabled = true;
- uxChart.ChartAreas[0].AxisX.MinorGrid.Enabled = true;
- uxChart.ChartAreas[0].AxisX.MinorGrid.Interval = 15;
- uxChart.ChartAreas[0].AxisY.Minimum = 60;
- uxChart.ChartAreas[0].AxisY.Maximum = 120;
- for(int i = -150; i < 0; i++)
- {
- uxChart.Series[0].Points.AddXY(i, 60.0);
- }
- uxChart.Legends.Clear();
- }
- public void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
- {
- SerialPort sp = (SerialPort)sender;
- string indata = sp.ReadExisting();
- }
- private void SerialDataReceivedEventHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) // Instrukcje jakie mają się wykonac w momencieodebrania danych z portu szeregowego.
- {
- SerialPort sp = (SerialPort)sender;
- string indata = sp.ReadLine();
- string[] tokens = indata.Split(' ');
- //System.Windows.Forms.MessageBox.Show(tokens[0]);
- double value;
- if (tokens.Length >= 2)
- {
- bool success = Double.TryParse(tokens[0], out value);
- if (success)
- {
- newDistValue = value;
- try
- {
- this.Invoke(new EventHandler(upDist));
- }
- catch
- {
- }
- }
- else
- {
- newTempValue = 0;
- }
- success = Double.TryParse(tokens[1], out value);
- if (success)
- {
- newTempValue = value;
- try
- {
- this.Invoke(new EventHandler(upGraph));
- }
- catch
- {
- }
- }
- else
- {
- newTempValue = 0;
- }
- //newtempValue = Double.Parse(tokens[1]);
- //this.Invoke(new EventHandler(upGraph));
- }
- }
- private void SerialDataReceivedEventHandler2(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) // Instrukcje jakie mają się wykonac w momencieodebrania danych z portu szeregowego.
- {
- SerialPort sp = (SerialPort)sender;
- string indata = sp.ReadLine();
- string[] tokens = indata.Split(' ');
- double value;
- if (tokens.Length >= 2)
- {
- bool success = Double.TryParse(tokens[0], out value);
- if (success)
- {
- weight1 = value;
- /*
- try
- {
- this.Invoke(new EventHandler(upDist));
- }
- catch
- {
- }*/
- }
- else
- {
- weight1 = 0;
- }
- success = Double.TryParse(tokens[1], out value);
- if (success)
- {
- weight2 = value;
- /*try
- {
- this.Invoke(new EventHandler(upGraph));
- }
- catch
- {
- }*/
- }
- else
- {
- weight2 = 0;
- }
- try
- {
- this.Invoke(new EventHandler(weightEvent));
- }
- catch
- {
- }
- }
- }
- bool hhh = true;
- private void weightEvent(object sender, EventArgs e)
- {
- weight_1_label.Text = weight1.ToString();
- weight_2_label.Text = weight2.ToString();
- }
- private void upGraph(object sender, EventArgs e)
- {
- if(newTempValue < 80.0)
- {
- uxChart.Series[0].Color = Color.Green;
- }
- else if(newTempValue < 100.0)
- {
- uxChart.Series[0].Color = Color.Yellow;
- }
- else
- {
- uxChart.Series[0].Color = Color.Red;
- }
- if( uxChart.Series[0].Points.Count() >= 150)
- {
- uxChart.Series[0].Points.RemoveAt(0);
- }
- uxChart.Series[0].Points.AddXY(count, newTempValue);
- uxChart.ChartAreas[0].RecalculateAxesScale();
- count++;
- }
- private void upDist(object sender, EventArgs e)
- {
- currDist_label.Text = newDistValue.ToString();
- }
- void Form1_FormClosed(object sender, FormClosedEventArgs e)
- {
- if (port != null && port.IsOpen)
- {
- port.Close();
- }
- if (port2 != null && port2.IsOpen)
- {
- port2.Close();
- }
- }
- public void UxBut_Click(object sender, EventArgs e)
- {
- byte[] stringMsg = System.Text.Encoding.UTF8.GetBytes("test");
- port2.Write(stringMsg, 0, stringMsg.Length);
- }
- private void UpdateDistBtn_Click(object sender, EventArgs e)
- {
- currDist_label.Text = DistTextBox.Text;
- byte[] stringMsg = System.Text.Encoding.UTF8.GetBytes(DistTextBox.Text);
- port.Write(stringMsg, 0, stringMsg.Length);
- DistTextBox.Clear();
- }
- private void RollerBtn_Click(object sender, EventArgs e)
- {
- if (rollStart)
- {
- //port2.Write("stop/r");
- byte[] stringMsg = System.Text.Encoding.UTF8.GetBytes("stop");
- port2.Write(stringMsg, 0, stringMsg.Length);
- rollStart = false;
- }
- else
- {
- //port2.Write("stop/r");
- byte[] stringMsg = System.Text.Encoding.UTF8.GetBytes("start");
- port2.Write(stringMsg, 0, stringMsg.Length);
- rollStart = true;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement