-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.cs
More file actions
130 lines (121 loc) · 5.02 KB
/
Copy pathForm1.cs
File metadata and controls
130 lines (121 loc) · 5.02 KB
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
123
124
125
126
127
128
129
130
//created by Amin Jalali, St.number : 973663044 Univercity of Isfahan, 01.16.2023
using System;
using System.Windows.Forms;
using SerialTerminal.Codes;
namespace SerialTerminal
{
public partial class mainWindow : Form
{
public mainWindow()
{
InitializeComponent();
serialPortManager = new SerialPortManager(historyList);
Console.WriteLine("Serial Port Manager Created.");
UIUtility.RefreshDropDown(portComboBox);
Console.WriteLine("Port Combo Box Refreshed.");
}
private void connectButton_Click(object sender, EventArgs e)
{
string portName = portComboBox.SelectedItem.ToString();
UIUtility.AddInputToHistory(historyList, $"connecting to port: {portName}...");
int baudRate = int.Parse(baudrateComboBox.SelectedItem.ToString());
System.IO.Ports.Parity parity = System.IO.Ports.Parity.None;
switch (parityComboBox.SelectedItem.ToString())
{
case "none":
parity = System.IO.Ports.Parity.None;
break;
case "even":
parity = System.IO.Ports.Parity.Even;
break;
case "odd":
parity = System.IO.Ports.Parity.Odd;
break;
case "mark":
parity = System.IO.Ports.Parity.Mark;
break;
case "space":
parity = System.IO.Ports.Parity.Space;
break;
}
int dataBits = int.Parse(dataBitComboBox.SelectedItem.ToString());
System.IO.Ports.StopBits stopBits = System.IO.Ports.StopBits.None;
switch (stopBitComboBox.SelectedItem.ToString())
{
case "none":
stopBits = System.IO.Ports.StopBits.None;
break;
case "1":
stopBits = System.IO.Ports.StopBits.One;
break;
case "2":
stopBits = System.IO.Ports.StopBits.Two;
break;
case "1.5":
stopBits = System.IO.Ports.StopBits.OnePointFive;
break;
}
System.IO.Ports.Handshake handshake = System.IO.Ports.Handshake.None;
switch (handshakeComboBox.SelectedItem.ToString())
{
case "none":
handshake = System.IO.Ports.Handshake.None;
break;
case "RTS":
handshake = System.IO.Ports.Handshake.RequestToSend;
break;
case "Xon / Xoff":
handshake = System.IO.Ports.Handshake.XOnXOff;
break;
case "RTS + Xon / Xoff":
handshake = System.IO.Ports.Handshake.RequestToSendXOnXOff;
break;
}
serialPort = serialPortManager.OpenSerialConnection(portName, baudRate, parity, dataBits, stopBits, handshake, 500);
UIUtility.AddInputToHistory(historyList, $"connected to port: {portName}.");
}
private void closeConBbutton_Click(object sender, EventArgs e)
{
UIUtility.AddInputToHistory(historyList, $"closing connection to port: {serialPort.PortName}...");
serialPortManager.CloseSerialConnection(serialPort);
UIUtility.AddInputToHistory(historyList, "connection closed.");
}
private void rescanButton_Click(object sender, EventArgs e)
{
UIUtility.AddInputToHistory(historyList, "rescanning ports...");
string[] portNames = serialPortManager.GetSerialPortNames();
portComboBox.Items.Clear();
UIUtility.FillDropDownValues(portComboBox, portNames);
UIUtility.AddInputToHistory(historyList, "scan complete.");
}
private void sendButton_Click(object sender, EventArgs e)
{
string data = inputTextBox.Text;
if (!data.Equals("") && data != null)
{
UIUtility.AddInputToHistory(historyList, "sending:");
serialPortManager.SerialPortWrite(serialPort, data);
UIUtility.AddInputToHistory(historyList, data);
}
inputTextBox.ResetText();
}
private void clearButton_Click(object sender, EventArgs e)
{
UIUtility.ClearHistory(historyList);
}
private void streamCheckBox_CheckedChanged(object sender, EventArgs e)
{
serialPortManager.FeedCurrentSerialPort(serialPort);
if (streamCheckBox.Checked)
{
inputTextBox.TextChanged += serialPortManager.OnInputChnaged;
sendButton.Enabled = false;
}
else
{
inputTextBox.TextChanged -= serialPortManager.OnInputChnaged;
sendButton.Enabled = true;
}
}
}
}