Ich arbeite mit einem eingebetteten Gerät, das über RS232 mit dem PC verbunden ist.Wie könnte ich ein serielles Kommunikationsprotokoll in einer objektorientierten Form implementieren?
Ich muss eine Software zur Kommunikation mit diesem Embedded-Gerät tun.
Ich programmiere in Delphi. Ich habe in der Vergangenheit nie objektorientiert gearbeitet. Aber ich versuche das zu ändern.
Ich bin nicht in der Lage, objektorientiert zu denken, um dieses Problem zu lösen.
Ich habe dieses Protokoll:
<STX><STX><COMMAND>[<DATA><DATA>...]<CHKSUM><ETX>
wo:
<STX> is the Start of TeXt (0x55);
<COMMAND> can be 0x01 for read, 0x02 for write, etc;
<DATA> is any value;
<CHKSUM> is the checksum;
<ETX> is the End of TeXt (0x04).
Die Software Computer einen Befehl über die serielle senden wird, und das Gerät wird antworten, das gleiche Protokoll.
Zum Beispiel:
Reset command
PC sends : <STX><STX><0x09><0x00><CHKSUM><ETX>
Device answer: <STX><STX><0x09><0x00><CHKSUM><ETX>
Get Version
PC sends : <STX><STX><0x00><0x02><CHKSUM><ETX>
Device answer: <STX><STX><0x00><0x00><VER_L><VER_H><CHKSUM><ETX>
Ich habe eine Datei-Stream an das Gerät zu senden.
Ich möchte Vorschläge und/oder Beispiele für die beste Art und Weise erhalten, dies in einer objektorientierten Weise zu implementieren. Ich würde gerne auch einen Unit-Test machen können.
Dank
Serielle Kommunikation benötigt eine State-Machine, um gut zu funktionieren. Es gibt viele Möglichkeiten, objektorientierte Zustandsautomaten zu machen. – mj2008