Frage

ich mit einem Gerät über eine serielle über die Serialport-Klasse von .NET kommunizierte und basierend auf Fremdgerät Spezifikationsanforderungen ein „Blockprüfzeichen“ Ich brauche zu berechnen. Die einzige Information, die ich gesagt habe ist, dass es eine ist Exklusiv-ODER-Operation (XOR) und es muss über alle Zeichen durchgeführt werden.

Also, wenn ich die Zeichenfolge haben "Bob, 001", wie würde man die BCC berechnen?

War es hilfreich?

Lösung

Am wahrscheinlichsten ist Charakter basiert XOR. Sie müssen Proben von ihnen zu bekommen, um zu überprüfen, aber die meisten Prüfsummen in der Regel bei 0 enden.

Also, für ein XOR-Prüfsumme, würden Sie das Paket haben:

Bob,001X

, wobei X die Prüfsumme und, wenn Sie zusammen all diese Zeichen XOR, würden Sie am ehesten 0 erhalten.

So zu arbeiten, X, Sie XOR nur alle Zeichen in "Bob, 001". Das ist auf Grund der Tatsache, dass N xor N ist immer 0, für jede N.

Nun kann es die X sein wird, zwei Hex-Zeichen sein, wenn alles, was Sie haben erlaubt sind ist alphanumerics. Deshalb benötigen Sie entweder Beispieldaten (so können wir es aus arbeiten) oder einer geeigneten Spezifikation (die vom Gerätehersteller zur Verfügung gestellt werden soll).

Was ist die eigentliche Gerät Sie sich beziehen? Es kann sein, gibt es Informationen im Internet, das zeigt, wie es geht.

Basierend auf Update:

  

Es ist ein Amadeus Hospitality PMS-Gerät. Nein alles, was sie sagen, ist, dass es alle Zeichen ausgeführt über werden müssen. mit Ausnahme des STX und ETX.

Sie werden einige Beispieldaten erhalten müssen, um zu bestätigen, aber es ist wahrscheinlich zu einem Datenstrom so etwas wie:

        Running
Data     ChkSum
======  =======
STX 02
B   42     42
o   6f     2d
b   62     4f
,   2c     63
0   30     53
0   30     63
1   31     52
4   52     00
ETX 03

Die Position der Prüfsumme kann variieren und in der Tat, es Berechnung ist variieren aber, dass viel weniger wahrscheinlich ist. Ich glaube nicht, viel mehr kann, ohne Beispieldaten oder weitere Informationen vom Hersteller durchgeführt werden. Eine oberflächliche Suche im Internet stellte sich keine technischen Details auf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top