1 | using System;
|
2 | using System.Collections.Generic;
|
3 | using System.ComponentModel;
|
4 | using System.Data;
|
5 | using System.Drawing;
|
6 | using System.Linq;
|
7 | using System.Text;
|
8 | using System.Windows.Forms;
|
9 | using System.IO.Ports;
|
10 | using System.Threading;
|
11 | using System.IO;
|
12 | using System.Text.RegularExpressions;
|
13 |
|
14 |
|
15 |
|
16 | namespace WindowsFormsApplication1
|
17 | {
|
18 | public partial class Form1 : Form
|
19 | {
|
20 | string value = "";
|
21 | string uhrzeit;
|
22 | string logfile = "";
|
23 | bool Datenmodus=false;
|
24 |
|
25 | public Form1()
|
26 | {
|
27 | InitializeComponent();
|
28 | }
|
29 |
|
30 | private void Form1_Load(object sender, EventArgs e)
|
31 | {
|
32 |
|
33 | string[] ports = SerialPort.GetPortNames();
|
34 | foreach (string port in ports)
|
35 | {
|
36 | comboBoxPortname.Items.Add(port);
|
37 | comboBoxPortname.SelectedIndex = 0;
|
38 | }
|
39 | if (COMPORT.IsOpen)
|
40 | {
|
41 | COMPORT.Close();
|
42 | }
|
43 | DateTime Now = DateTime.Now;
|
44 | uhrzeit = (string.Format("{0:T}", Now)) + " : " + (string.Format("{0:D3}", Now.Millisecond));
|
45 | streamwriter(uhrzeit + " " + "Programm gestartet" + "\r\n");
|
46 | rtb.Text = uhrzeit + " " + "Programm gestartet" + "\r\n" + rtb.Text;
|
47 |
|
48 |
|
49 | Thread thread = new Thread(new ThreadStart(DoWork));
|
50 | thread.Start();
|
51 | }
|
52 |
|
53 | private void bt_Daten_Prog_Click(object sender, EventArgs e)
|
54 | {
|
55 | if (Datenmodus == true)
|
56 | {
|
57 | COMPORT.Close();
|
58 | streamwriter(uhrzeit + " " + "Comport geschlossen" + "\r\n");
|
59 | rtb.Text = uhrzeit + " " + "Comport "+COMPORT.PortName +" geschlossen" + "\r\n" + rtb.Text;
|
60 | if (cb_myavrboard.Checked == true)
|
61 | {
|
62 | COMPORT.PortName = comboBoxPortname.Text;
|
63 | COMPORT.BaudRate = 19200;
|
64 | COMPORT.DataBits = 8;
|
65 | COMPORT.StopBits = StopBits.One;
|
66 | COMPORT.Parity = Parity.None;
|
67 | try
|
68 | {
|
69 | COMPORT.Open();
|
70 | if (COMPORT.IsOpen)
|
71 | {
|
72 | COMPORT.Write(new byte[] { 0xE6, 0xB5, 0xBA, 0xB9, 0xB2, 0xB3, 0xA9, 0x70 }, 0, 8);
|
73 | COMPORT.Close();
|
74 | }
|
75 |
|
76 | streamwriter(uhrzeit + " " + "Umgestellt auf Programmiermodus" + "\r\n");
|
77 | rtb.Text = uhrzeit + " " + "Umgestellt auf Programmiermodus" + "\r\n" + rtb.Text;
|
78 | }
|
79 | catch
|
80 | {
|
81 | streamwriter(uhrzeit + " " + "Umstellung in Programmiermodus nicht möglich!" + "\r\n");
|
82 | rtb.Text = uhrzeit + " " + "Umstellung in Programmiermodus nicht möglich!" + "\r\n" + rtb.Text;
|
83 | }
|
84 | }
|
85 | bt_Daten_Prog.Text = "Daten-Modus";
|
86 | Datenmodus = false;
|
87 | }
|
88 | else
|
89 | {
|
90 |
|
91 | try
|
92 | {
|
93 | COMPORT.PortName = comboBoxPortname.Text;
|
94 | COMPORT.BaudRate = 19200;
|
95 | COMPORT.DataBits = 8;
|
96 | COMPORT.StopBits = StopBits.One;
|
97 | COMPORT.Parity = Parity.None;
|
98 | try
|
99 | {
|
100 | if (cb_myavrboard.Checked == true)
|
101 | {
|
102 | COMPORT.Open();
|
103 | COMPORT.Write(new byte[] { 0xE6, 0xB5, 0xBA, 0xB9, 0xB2, 0xB3, 0xA9, 0x64 }, 0, 8);
|
104 | COMPORT.Close();
|
105 | streamwriter(uhrzeit + " " + "Umgestellt auf Datenmodus" + "\r\n");
|
106 | rtb.Text = uhrzeit + " " + "Umgestellt auf Datenmodus" + "\r\n" + rtb.Text;
|
107 | }
|
108 | COMPORT.BaudRate = Convert.ToInt32(tb_baudrate.Text);
|
109 | COMPORT.Open();
|
110 |
|
111 | streamwriter(uhrzeit + " " + "Comport "+COMPORT.PortName+ " geöffnet" + "\r\n");
|
112 | rtb.Text = uhrzeit + " " + "Comport " + COMPORT.PortName + " geöffnet" + "\r\n" + rtb.Text;
|
113 | Datenmodus = true;
|
114 | bt_Daten_Prog.Text = "Programmier-Modus";
|
115 |
|
116 |
|
117 | }
|
118 | catch
|
119 | {
|
120 | streamwriter(uhrzeit + " " + "Comport konnte nicht geöffnet werden!" + "\r\n");
|
121 | rtb.Text = uhrzeit + " " + "Comport konnte nicht geöffnet werden!" + "\r\n" + rtb.Text;
|
122 | }
|
123 | }
|
124 | catch
|
125 | {
|
126 | streamwriter(uhrzeit + " " + "Kein Comport ausgewählt!" + "\r\n");
|
127 | rtb.Text = uhrzeit + " " + "Kein Comport ausgewählt!" + "\r\n" + rtb.Text;
|
128 | }
|
129 | }
|
130 | }
|
131 |
|
132 |
|
133 | public void DoWork()
|
134 | {
|
135 | if (COMPORT.IsOpen)
|
136 | {
|
137 | value = value + COMPORT.ReadExisting();
|
138 | }
|
139 |
|
140 | if (value != "")
|
141 | {
|
142 | string[] lines = Regex.Split(value, "\n");
|
143 | foreach (string line in lines)
|
144 | {
|
145 | logfile = uhrzeit + " " + "Empfangen: " + line + "\r\n";
|
146 | rtb.Text = logfile + rtb.Text;
|
147 | value = "";
|
148 | }
|
149 | }
|
150 | }
|
151 |
|
152 |
|
153 |
|
154 | private void bt_reset_rtb_Click(object sender, EventArgs e)
|
155 | {
|
156 | rtb.Text = "";
|
157 | }
|
158 |
|
159 | private void bt_senden_Click(object sender, EventArgs e)
|
160 | {
|
161 | daten_senden(tb_senden.Text);
|
162 | }
|
163 | private void daten_senden(string data)
|
164 | {
|
165 | if (COMPORT.IsOpen)
|
166 | {
|
167 | try
|
168 | {
|
169 | COMPORT.Write(data + "\r\n");
|
170 | logfile = uhrzeit + " " + "Gesendet: " + data + "\r\n";
|
171 | streamwriter(logfile);
|
172 | rtb.Text = logfile + rtb.Text;
|
173 | }
|
174 | catch
|
175 | {
|
176 | logfile = uhrzeit + "Fehler beim senden" + "\r\n";
|
177 | streamwriter(logfile);
|
178 | rtb.Text = logfile + rtb.Text;
|
179 | }
|
180 |
|
181 | }
|
182 | }
|
183 | private void streamwriter(string logfile)
|
184 | {
|
185 | StreamWriter SW = File.AppendText("Logfile.txt");
|
186 | SW.Write(logfile);
|
187 | SW.Close();
|
188 | }
|
189 |
|
190 |
|
191 |
|
192 | private void timer1_Tick(object sender, EventArgs e)
|
193 | {
|
194 | DateTime Now = DateTime.Now;
|
195 | uhrzeit = (string.Format("{0:T}", Now)) + " : " + (string.Format("{0:D3}", Now.Millisecond));
|
196 | }
|
197 |
|
198 | private void Form1_FormClosed(object sender, FormClosedEventArgs e)
|
199 | {
|
200 | streamwriter(uhrzeit + " " + "Programm geschlossen" + "\r\n");
|
201 | }
|
202 |
|
203 | }
|
204 | }
|