Aufgrund deiner Beispielwerte war schon klar, dass da kein overhead zurückgeschickt wird, aber im Gegenzug bedeutet das: Keine Antwort ohne Frage, rein sequentielles Protokoll. Du kannst natürlich für jedes Gerät einen eigenen ReceiveBuffer definieren, aber du kannst auch einfach zusätzlich zu CommandCode noch eine Variable DeviceNumber vom Typ Byte pflegen. Wenn du dann die Daten empfangen hast, dann kannst du CommandCode und DeviceNumber auswerten:
Delphi-Quellcode:
type
TDemoForm = class(TForm)
...
private
CommandCode: Char;
DeviceNumber: Byte;
RequestPending: boolean;
ReceiveBuffer: array of byte;
end;
Wenn du jetzt beim senden noch zusätzlich die Variable RequestPending auf TRUE setzt und im TriggerAvail-Ereignis diese Variable wieder auf FALSE setzt, dann kannst du die Abfragen serialisieren und es gibt keine überschriebenen Daten im Empfangspuffer.
marabu