我正在使用通過RS232連接到PC的嵌入式設備。我如何以面向對象的形式實現串行通信協議?
我需要做一個軟件來與這個嵌入式設備進行通信。
我在Delphi中編程。過去我從未習慣使用面向對象。但我試圖改變這一點。
我無法以面向對象的方式思考解決這個問題。
我有這樣的協議:
<STX><STX><COMMAND>[<DATA><DATA>...]<CHKSUM><ETX>
其中:
<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).
軟件的計算機將通過串口發送命令,設備會回答,使用相同的協議。
例如:
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>
我不得不發送一個文件流至設備。
我想獲得有關以面向對象的方式實現此功能的最佳方法的建議和/或示例。我希望能夠做單元測試。
感謝
串行通信需要一個狀態機才能正常工作。有很多方法可以完成面向對象的狀態機。 – mj2008 2011-10-24 09:02:24