Ok so here is a map of our simulator:
|The Client Software running on the arduino duemilanove will use a one byte protocol. Valid data can be any 7 bit ASCII character or one of four (4) switches and its associated BCD data value.|
|arduino 1 Byte Protocol to Host|
|Bit 7||Bit 6||Bit 5||Bit 4||Bit 3||Bit 2||Bit 1||Bit 0|
|0||Valid 7 Bit ASCII Character (Keyboard)|
|1||0||0||0||BCD from Mode Switch|
|1||0||0||1||BCD from Display Switch|
|1||0||1||0||BCD from DEST thumb wheel|
|1||0||1||1||BCD from FLY-TO thumb wheel|
|1||1||x||x||Data Not Valid|
When Host Software running on the IOP receives a keystroke (one byte at a time) from the arduino the host shall respond with a 4 byte message which has the following format:
|Host 4 Byte Protocol to Client (arduino)|
|Byte 0||Byte 1||Byte 2||Byte 3|
|START BYTE||Dispaly - Digit||ASCII Char||Attributes|
|FF||0010 - 0011||36||0|
NOTE: * This should be a enumerated list with a 0 offset.
NOTE: # In this blog I will not go into the various attributes.
NOTE: This format is all so used when the CDU is listening to network traffic for updating the display with various parameters, such as Network Time, Stored Locations, Time To Destination (DME), etc.
NOTE: This blog eludes to communications between the Host Software and the Simulator, I have chosen not to talk about it at this time.
keep tuned in more to come
AFTER THOUGHT: This system was designed using an arduino duemilanove. I am now writing code on a stellaris arm® LunchPad module to see if I can move the HOST software to this platform as well.