Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: BDV001 Protokoll und CheckSum

  Alt 18. Jan 2008, 10:22
Zitat von SvB:
@Muetze1
Irgendwie habe ich ein Brett vor dem Kopf. Ich komme nicht drauf, wie ich Deine funktion benutzen soll, wie rufe ich die auf? Mit Pointern usw. habe ich es nicht so.
Ich habe mal alle Bytes als Bits (0+1) nacheinander in ein Memo gestellt.
Du schickst doch keine solche strings über die Schnittstelle sondern Bytes. Diese musst du in der Funktion angeben.

Beispiel: Das Array sind die zu sendenden Daten, der letzte Eintrag im Array ist die Checksumme:
Delphi-Quellcode:
procedure SendData;
var
  lData: packed array[5] of byte;
begin
  lData[0] := $44;
  lData[1] := $55; // deine Daten halt
  lData[2] := $33;
  lData[3] := $33;

  lData[4] := CalcChecksum(lData[0], 4);

  Serial.SendBytes(lData);
end;
Wenn du die Daten mit 0 und 1 im Memo darstellst, dann machst du aus einem Bit 8 Bit, da 0 oder 1 jeweils ein Zeichen somit ein Byte darstellt. Dadurch verzerrst du die eigentlichen Informationen, du blähst die Daten auf das 8x ihrer eigentlichen Grösse auf. Somit kann da nichts richtiges mehr rauskommen, da du komplett andere Daten angibst.

Du musst zwischen den Daten und der Formatierung der Daten zur Ausgabe unterscheiden. Letzteres sollte immer nur in eine Richtung gehen, also nur zur Ausgabe.

Zitat von SvB:
Ich werde mal einen Kollegen anhauen, der das Protokoll besorgt hat, der soll da mal nachfragen.
Ich sehe eigentlich kein Problem. Berechne die Prüfsumme mal und schau nach ob es stimmt. Ich würde das erstmal probieren, bevor man sich als Firma blamiert, weil eigentlich ist es eindeutig beschrieben.
  Mit Zitat antworten Zitat