ich würde gern meinen Tauchcomputer ein Mare Puk mit dem USB Interface (USB2Serial) Drak selbst aus lesen um die Daten der Tauchgänge in eigenes Logbuch zu schreiben und nach belieben selber Grafisch auf zu bereiten.
Doch meine Problem ist wie bekomme ich raus wann ein Tauchgang im Datenstrom anfängt und wann hört er auf?
hier mal ein Mitschnitte der Daten der Originalsoftware
Also die Einstellungen bis Zeil 34 für der Port habe ich schon hin bekommen.02:55:04 DRAK.exe IRP_MJ_CREATE Silabser0 SUCCESS Options: Open
02:55:04 DRAK.exe IOCTL_SERIAL_GET_BAUD_RATE Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_LINE_CONTROL Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_CHARS Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_HANDFLOW Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_BAUD_RATE Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_LINE_CONTROL Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_CHARS Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_GET_HANDFLOW Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_SET_BAUD_RATE Silabser0 SUCCESS Rate: 38400
02:55:04 DRAK.exe IOCTL_SERIAL_CLR_RTS Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_CLR_DTR Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_SET_LINE_CONTROL Silabser0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
02:55:04 DRAK.exe IOCTL_SERIAL_SET_CHAR Silabser0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0
02:55:04 DRAK.exe IOCTL_SERIAL_SET_HANDFLOW Silabser0 SUCCESS Shake:0 Replace:0 XonLimit:0 XoffLimit:0
02:55:04 DRAK.exe IOCTL_SERIAL_GET_TIMEOUTS Silabser0 SUCCESS
02:55:04 DRAK.exe IOCTL_SERIAL_SET_TIMEOUTS Silabser0 SUCCESS RI:500 RM:0 RC:500 WM:0 WC:1000
02:55:04 DRAK.exe IRP_MJ_CLEANUP Silabser0 SUCCESS
02:55:04 DRAK.exe IRP_MJ_CLOSE Silabser0 SUCCESS
02:55:06 DRAK.exe IRP_MJ_CREATE Silabser0 SUCCESS Options: Open
02:55:06 DRAK.exe IOCTL_SERIAL_GET_BAUD_RATE Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_LINE_CONTROL Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_CHARS Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_HANDFLOW Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_BAUD_RATE Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_LINE_CONTROL Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_CHARS Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_GET_HANDFLOW Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_SET_BAUD_RATE Silabser0 SUCCESS Rate: 38400
02:55:06 DRAK.exe IOCTL_SERIAL_CLR_RTS Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_CLR_DTR Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_SET_LINE_CONTROL Silabser0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
02:55:06 DRAK.exe IOCTL_SERIAL_SET_CHAR Silabser0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0
02:55:06 DRAK.exe IOCTL_SERIAL_SET_HANDFLOW Silabser0 SUCCESS Shake:0 Replace:0 XonLimit:0 XoffLimit:0
02:55:06 DRAK.exe IOCTL_SERIAL_GET_TIMEOUTS Silabser0 SUCCESS
02:55:06 DRAK.exe IOCTL_SERIAL_SET_TIMEOUTS Silabser0 SUCCESS RI:500 RM:0 RC:500 WM:0 WC:1000
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: <
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 5
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 1
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: >
02:55:06 DRAK.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser0 SUCCESS Mask: RXCHAR
02:55:06 DRAK.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser0 SUCCESS
02:55:06 DRAK.exe IRP_MJ_READ Silabser0 SUCCESS Length 68: <000709000057560056A3000B1A06070100007B08010011340001000100000000A5>
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: <
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 5
02:55:06 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 1
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: >
02:55:07 DRAK.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser0 SUCCESS Mask: RXCHAR
02:55:07 DRAK.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser0 SUCCESS
02:55:07 DRAK.exe IRP_MJ_READ Silabser0 SUCCESS Length 68: <000709000057560056A3000B1A06070100007B08010011340001000100000000A5>
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: <
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 5
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 1
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: A
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: >
02:55:07 DRAK.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser0 SUCCESS Mask: RXCHAR
02:55:07 DRAK.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser0 SUCCESS
02:55:07 DRAK.exe IRP_MJ_READ Silabser0 SUCCESS Length 68: <0120A001000101C800011E00013200FF0000000000000000000000000000FF00A7>
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: <
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 5
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 1
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 4
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: C
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: >
02:55:07 DRAK.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser0 SUCCESS Mask: RXCHAR
02:55:07 DRAK.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser0 SUCCESS
02:55:07 DRAK.exe IRP_MJ_READ Silabser0 SUCCESS Length 68: <010000020073760004010809181112FF0A00A04D0000087F0000000000000000C9>
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: <
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 5
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 1
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 6
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 2
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 0
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: 8
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: E
02:55:07 DRAK.exe IRP_MJ_WRITE Silabser0 SUCCESS Length 1: >
02:55:07 DRAK.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser0 SUCCESS Mask: RXCHAR
02:55:07 DRAK.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser0 SUCCESS
02:55:07 DRAK.exe IRP_MJ_READ Silabser0 SUCCESS Length 68: <FFFFFFFFFFFFFFFFFFFFFF4E0AFFFFFF3B00200020001B000001010000000000C0>
Wenn ich Zeile 36 bis 47 sende bekomme genau die Antwort wie in Zeile 50.
Nun meine Frage sende ich immer die Start Adressen für den nästen Datenblock?
Und wie finde ich die Informationen in den Datenblock.
Folgendes muss meiner Meinung nach enthalten sein.
ID >>> Tauchgang Kennung
Datum, Uhrzeit >>> Tauchgang beginn
Temperatur >>> min Wasser Temperatur
Dauer >>> Tauchgang dauer in min
Wasser >>> Süß oder Salz
Luft >>> Luft, Nitrox (Gemisch Verhältnis)
Tiefenmessung >>> ca alle 40sec wird die Tiefe gemessen
Tauchunfall >>> Deco, Nullzeit
Ich hoffe das Hilft weiter falls noch fragen sind versuche ich sie zu beantworten.
Ich möchte keine Lösung sondern ein weg.
ich habe selbst verständlich Google und Co bereits sehr erfolglos bemüht.
MFG Aspi
Danke an alle die zu Helfen versuchen