Hi zusammen,
ich habe hier ein Windowsprogramm, welches über die serielle Schnittstelle mit einem KFZ-Waageinterface verbunden ist. Soll heissen, dass man damit PKWs wiegen kann.
Allerdings ist die Windows-Software nicht wirklich toll und ich würde sowieso lieber Gentoo einsetzen. Nur gibt es für Linux keine Spftware für dieses Interface. Also will ich mir da selbst was schreiben, nur fehlen mir halt die Spezifikationen des Interfaces und das Wissen über den seriellen Port.
Ich habe einfach mal den Seriellen Port belauscht:
Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 00 00 00 00 0F 24 2F
Antwort entspricht 0kg
Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 41 A0 00 00 0F C5 D0
Antwort entspricht 20kg
Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 42 C8 00 00 0F AE B9
Antwort entspricht 100
Request:50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 45 9E C0 00 0F 3F 4A
Antwort entspricht 5000kg
Request: 50 01 06 01 01 57 5D
Answer: A0 01 0B 01 80 46 43 A0 00 0F 81 8C
Antwort entspricht 12520kg
A0 01 0B 01 80 47 28 48 00 0D 01 0C (43100kg)
A0 01 0B 01 80 42 20 00 00 0F 46 51 (40kg)
A0 01 0B 01 80 46 08 40 00 0F 2A 35 (8720 kg)
A0 01 0B 01 80 C1 A0 00 00 0F 45 50 (-20kg)
A0 01 0B 01 80 C2 20 00 00 0F C6 D1 (-40kg)
Request wird vom PC gesendet, die Antwort kommt vom Interface. Soweit ich weiss, übermittelt das Interface die Gewichte immer auf 20kg genau. Die kleinste Einheit ist also nach 0kg 20kg
Was am Interface von der Waage ankommt, wissen wir noch nicht. Wir können auch noch nicht sagen, ob dsa Interface diese Hex-Werte erzeugt oder nur weiterreicht.
Die Kilogramm-Angaben sind die Angaben, die das Interface und die Software anzeigen. Das Interface zeigt bis auf 20kg genau an. In wie weit jetzt die Waage genauer wiegen kann oder es auch macht, wissen wir nicht.Kann gut sein, dass die Hex-Werte den genauen kg-Wert darstellen und nur vom Interface und der Software auf volle 20kg gerundet werden.
Ich habe nun jetzt leider keine Ahnung vom seriellen Port. Läuft dort die Kommunikation immer hex ab?
Der Request ist ja immer gleich, das könnte man also nachprogrammieren.
Aber die Antwort verstehe ich nicht ganz.
Die ersten 5 Pakete sind immer gleich, was könnte dies sein?
Ich rate mal, dass die folgenden 4 Pakete irgendwie das Gewicht verschlüsseln, da diese bei 0kg genau alle 0 sind.
dann folgt immer ein 0F, was könnte dies sein? Und was bedeuten die letzten beiden Pakete?
Kann man aus den hier geposteten Daten irgendwie Rückschlüsse auf das übermittelte Gewicht ziehen?
Die Waage kann bis 60000kg wiegen, darüber würde sie durchbrechen :o)
Ich habe jetzzt nur 2 negative Werte, aber den negativen Werten sollen nach unten auch keine Grenzen gesetzt sein.
Die kg-Zahlen sind die Zahlen, die das Interface und die Software anzeigen. Also muss das Interface die kg-Zahl irgendwie in diesen Hex-Werten verschlüsseln und an die Software auf dem PC schicken. Dort wird sie dann wieder von der Software dekodiert und angezeigt.
Wenn man hier von Kodierung sprechen kann...
Ein Hexeditor hat mich da bisher nicht weitergebracht, der zeigt nicht wirklich brauchbare Daten an.
Wenn sich hier jemand mit der seriellen Schnittstelle auskennt, wäre ich für jeden Tip dankbar.
Viele Grüsse
Macbeth