telemetry

Dependents:   Everything Sequential_Timing FixedPWM FixedPWMWill

Committer:
vsutardja
Date:
Fri Mar 18 22:33:32 2016 +0000
Revision:
0:aca5a32d2759
init

Who changed what in which revision?

UserRevisionLine numberNew 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