Forum: PC-Programmierung Datei konvertieren, HEX 30 -> HEX 00


von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe ein Gerät mit einer Überlesesoftware. Es werden Spektren 
mit Kanälen und Werten übergelesen. Wenn in einem Kanal der Wert 0 ist, 
macht das die Überlesesoftware auch richtig und da ist HEX 00. Jeder 
Kanal ist ein 4-Byte Wert.

Leider ist die Überlesesoftware nur 16Bit. Also will ich das selber mit 
einem Terminalprogramm (RS232) überlesen und aufzeichnen. Das klappt 
auch, aber in Kanälen in denen nicht seien sollte, steht jetzt eine HEX 
30 drinnen. Und es sind jetzt nur 3 Bytes je Kanal.

Da ich diese Spektren mit einem weiteren Programm lesen will, möchte ich 
jetzt die 3-Byte Datei mit den HEX 30 in leeren Kanälen in eine 4-Byte 
Datei mit HEX 00 in leeren kanälen umwandeln in C. Aber ich habe leider 
keine Idee wie ich das interpretieren muss.

Zu den Daten:
RS232 7 Daten, 2 Stopp, Parität gerade.

Angehängt ist das richtige Original und zwei weitere Versionen von denen 
ich eine in die originale umwandeln möchte.

Die beiden weiteren Versionen sind einmal mit 7e2 also wie vorgegeben 
übergelesen und einmal mit 8n1. Warum habe ich 8n1 gemacht? Weil ich mit 
dem Terminalprogramm Realterm dauernd Fehler bei der Paritätsprüfung 
bekommen habe. Aber eigentlich würde das 7n2 auch besser passen.
Ich müsste nur das zusätzliche Byte einfügen, nur wo?!

Vielen Dank!

: Bearbeitet durch User
von Amateur (Gast)


Lesenswert?

Hä?

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Ok mehr Information:

Das soll ein Spektrum sein mit je 4 Bytes je Kanal. Und bei dem Original 
passt das auch, die ersten ca. 50 Kanäle sind leer und danach kommen 
Zahlenwerte. Ich hänge mal eine Textdatei mit den Dezimalwerten an.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Habe es gelöst. Das original sind immer 4 Bytes Hex je Kanalwert. Im 8N1 
sind es immer 3 Bytes aber in HEX in ASCII geschrieben, also 6 Bytes je 
Kanal.

Das 7E2 habe ich nicht weiter angeguckt. Interessant ist aber wie es 
dazu kommt:

Ich schicke diesem Gerät über RS232 einen Befehl und erhalte das 
Spektrum als Antwort.
Wenn ich im Terminalprogramm 7E2 einstelle und auch mit diesen 
Einstellungen den Befehl schicke erhalte ich das 7E2 Spektrum als 
Antwort (HEX), wenn ich aber 8n1 einstelle und damit den Befehl sende, 
erhalte ich das 8N1 Spektrum als Antwort (ASCII).

Das Gerät erkennt also mit welchen Einstellungen ich den Befehl 
geschickt habe und antwortet dann "passend". Wobei das 8N1 nicht 
dokumentiert ist in dem Handbuch das ich hier habe, da steht nur das 7E2 
drinnen.

Jetzt lese ich also ASCII und schreibe die Zahlen als dezimal in eine 
Textdatei. C Code ist im Anhang.

Gustl

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Gustl Buheitel schrieb:
> Hallo, ich habe ein Gerät mit einer Überlesesoftware.

Was ist Überlesen? Und was macht eine Überlesesoftware?

von aGast (Gast)


Lesenswert?

Ich gehe mal davon aus, dass die "Überlesesoftware" ein Programm ist, 
mit dem man die Daten des Gerätes (Was für eins) mittels der RS232 
Schnittstelle empfangen und auswerten kann.
Für Dich stellt sich also die Frage in welchem Format bzw Protokoll die 
Daten vom Gerät an einen PC geliefert werden.
Richtig?
Da wäre es schon hilfreicher wenn wir mehr informationen bekommen. Z.B. 
Die Marke und der Typ des "Gerätes". usw.

von Gustl B. (-gb-)


Lesenswert?

Wie ich schon geschrieben habe ist es bereits gelöst.

Das Gerät ist ein alter (>20 Jahre) Vielkanaler MCA 3/1 8k. Eine 
schlecht dokumentierte Sonderanfertigung. Das Überleseprogramm schickt 
einen Befehl und bekommt als Antwort das Spektrum. Und das mache ich 
jetzt selber mit einem Terminalprogramm. Funktioniert jetzt auch super.

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.