telemetry
Dependents: Everything Sequential_Timing FixedPWM FixedPWMWill
telemetry-hal.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 | #ifndef _TELEMETRY_HAL_H_ |
vsutardja | 0:aca5a32d2759 | 2 | #define _TELEMETRY_HAL_H_ |
vsutardja | 0:aca5a32d2759 | 3 | |
vsutardja | 0:aca5a32d2759 | 4 | namespace telemetry { |
vsutardja | 0:aca5a32d2759 | 5 | |
vsutardja | 0:aca5a32d2759 | 6 | // Hardware abstraction layer for the telemetry server. |
vsutardja | 0:aca5a32d2759 | 7 | class HalInterface { |
vsutardja | 0:aca5a32d2759 | 8 | public: |
vsutardja | 0:aca5a32d2759 | 9 | virtual ~HalInterface() {} |
vsutardja | 0:aca5a32d2759 | 10 | |
vsutardja | 0:aca5a32d2759 | 11 | // Write a byte to the transmit buffer. |
vsutardja | 0:aca5a32d2759 | 12 | virtual void transmit_byte(uint8_t data) = 0; |
vsutardja | 0:aca5a32d2759 | 13 | // Returns the number of bytes available in the receive buffer. |
vsutardja | 0:aca5a32d2759 | 14 | virtual size_t rx_available() = 0; |
vsutardja | 0:aca5a32d2759 | 15 | // Returns the next byte in the receive stream. rx_available must return > 0. |
vsutardja | 0:aca5a32d2759 | 16 | virtual uint8_t receive_byte() = 0; |
vsutardja | 0:aca5a32d2759 | 17 | |
vsutardja | 0:aca5a32d2759 | 18 | // TODO: more efficient block transmit operations? |
vsutardja | 0:aca5a32d2759 | 19 | |
vsutardja | 0:aca5a32d2759 | 20 | // Called on a telemetry error. |
vsutardja | 0:aca5a32d2759 | 21 | virtual void do_error(const char* message) = 0; |
vsutardja | 0:aca5a32d2759 | 22 | |
vsutardja | 0:aca5a32d2759 | 23 | // Return the current time in milliseconds. May overflow at any time. |
vsutardja | 0:aca5a32d2759 | 24 | virtual uint32_t get_time_ms() = 0; |
vsutardja | 0:aca5a32d2759 | 25 | }; |
vsutardja | 0:aca5a32d2759 | 26 | |
vsutardja | 0:aca5a32d2759 | 27 | } |
vsutardja | 0:aca5a32d2759 | 28 | |
vsutardja | 0:aca5a32d2759 | 29 | #endif |