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 #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