Forum: PC-Programmierung C# - Serial lässt sich nicht mehr auslesen


von Matthias S. (schwarz)


Lesenswert?

Hey ho liebe Forum-Nutzer,
Ich arbeite nun schon länger an einem Projekt bei dem ich ein großes 
Problem mit dem auslesen der Daten eines Desko-Tastatur Scanners habe.
Dementsprechend ist der SerialPort rein virtuell, womit auch das Problem 
zusammenhängen könnte. Aber nun weiter im Text.
Ich habe schon mind nen Monat voller Tests und Internetsuche hinter mir. 
Habe wirklich alles von mir Gefundene und scheinbar Nutzbare 
ausprobiert, aber das Problem ist immernoch nicht wirklich gelöst.

Nun zum Problem.
Mein Programm initialisiert einen SerialPort und löst das 
DataReceivedEvent, wie die folgenden Codezeilen zeigen, aus.
1
        public SerialPort OpenPortDesko;
2
        public delegate void SerialDataReceived_Event();
3
        public event SerialDataReceived_Event SerialChangeEvent;
4
       
5
        ConcurrentQueue<byte> serialDataQueue = new ConcurrentQueue<byte>();
6
7
8
        public object[] Desko_Inhalt
9
        {
10
            get
11
            {
12
                return Desko_inhalt;
13
            }
14
            set
15
            {
16
                Desko_inhalt = value;
17
            }
18
        }
19
20
        public void OpenPort()
21
        {
22
            OpenPortDesko = new SerialPort("COM6",
23
              9600, Parity.None, 8, StopBits.One);
24
            OpenPortDesko.Handshake = Handshake.RequestToSend;
25
            OpenPortDesko.RtsEnable = true;
26
            OpenPortDesko.DataReceived += new SerialDataReceivedEventHandler(DataHandling);
27
            SerialChangeEvent += new SerialDataReceived_Event(processData);
28
            OpenPortDesko.Open();
29
        }
30
31
32
        private void DataHandling(object sender, SerialDataReceivedEventArgs e)
33
        {
34
            Thread.Sleep(500);
35
            if (!Desko_continue && OpenPortDesko.BytesToRead > 0)
36
            {
37
                byte[] data = new byte[OpenPortDesko.BytesToRead];
38
                OpenPortDesko.Read(data, 0, data.Length);
39
40
                for (int index = 0; index <= data.Length; index++)
41
                {
42
                    if (index == 0)
43
                        serialDataQueue.Enqueue(STX);
44
                    else if (index > 0 && index < data.Length)
45
                        serialDataQueue.Enqueue(data[index]);
46
                    else if (index == data.Length)
47
                        serialDataQueue.Enqueue(ETX);
48
                }
49
50
                SerialChangeEvent();
51
            }
52
        }
53
54
        #endregion 
55
56
57
        public void processData()
58
        {
59
            byte ch;
60
            List<byte> Zwischenspeicher = new List<byte>();
61
            try
62
            {
63
                while (serialDataQueue.TryDequeue(out ch))
64
                {
65
                    Zwischenspeicher.Add(ch);
66
                }
67
                foreach (byte b in Zwischenspeicher)
68
                    DeskoIn += (char)b;
69
70
                Desko_inhalt = ScanSplit(DeskoIn);
71
                DeskoIn = "";
72
            }
73
            catch
74
            {
75
                Desko_inhalt = null;
76
            }
77
        }
78
79
        private object[] ScanSplit(string basicStr)
80
        {
81
            int intZaehler = 0;
82
            empfaenger e;
83
            ausweis ausw;
84
            string[] SplittedStr = basicStr.Split(new Char[] { '<' });
85
            for (int i = 0; i <= SplittedStr.Length; i++)
86
            {
87
                if (SplittedStr[i] == "")
88
                {
89
90
                }
91
                else
92
                {
93
                    if (_bolCheck)
94
                    {
95
                        string str = SplittedStr[i][1].ToString();
96
                        if (str == "\r")
97
                        {
98
                            Zwischenablage = SplittedStr[i];
99
                            int gebID = i + 2;
100
                            GebDate = SplittedStr[gebID].Substring(0, 6);
101
                            int gueltID = gebID + 1;
102
                            GueltDate = SplittedStr[gueltID].Substring(0, 6);
103
                            break;
104
                        }
105
                    }
106
                    else if (!_bolCheck)
107
                    {
108
                        string str = SplittedStr[i][z].ToString();
109
                        if (str == "\r" && intZaehler == 0)
110
                        {
111
                            GebDate = SplittedStr[i].Substring(2, 6);
112
                            int gueltID = i + 1;
113
                            GueltDate = SplittedStr[gueltID].Substring(0, 6);
114
                            intZaehler++;
115
                            z++;
116
                        }
117
                        else if (str == "\r" && intZaehler == 1)
118
                        {
119
                            Name = SplittedStr[i].Split(new Char[] { '\r' })[1];
120
                            int vnameID = i + 2;
121
                            Vorname = SplittedStr[vnameID];
122
                            intZaehler++;
123
                            break;
124
                        }
125
                    }
126
                }
127
            }
128
129
            if (_bolCheck)
130
            {
131
                string ID = Zwischenablage.Substring(2, 9);
132
                string WohnortID = Zwischenablage.Substring(2, 4);
133
134
                ausw = new ausweis(ID, GueltDate);
135
                e = new empfaenger(SplittedStr[2], SplittedStr[4], GebDate, WohnortID);
136
                objArray = new object[] { ausw, e };
137
            }
138
            else if (!_bolCheck)
139
            {
140
                intZaehler = 0;
141
                z = 1;
142
                string ID = SplittedStr[2];
143
144
                ausw = new ausweis(ID, GueltDate);
145
                e = new empfaenger(Name, Vorname, GebDate, "");
146
                objArray = new object[] { ausw, e };
147
            }
148
            return objArray;
149
        }
150
151
        public void PortClose()
152
        {
153
            OpenPortDesko.Close();
154
        }
Nun folgt ein kurzer Ausschnitt aus meinem Sniffer(Portmon) der 
eventuell die Symptomatik besser erklärt als ich es mit meinen Worten 
könnte.
1
0.00003661  Ausleihverwalt  IRP_MJ_CREATE  vSerial6  SUCCESS  Options: Open   
2
0.00001814  Ausleihverwalt  IOCTL_SERIAL_GET_PROPERTIES  vSerial6  SUCCESS    
3
0.00001129  Ausleihverwalt  IOCTL_SERIAL_GET_MODEMSTATUS  vSerial6  SUCCESS    
4
0.00001095  Ausleihverwalt  IOCTL_SERIAL_GET_BAUD_RATE  vSerial6  SUCCESS    
5
0.00001266  Ausleihverwalt  IOCTL_SERIAL_GET_LINE_CONTROL  vSerial6  SUCCESS    
6
0.00001095  Ausleihverwalt  IOCTL_SERIAL_GET_CHARS  vSerial6  SUCCESS    
7
0.00001369  Ausleihverwalt  IOCTL_SERIAL_GET_HANDFLOW  vSerial6  SUCCESS    
8
0.00001471  Ausleihverwalt  IOCTL_SERIAL_GET_BAUD_RATE  vSerial6  SUCCESS    
9
0.00001232  Ausleihverwalt  IOCTL_SERIAL_GET_LINE_CONTROL  vSerial6  SUCCESS    
10
0.00001095  Ausleihverwalt  IOCTL_SERIAL_GET_CHARS  vSerial6  SUCCESS    
11
0.00001300  Ausleihverwalt  IOCTL_SERIAL_GET_HANDFLOW  vSerial6  SUCCESS    
12
0.00001061  Ausleihverwalt  IOCTL_SERIAL_SET_BAUD_RATE  vSerial6  SUCCESS  Rate: 9600  
13
0.00001061  Ausleihverwalt  IOCTL_SERIAL_CLR_DTR  vSerial6  SUCCESS    
14
0.00001198  Ausleihverwalt  IOCTL_SERIAL_SET_LINE_CONTROL  vSerial6  SUCCESS  StopBits: 1 Parity: NONE WordLength: 8  
15
0.00001095  Ausleihverwalt  IOCTL_SERIAL_SET_CHAR  vSerial6  SUCCESS  EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13  
16
0.00001950  Ausleihverwalt  IOCTL_SERIAL_SET_HANDFLOW  vSerial6  SUCCESS  Shake:8 Replace:80 XonLimit:0 XoffLimit:0  
17
0.00001300  Ausleihverwalt  IOCTL_SERIAL_GET_BAUD_RATE  vSerial6  SUCCESS    
18
0.00001711  Ausleihverwalt  IOCTL_SERIAL_GET_LINE_CONTROL  vSerial6  SUCCESS    
19
0.00002430  Ausleihverwalt  IOCTL_SERIAL_GET_CHARS  vSerial6  SUCCESS    
20
0.00002019  Ausleihverwalt  IOCTL_SERIAL_GET_HANDFLOW  vSerial6  SUCCESS    
21
0.00001129  Ausleihverwalt  IOCTL_SERIAL_SET_BAUD_RATE  vSerial6  SUCCESS  Rate: 9600  
22
0.00001095  Ausleihverwalt  IOCTL_SERIAL_CLR_DTR  vSerial6  SUCCESS    
23
0.00001198  Ausleihverwalt  IOCTL_SERIAL_SET_LINE_CONTROL  vSerial6  SUCCESS  StopBits: 1 Parity: NONE WordLength: 8  
24
0.00001027  Ausleihverwalt  IOCTL_SERIAL_SET_CHAR  vSerial6  SUCCESS  EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13  
25
0.00001437  Ausleihverwalt  IOCTL_SERIAL_SET_HANDFLOW  vSerial6  SUCCESS  Shake:8 Replace:80 XonLimit:0 XoffLimit:0  
26
0.00001095  Ausleihverwalt  IOCTL_SERIAL_CLR_DTR  vSerial6  SUCCESS    
27
0.00001061  Ausleihverwalt  IOCTL_SERIAL_SET_TIMEOUTS  vSerial6  SUCCESS  RI:-1 RM:-1 RC:-2 WM:0 WC:0  
28
0.00029668  Ausleihverwalt  IOCTL_SERIAL_SET_WAIT_MASK  vSerial6  SUCCESS  Mask: RXCHAR RXFLAG CTS DSR RLSD BRK ERR RING   
29
0.00003969  Ausleihverwalt  IOCTL_SERIAL_SET_QUEUE_SIZE  vSerial6  SUCCESS  InSize: 4096 OutSize: 2048  
30
0.00003045  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
31
1.04978473  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
32
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
33
1.04993700  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
34
0.00002943  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
35
0.00001985  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
36
0.00003045  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
37
1.04990689  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
38
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
39
0.00003798  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
40
1.04980081  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
41
0.00002053  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
42
1.04992058  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
43
0.00003011  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
44
0.00002019  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
45
1.05106553  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
46
0.00002190  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
47
0.00002190  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
48
0.00001129  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
49
1.04927179  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
50
0.06023271  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
51
0.10032227  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
52
0.98893916  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
53
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
54
0.00003661  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
55
1.04986822  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
56
0.00002156  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
57
1.04991955  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
58
0.00002464  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
59
0.00002703  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
60
0.00010745  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
61
1.04982545  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
62
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
63
1.04987952  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
64
0.00002532  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
65
0.00002874  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
66
1.04994008  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
67
0.00004380  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
68
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
69
0.00002737  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
70
1.04982271  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
71
0.00002190  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
72
1.04994077  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
73
0.00002566  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
74
0.00002087  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
75
1.04990210  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
76
0.00002601  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
77
0.00002258  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
78
0.00004106  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
79
1.04985214  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
80
0.00002087  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
81
1.04986378  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
82
0.00002601  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
83
0.00002122  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
84
0.00003456  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
85
1.04988807  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
86
0.00002258  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
87
1.04990929  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
88
0.00002566  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
89
0.00002806  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
90
0.00005543  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
91
0.15585882  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
92
0.00002772  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
93
0.00972050  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
94
0.00004448  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
95
0.00001814  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
96
0.00999390  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
97
0.00002395  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
98
0.87895833  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
99
0.00004072  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
100
0.00001335  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
101
0.00000992  Ausleihverwalt  IRP_MJ_READ  vSerial6  SUCCESS  Length 82: ..0IDD<<name<<nachname<<<<<<<<<<<<<<<..codeID<<GebID<zahl  //Scan ohne Fehler
102
0.00003456  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
103
0.00009787  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
104
0.00002053  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
105
1.04986549  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
106
0.00002601  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
107
0.00002703  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
108
0.00001198  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
109
1.04983435  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS  
110
0.00002430  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
111
1.04995685  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
112
0.00006570  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
113
0.00001163  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
114
0.00000958  Ausleihverwalt  IRP_MJ_READ  vSerial6  SUCCESS  Length 36: ..0******************************...  //Fehlerhafter Scan, da kein gültiges Dokument gescannt wurde
115
0.00001711  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
116
0.00001232  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
117
0.00002874  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
118
0.00005407  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
119
1.04975701  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
120
0.00002464  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
121
1.04990210  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
122
0.00005030  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
123
0.00009342  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
124
1.04986788  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6  SUCCESS    
125
0.00009273  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
126
0.00002566  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6  SUCCESS    
127
0.00000000  Ausleihverwalt  IOCTL_SERIAL_GET_COMMSTATUS  vSerial6      
128
0.00000000  Ausleihverwalt  IOCTL_SERIAL_WAIT_ON_MASK  vSerial6    //Hier bleibt er hängen. Das tritt manchmal aber auch nach Scans auf die keinen Error liefern.
Durch den Absturz der Kommunikation zwischen Gerät und meinem Programm 
lässt sich SerialPort.close() nicht mehr richtig ausführen. Das Programm 
hängt sich auf und erzeugt eine tolle Prozessleiche.
Nun meine Fragen:
1. Was muss ich an meinem Code ändern um diesen Absturz zu vermeiden?
2. Müssen soviele GetCommStatus-Abfragen und WaitOnMask-Abfragen 
stattfinden oder erzeugt mein Code das?.. wenn dem so ist, was muss ich 
ändern damit diese Abfragen nicht ständig sondern nur einmal 
durchgeführt werden?
3. Ist meine Programm - Struktur soweit in Ordnung?

Ich bitte um Antworten..  aber ich danke schonmal im vorraus :) Danke!. 
^^

von bluppdidupp (Gast)


Lesenswert?

Mit WaitForCommEvent() (was IOCTL_SERIAL_WAIT_ON_MASK verursacht) wartet 
die SerialPort-Klasse (u.a.) auf eingehende Daten um das 
DataReceived-Event oder auch das ErrorReceived-Event auszulösen.

Womöglich wird einfach nichts mehr gesendet oder ein Treiber-Bug 
verursacht das keine Events mehr ausgelöst werden?
Funktioniert denn in HyperTerminal oder ähnlich alles normal?

von Matthias S. (schwarz)


Lesenswert?

Danke erstmal für die schnelle Antwort und mit putty sieht es wie folgt 
aus:
1
0.00003182  putty.exe  IRP_MJ_CREATE  vSerial6  SUCCESS  Options: Open   
2
0.00002122  putty.exe  IOCTL_SERIAL_GET_BAUD_RATE  vSerial6  SUCCESS    
3
0.00001369  putty.exe  IOCTL_SERIAL_GET_LINE_CONTROL  vSerial6  SUCCESS    
4
0.00001061  putty.exe  IOCTL_SERIAL_GET_CHARS  vSerial6  SUCCESS    
5
0.00001198  putty.exe  IOCTL_SERIAL_GET_HANDFLOW  vSerial6  SUCCESS    
6
0.00001095  putty.exe  IOCTL_SERIAL_GET_BAUD_RATE  vSerial6  SUCCESS    
7
0.00001095  putty.exe  IOCTL_SERIAL_GET_LINE_CONTROL  vSerial6  SUCCESS    
8
0.00000992  putty.exe  IOCTL_SERIAL_GET_CHARS  vSerial6  SUCCESS    
9
0.00001198  putty.exe  IOCTL_SERIAL_GET_HANDFLOW  vSerial6  SUCCESS    
10
0.00000992  putty.exe  IOCTL_SERIAL_SET_BAUD_RATE  vSerial6  SUCCESS  Rate: 9600  
11
0.00001027  putty.exe  IOCTL_SERIAL_SET_DTR  vSerial6  SUCCESS    
12
0.00001095  putty.exe  IOCTL_SERIAL_SET_LINE_CONTROL  vSerial6  SUCCESS  StopBits: 1 Parity: NONE WordLength: 8  
13
0.00000992  putty.exe  IOCTL_SERIAL_SET_CHAR  vSerial6  SUCCESS  EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13  
14
0.00007323  putty.exe  IOCTL_SERIAL_SET_HANDFLOW  vSerial6  SUCCESS  Shake:9 Replace:80 XonLimit:2048 XoffLimit:512  
15
0.00001061  putty.exe  IOCTL_SERIAL_SET_TIMEOUTS  vSerial6  SUCCESS  RI:1 RM:0 RC:0 WM:0 WC:0  
16
29.29227667  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
17
0.00001779  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
18
0.00001814  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
19
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: I  
20
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
21
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
22
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
23
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
24
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: S  
25
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: C  
26
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: H  
27
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: O  
28
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: R  
29
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: Z  
30
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
31
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
32
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: M  
33
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: A  
34
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: T  
35
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: T  
36
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: H  
37
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: I  
38
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: A  
39
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: S  
40
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
41
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
42
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
43
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
44
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
45
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
46
0.00931634  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
47
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
48
0.00001061  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
49
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
50
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
51
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
52
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
53
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
54
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
55
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
56
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
57
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
58
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
59
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
60
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
61
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
62
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
63
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
64
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
65
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
66
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
67
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
68
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
69
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
70
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 9  
71
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 2  
72
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
73
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
74
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
75
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 2  
76
0.00939231  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
77
0.00001027  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
78
0.00000924  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
79
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
80
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
81
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
82
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
83
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
84
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
85
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
86
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
87
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
88
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
89
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
90
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
91
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
92
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
93
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
94
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
95
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
96
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
97
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: X  
98
7.56461248  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
99
0.00001506  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
100
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
101
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
102
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
103
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
104
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
105
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
106
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
107
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
108
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
109
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
110
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
111
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
112
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
113
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
114
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
115
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
116
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
117
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
118
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
119
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
120
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
121
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
122
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
123
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
124
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
125
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
126
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
127
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
128
0.00824427  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
129
0.00001027  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
130
0.00000924  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: *  
131
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
132
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
133
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
134
7.77480708  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
135
0.00001506  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
136
0.00000924  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
137
0.00000890  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: I  
138
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
139
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
140
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
141
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
142
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: S  
143
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: C  
144
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: H  
145
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: O  
146
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: R  
147
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: Z  
148
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
149
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
150
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: M  
151
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: A  
152
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: T  
153
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: T  
154
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: H  
155
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: I  
156
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: A  
157
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: S  
158
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
159
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
160
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
161
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
162
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
163
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
164
0.00938546  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
165
0.00000924  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
166
0.00001027  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
167
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
168
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
169
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
170
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
171
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
172
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
173
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
174
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
175
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
176
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
177
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
178
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
179
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
180
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
181
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
182
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 7  
183
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
184
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
185
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: D  
186
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
187
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
188
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 9  
189
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 2  
190
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
191
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
192
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
193
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 2  
194
0.00939812  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 6  
195
0.00001027  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
196
0.00000924  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
197
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
198
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 0  
199
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
200
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 1  
201
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 5  
202
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
203
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
204
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
205
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
206
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
207
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
208
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
209
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: <  
210
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: 4  
211
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
212
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
213
0.00000855  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
214
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: .  
215
0.00000821  putty.exe  IRP_MJ_READ  vSerial6  SUCCESS  Length 1: X  
216
20.39890644  putty.exe  IRP_MJ_READ  vSerial6  CANCELLED  Length 1  
217
0.00003114  putty.exe  IRP_MJ_CLEANUP  vSerial6  SUCCESS    
218
0.08510186  putty.exe  IRP_MJ_CLOSE  vSerial6  SUCCESS
Hier treten auch keine Fehler auf und er führt nicht unendlich viele 
GetCommStatus/WaitOnMask -Abfragen aus. Außerdem bleibt es niemals 
hängen.

von bluppdidupp (Gast)


Lesenswert?

putty scheint demnach keine Events zu nutzen.
Dann würde ich mal testweise  .ReadTimeout/.WriteTimeout setzen, 
DataReceived weglassen und einen eigenen Thread starten und darin 
einfach .Read() aufrufen.
Wenn dann die Daten sauber reinkommen, dürfte der Treiber verbuggt sein.

von Matthias S. (schwarz)


Lesenswert?

Hab ich beides schon gemacht. Allerdings ergab es das gleiche Ergebnis.

von Matthias S. (schwarz)


Lesenswert?

Ich bin begeistert! SOOOOOO genial!!! :D Ich habe das Problem endlich 
gelöst. Kein Fehler im Code. Der läuft perfekt.
Der Treiber war veraltet und ich habs verpasst. Nun hab ich einen neuen 
installiert und es funktioniert einwandfrei.
Das war auch die letzte Baustelle an der ich meiner Meinung nach noch 
arbeiten konnte!
Ich danke dir für deine Hilfe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.