telemetry
Dependents: Everything Sequential_Timing FixedPWM FixedPWMWill
protocol.h@0:aca5a32d2759, 2016-03-18 (annotated)
- Committer:
- vsutardja
- Date:
- Fri Mar 18 22:33:32 2016 +0000
- Revision:
- 0:aca5a32d2759
init
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsutardja | 0:aca5a32d2759 | 1 | /** |
vsutardja | 0:aca5a32d2759 | 2 | * Telemetry wire protocol constants. |
vsutardja | 0:aca5a32d2759 | 3 | */ |
vsutardja | 0:aca5a32d2759 | 4 | |
vsutardja | 0:aca5a32d2759 | 5 | #ifndef _PROTOCOL_H_ |
vsutardja | 0:aca5a32d2759 | 6 | #define _PROTOCOL_H_ |
vsutardja | 0:aca5a32d2759 | 7 | |
vsutardja | 0:aca5a32d2759 | 8 | namespace telemetry { |
vsutardja | 0:aca5a32d2759 | 9 | |
vsutardja | 0:aca5a32d2759 | 10 | namespace protocol { |
vsutardja | 0:aca5a32d2759 | 11 | |
vsutardja | 0:aca5a32d2759 | 12 | // Start of frame sequence. |
vsutardja | 0:aca5a32d2759 | 13 | const uint8_t SOF_SEQ[] = {0x05, 0x39}; |
vsutardja | 0:aca5a32d2759 | 14 | const uint8_t SOF_LENGTH = sizeof(SOF_SEQ) / sizeof(SOF_SEQ[0]); |
vsutardja | 0:aca5a32d2759 | 15 | // A dummy byte to "stuff" when the start of frame shows up in the data. |
vsutardja | 0:aca5a32d2759 | 16 | const uint8_t SOF_SEQ0_STUFF = 0x00; |
vsutardja | 0:aca5a32d2759 | 17 | |
vsutardja | 0:aca5a32d2759 | 18 | const size_t LENGTH_SIZE = 2; |
vsutardja | 0:aca5a32d2759 | 19 | |
vsutardja | 0:aca5a32d2759 | 20 | // TODO: make these length independent |
vsutardja | 0:aca5a32d2759 | 21 | |
vsutardja | 0:aca5a32d2759 | 22 | const uint8_t OPCODE_HEADER = 0x81; |
vsutardja | 0:aca5a32d2759 | 23 | const uint8_t OPCODE_DATA = 0x01; |
vsutardja | 0:aca5a32d2759 | 24 | |
vsutardja | 0:aca5a32d2759 | 25 | const uint8_t DATAID_TERMINATOR = 0x00; |
vsutardja | 0:aca5a32d2759 | 26 | |
vsutardja | 0:aca5a32d2759 | 27 | const uint8_t DATATYPE_NUMERIC = 0x01; |
vsutardja | 0:aca5a32d2759 | 28 | const uint8_t DATATYPE_NUMERIC_ARRAY = 0x02; |
vsutardja | 0:aca5a32d2759 | 29 | |
vsutardja | 0:aca5a32d2759 | 30 | const uint8_t RECORDID_TERMINATOR = 0x00; |
vsutardja | 0:aca5a32d2759 | 31 | const uint8_t RECORDID_INTERNAL_NAME = 0x01; |
vsutardja | 0:aca5a32d2759 | 32 | const uint8_t RECORDID_DISPLAY_NAME = 0x02; |
vsutardja | 0:aca5a32d2759 | 33 | const uint8_t RECORDID_UNITS = 0x03; |
vsutardja | 0:aca5a32d2759 | 34 | |
vsutardja | 0:aca5a32d2759 | 35 | const uint8_t RECORDID_OVERRIDE_CTL = 0x08; |
vsutardja | 0:aca5a32d2759 | 36 | const uint8_t RECORDID_OVERRIDE_DATA = 0x08; |
vsutardja | 0:aca5a32d2759 | 37 | |
vsutardja | 0:aca5a32d2759 | 38 | const uint8_t RECORDID_NUMERIC_SUBTYPE = 0x40; |
vsutardja | 0:aca5a32d2759 | 39 | const uint8_t RECORDID_NUMERIC_LENGTH = 0x41; |
vsutardja | 0:aca5a32d2759 | 40 | const uint8_t RECORDID_NUMERIC_LIMITS = 0x42; |
vsutardja | 0:aca5a32d2759 | 41 | const uint8_t RECORDID_ARRAY_COUNT = 0x50; |
vsutardja | 0:aca5a32d2759 | 42 | |
vsutardja | 0:aca5a32d2759 | 43 | const uint8_t NUMERIC_SUBTYPE_UINT = 0x01; |
vsutardja | 0:aca5a32d2759 | 44 | const uint8_t NUMERIC_SUBTYPE_SINT = 0x02; |
vsutardja | 0:aca5a32d2759 | 45 | const uint8_t NUMERIC_SUBTYPE_FLOAT = 0x03; |
vsutardja | 0:aca5a32d2759 | 46 | |
vsutardja | 0:aca5a32d2759 | 47 | /** |
vsutardja | 0:aca5a32d2759 | 48 | * Returns the subtype field value for a numeric recordid. |
vsutardja | 0:aca5a32d2759 | 49 | */ |
vsutardja | 0:aca5a32d2759 | 50 | template<typename T> uint8_t numeric_subtype(); |
vsutardja | 0:aca5a32d2759 | 51 | } |
vsutardja | 0:aca5a32d2759 | 52 | |
vsutardja | 0:aca5a32d2759 | 53 | } |
vsutardja | 0:aca5a32d2759 | 54 | |
vsutardja | 0:aca5a32d2759 | 55 | #endif |