Hallo ich will über das COMPort.DataReceived Event alle Daten empfangen. Mache dass so:
Dass Problem ist ja dass ich nicht immer weis wie lang sind die Daten.
Wenn man das IO.Ports.SerialData.Eof Event benutz zum Beispiel:
Ist man dann sicher dass alle Daten empfangen wurden ? Bis jetzt habe ich immer 100ms gewartet und dann die Abrage gemacht. ReceivedBytesThreshold =1
Kommt immer wen alle Daten im Puffer das EOF ?
VB.NET-Quellcode
-
- Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles COMPort.DataReceived
- Dim RXByte As Byte
- Do
- RXCnt = 0
- Do
- RXByte = CByte(COMPort.ReadByte)
- RXArray(RXCnt) = LookUpTable(RXByte >> 4)
- RXCnt = RXCnt + 1
- RXArray(RXCnt) = LookUpTable(RXByte And 15)
- RXCnt = RXCnt + 1
- RXArray(RXCnt) = CChar(" ")
- RXCnt = RXCnt + 1
- Loop Until (COMPort.BytesToRead = 0)
- Me.Invoke(New MethodInvoker(AddressOf Display))
- Loop Until (COMPort.BytesToRead = 0)
Dass Problem ist ja dass ich nicht immer weis wie lang sind die Daten.
Wenn man das IO.Ports.SerialData.Eof Event benutz zum Beispiel:
Ist man dann sicher dass alle Daten empfangen wurden ? Bis jetzt habe ich immer 100ms gewartet und dann die Abrage gemacht. ReceivedBytesThreshold =1
Kommt immer wen alle Daten im Puffer das EOF ?