Hilfe beim Ausweten der Daten einer seriellen Schnittstelle gesucht .....


Abend,

Habe es nun endlich geschafft die serielle Schnittstelle „anzuzapfen“ und den Datenstrom zwischen der Software und dem Geräte mitzuschneiden.
Es werden schön Daten gesendet und Empfangen, und es scheint auch System dahinter zu sein, aber nun stehe ich vor dem nächsten Problem, ich habe keine Ahnung wie ich die Daten interpretieren soll :smiley:

Auszug:
Schreiben:


55 ff 06 01 00 00 55 60
05 13 00 55 60 05 14 00
55 60 06 16 00 00 55 60
05 13 00 55 60 05 13 00
55 60 05 13 00 55 60 05
13 00 55 60 05 13 00 55
60 05 13 00 55 60 05 13
00 55 60 05 13 00 55 60
05 13 00 55 60 05 13 00

Lesen:


55 ff 06 01 00 00 55 60
06 ff 06 01 55 60 05 13
00 55 60 37 10 bc 1b bc
1b 2f 05 0d 0c c3 0d 6c
04 22 03 2a 00 78 01 00
23 00 00 07 00 00 19 09
0c 3e 05 bc 1b 68 2e 00
00 00 00 d2 08 00 ef 03
00 90 c5 01 00 e0 10 06

[HR][/HR]

Verbindungsaufbau:


000001: PnP Event (DOWN), 30.04.2015 22:16:01.258 (1. Device: USB Serial Port (COM5))
The device has just been connected to the system.
000002: Create Request (DOWN), 30.04.2015 22:16:22.189 +20.931 (1. Device: USB Serial Port (COM5))
Process 0x114c (<Unable to retrieve process name>) attempted to open the device
000003: Create Request (UP), 30.04.2015 22:16:22.247 +0.058 (1. Device: USB Serial Port (COM5))
Process 0x114c (<Unable to retrieve process name>) create request status: 0x00000000
000004: I/O Request (DOWN), 30.04.2015 22:16:22.247 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask
  WaitMask=RXCHAR: Any Character received, BREAK: BREAK received, ERR: Line status error occurred
000007: I/O Request (UP), 30.04.2015 22:16:22.249 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_TIMEOUTS: Retrieve timeouts
  ReadIntervalTimeout=4294967295
  ReadTotalTimeoutMultiplier=0
  ReadTotalTimeoutConstant=0
  WriteTotalTimeoutMultiplier=100
  WriteTotalTimeoutConstant=1000
000008: I/O Request (DOWN), 30.04.2015 22:16:22.249 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts
  ReadIntervalTimeout=4294967295
  ReadTotalTimeoutMultiplier=0
  ReadTotalTimeoutConstant=0
  WriteTotalTimeoutMultiplier=100
  WriteTotalTimeoutConstant=1000
000011: I/O Request (UP), 30.04.2015 22:16:22.250 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate
  Baud Rate=115200

000013: I/O Request (UP), 30.04.2015 22:16:22.250 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000015: I/O Request (UP), 30.04.2015 22:16:22.250 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_CHARS: Retrieve special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000017: I/O Request (UP), 30.04.2015 22:16:22.250 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000019: I/O Request (UP), 30.04.2015 22:16:22.251 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate
  Baud Rate=115200

000021: I/O Request (UP), 30.04.2015 22:16:22.251 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000023: I/O Request (UP), 30.04.2015 22:16:22.251 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_CHARS: Retrieve special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000025: I/O Request (UP), 30.04.2015 22:16:22.251 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000026: I/O Request (DOWN), 30.04.2015 22:16:22.251 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate
  Baud Rate=115200

000028: I/O Request (DOWN), 30.04.2015 22:16:22.252 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_RTS: Set RTS

000030: I/O Request (DOWN), 30.04.2015 22:16:22.254 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_DTR: Set DTR

000032: I/O Request (DOWN), 30.04.2015 22:16:22.256 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_LINE_CONTROL: Set line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000034: I/O Request (DOWN), 30.04.2015 22:16:22.257 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_CHARS: Set special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000036: I/O Request (DOWN), 30.04.2015 22:16:22.257 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_HANDFLOW: Set handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000039: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate
  Baud Rate=115200

000041: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000043: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_CHARS: Retrieve special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000045: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000047: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_BAUD_RATE: Retrieve Baud Rate
  Baud Rate=115200

000049: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_LINE_CONTROL: Retrieve line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000051: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_CHARS: Retrieve special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000053: I/O Request (UP), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_HANDFLOW: Retrieve handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000054: I/O Request (DOWN), 30.04.2015 22:16:22.259 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_BAUD_RATE: Set baud rate
  Baud Rate=115200

000056: I/O Request (DOWN), 30.04.2015 22:16:22.261 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_RTS: Set RTS

000058: I/O Request (DOWN), 30.04.2015 22:16:22.262 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_DTR: Set DTR

000060: I/O Request (DOWN), 30.04.2015 22:16:22.264 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_LINE_CONTROL: Set line control
  WordLength=8
  StopBits=1 stop bit
  Parity=No parity

000062: I/O Request (DOWN), 30.04.2015 22:16:22.265 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_CHARS: Set special characters
  EofChar=0x0
  ErrorChar=0x0
  BreakChar=0x0
  EventChar=0x0
  XonChar=0x11
  XoffChar=0x13
000064: I/O Request (DOWN), 30.04.2015 22:16:22.265 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_HANDFLOW: Set handshake information
  ControlHandShake=1
  FlowReplace=64
  XonLimit=2048
  XoffLimit=512

000066: I/O Request (DOWN), 30.04.2015 22:16:22.268 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_WAIT_MASK: Set current event mask
  WaitMask=RXCHAR: Any Character received, BREAK: BREAK received, ERR: Line status error occurred

000069: I/O Request (UP), 30.04.2015 22:16:22.271 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_GET_TIMEOUTS: Retrieve timeouts
  ReadIntervalTimeout=4294967295
  ReadTotalTimeoutMultiplier=0
  ReadTotalTimeoutConstant=0
  WriteTotalTimeoutMultiplier=100
  WriteTotalTimeoutConstant=1000

000070: I/O Request (DOWN), 30.04.2015 22:16:22.271 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_SET_TIMEOUTS: Set timeouts
  ReadIntervalTimeout=4294967295
  ReadTotalTimeoutMultiplier=0
  ReadTotalTimeoutConstant=0
  WriteTotalTimeoutMultiplier=100
  WriteTotalTimeoutConstant=1000

000072: I/O Request (DOWN), 30.04.2015 22:16:22.271 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_PURGE: Purge requests
  Purge mask=TXCLEAR: Write requests, RXCLEAR: Write buffer

000074: Write Request (DOWN), 30.04.2015 22:16:22.271 +0.0 (1. Device: USB Serial Port (COM5))
Buffer size: 0x6 bytes
 55 FF 06 01 00 00                                 Uÿ....

000077: I/O Request (UP), 30.04.2015 22:16:22.278 +0.005 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_WAIT_ON_MASK: Wait for event
  Wait Result=RXCHAR: Any Character received

000079: Read Request (UP), 30.04.2015 22:16:22.278 +0.0 (1. Device: USB Serial Port (COM5))
Buffer size: 0xc bytes
Status: 0x00000000
 55 FF 06 01 00 00 55 60 06 FF 06 01               Uÿ....U`.ÿ..

029752: I/O Request (DOWN), 30.04.2015 22:16:23.203 +0.812 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_PURGE: Purge requests
  Purge mask=TXCLEAR: Write requests, RXCLEAR: Write buffer

029754: Write Request (DOWN), 30.04.2015 22:16:23.203 +0.0 (1. Device: USB Serial Port (COM5))
Buffer size: 0x5 bytes
 55 60 05 13 00                                    U`...

029757: I/O Request (UP), 30.04.2015 22:16:23.212 +0.0 (1. Device: USB Serial Port (COM5))
IOCTL_SERIAL_WAIT_ON_MASK: Wait for event
  Wait Result=RXCHAR: Any Character received

029759: Read Request (UP), 30.04.2015 22:16:23.212 +0.0 (1. Device: USB Serial Port (COM5))
Buffer size: 0x3c bytes
Status: 0x00000000
 55 60 05 13 00 55 60 37 10 BC 1B BC 1B 2F 05 0D   U`...U`7.¼.¼./..
 0C C3 0D 6C 04 22 03 2A 00 78 01 00 23 00 00 07   .Ã.l.".*.x..#...
 00 00 19 09 0C 3E 05 BC 1B 68 2E 00 00 00 00 D2   .....>.¼.h.....Ò
 08 00 EF 03 00 90 C5 01 00 E0 10 06               ..ï..Å..à..


Habe das mal so versucht nachzubauen, aber ohne Erfolg :confused:


COMPort_SendText(19415, "55 FF 06 01 00 00");

IPS_Sleep(1000);

COMPort_SendText(19415, " 55 60 05 13 00");

Irgendwo scheitert es jetzt wohl am Grundverständnis …
Könnte mir bitte jemand auf die Sprünge helfen, wie ich den Datenfluss mit IPS hinbekommen?

Besten Dank
Gruß
Manfred

Kann es sein das Du Hex-Daten als Text abschickst?

Willst Du das ?

Eine „0“ als String ergibt, glaube ich 30Hex

Du mußt deinen Comport auch mit Hexen versenden lassen :wink:

Gruß Helmut

Yupp,
und das sieht dann etwa so aus:

$StringToSend = chr(0x50).chr(0x4F).chr(0x50).chr(0x30).chr(0x32).chr(0xE2).chr(0x0B).chr(0x0D);
	COMPort_SendText(45205 /*[Serial Port PIP]*/, $StringToSend);

Hier wird natürlich ein anderes Datenwort versendet, habs nur schnell aus einem meiner Scipte rauskopiert.

gruß
bb

Ahjo ah eh :smiley:

Das kann ja alles so einfach sein, wenn man weiß wie’s gehen sollte :rolleyes:

Das Kommando senden funktioniert nun, danke euch beiden.

Nun stehe ich halt nur noch vor dem Problem aus den „Hexen“ die zurückkommen Werte zu machen die man dann auch verstehen kann.

Gibt es dafür vielleicht euch gewisse Möglichkeiten wie man die Daten aufbereiten / umrechnen etc. kann?
Das ist jetzt wohl die hohe Kunst des „Reverse Engineerings“ :eek:

Besten Dank,
Gruß
Manfred

Solange du keine Definition des Protokolls auftreiben kannst wird das sehr schwierig bis nahezu unmöglich.
Ja nach dem um was es sich hier überhaupt handelt.

Erste Anlaufstelle ist wohl Onkel Google und dann die einschlägigen Foren durchsuchen.

viel Erfolg
bb