-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForm1.cs
122 lines (100 loc) · 3.42 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace gui_noelDOM
{
public partial class GUI : Form
{
private SerialPort _serialPort;
private delegate void SetTextDeleg(string text);
public GUI()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox2.Text = "115200"; /* Default Baudrate */
Label_pos.Text = "0";
Btn_conect.Enabled = false;
Track_Bar_Servo.Enabled = false;
btn_send_data.Enabled = false;
}
private void Btn_load_porst_Click(object sender, EventArgs e)
{
comboBox1.Items.Clear();
string[] serial_ports = SerialPort.GetPortNames();
foreach (string port in serial_ports)
{
comboBox1.Items.Add(port);
comboBox1.Text = port;
}
Btn_conect.Enabled = true;
}
private void Btn_conect_Click(object sender, EventArgs e)
{
if (Btn_conect.Text == "Connect")
{
Btn_conect.Text = "Disconnect";
_serialPort = new SerialPort(comboBox1.Text, Convert.ToInt32(comboBox2.Text), Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
_serialPort.DataReceived += new SerialDataReceivedEventHandler(Serial_data);
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 10;
try
{
_serialPort.Open();
Track_Bar_Servo.Enabled = true;
btn_send_data.Enabled = true;
}
catch (Exception)
{
Btn_conect.Text = "Connect";
Track_Bar_Servo.Enabled = false;
btn_send_data.Enabled = false;
MessageBox.Show("Error: " + comboBox1.Text + " (Port busy)");
}
}
else if (Btn_conect.Text == "Disconnect")
{
Btn_conect.Text = "Connect";
Track_Bar_Servo.Enabled = false;
btn_send_data.Enabled = false;
_serialPort.Close();
}
}
private void Serial_data(object sender, SerialDataReceivedEventArgs e)
{
Thread.Sleep(1);
try
{
string data = _serialPort.ReadLine();
this.BeginInvoke(new SetTextDeleg(Gui_data), new object[] { data });
}
catch (Exception) /* Serial error handler */
{
}
}
private void Gui_data(string data)
{
Console.Write(data);
}
private void btn_send_data_Click(object sender, EventArgs e)
{
_serialPort.WriteLine(Text_box_send_data.Text);
}
private void Track_Bar_Servo_ValueChanged(object sender, EventArgs e)
{
Label_pos.Text = Track_Bar_Servo.Value.ToString();
_serialPort.WriteLine(Track_Bar_Servo.Value.ToString());
}
}
}