1 | using System;
|
2 | using System.Collections.Generic;
|
3 | using System.ComponentModel;
|
4 | using System.Configuration;
|
5 | using System.Data;
|
6 | using System.Drawing;
|
7 | using System.IO.Ports;
|
8 | using System.Linq;
|
9 | using System.Text;
|
10 | using System.Threading;
|
11 | using System.Threading.Tasks;
|
12 | using System.Windows.Forms;
|
13 |
|
14 | namespace PortChecker3
|
15 | {
|
16 | public partial class Form_1 : Form
|
17 | {
|
18 | public Thread ReadSerialDataThread;
|
19 | public Thread ReadSerialDataThread2;
|
20 | public string readserialvalue;
|
21 | public string readserialvalu2;
|
22 | public Form_1()
|
23 | {
|
24 | InitializeComponent();
|
25 | }
|
26 | private void Form1_Load(object sender, EventArgs e)
|
27 | {
|
28 | serialPort1.Open();
|
29 | serialPort2.Open();
|
30 | ReadSerialData();
|
31 | ReadSerialData2();
|
32 | serialPort2.NewLine = "\r";
|
33 | }
|
34 | private void ReadSerialData()
|
35 | {
|
36 | try
|
37 | {
|
38 | ReadSerialDataThread = new Thread(ReadSerial);
|
39 | ReadSerialDataThread.Start();
|
40 | }
|
41 | catch (Exception e)
|
42 | {
|
43 | MessageBox.Show(@"Read Serial thread. " + e.Message);
|
44 | }
|
45 | }
|
46 | private void ReadSerial()
|
47 | {
|
48 | while (serialPort1.IsOpen)
|
49 | {
|
50 | if (serialPort1.BytesToRead > 3)
|
51 | {
|
52 | readserialvalue = serialPort1.ReadExisting();
|
53 | ShowSerialData(readserialvalue);
|
54 | }
|
55 | Thread.Sleep(100);
|
56 | }
|
57 | }
|
58 | private void ReadSerialData2()
|
59 | {
|
60 | try
|
61 | {
|
62 | ReadSerialDataThread2 = new Thread(ReadSerial2);
|
63 | ReadSerialDataThread2.Start();
|
64 | }
|
65 | catch (Exception e)
|
66 | {
|
67 | MessageBox.Show(@"Read Serial thread. " + e.Message);
|
68 | }
|
69 | }
|
70 | private void ReadSerial2()
|
71 | {
|
72 | while (serialPort2.IsOpen)
|
73 | {
|
74 | if (serialPort2.BytesToRead > 3)
|
75 | {
|
76 | readserialvalu2 = serialPort2.ReadExisting();
|
77 | ShowSerialData2(readserialvalu2);
|
78 | }
|
79 | Thread.Sleep(100);
|
80 | }
|
81 | }
|
82 | public delegate void ShowSerialDatadelegate(string r);
|
83 | public delegate void ShowSerialDatadelegate2(string r);
|
84 | private void ShowSerialData(string s)
|
85 | {
|
86 | //Console.WriteLine("Port1 empfangen:" + s);
|
87 | if (IncomeData_1.InvokeRequired)
|
88 | {
|
89 | ShowSerialDatadelegate SSDD = ShowSerialData;
|
90 | Invoke(SSDD, s);
|
91 | }
|
92 | else
|
93 | {
|
94 | IncomeData_1.AppendText(Environment.NewLine + s);
|
95 | IncomeData_1.ScrollToCaret();
|
96 | }
|
97 | }
|
98 | private void ShowSerialData2(string s)
|
99 | {
|
100 | Console.WriteLine("Port2 empfangen:" + s);
|
101 | if (IncomeData_2.InvokeRequired)
|
102 | {
|
103 | ShowSerialDatadelegate2 SSDD = ShowSerialData2;
|
104 | Invoke(SSDD, s);
|
105 | }
|
106 | else
|
107 | {
|
108 | IncomeData_2.AppendText(Environment.NewLine + s);
|
109 | IncomeData_2.ScrollToCaret();
|
110 | }
|
111 | }
|
112 | private void Send_Click(object sender, EventArgs e)
|
113 | {
|
114 | int Laenge = Sendtext.Text.Length+1;
|
115 | string a = Sendtext.Text + "\r";
|
116 | byte[] Command= new byte[Laenge];
|
117 | Command= Encoding.ASCII.GetBytes(a);
|
118 | if (serialPort2.IsOpen)
|
119 | {
|
120 | serialPort2.Write(Command, 0, Command.Length);
|
121 | Console.WriteLine("Befehl gesendet");
|
122 | }
|
123 | serialPort2.BaseStream.Flush();
|
124 | }
|
125 | }
|
126 | }
|