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-mbedo-hal.cpp
vsutardja 0:aca5a32d2759 3 *
vsutardja 0:aca5a32d2759 4 * Created on: Mar 4, 2015
vsutardja 0:aca5a32d2759 5 * Author: Ducky
vsutardja 0:aca5a32d2759 6 *
vsutardja 0:aca5a32d2759 7 * Telemetry HAL for Serial on mBed.
vsutardja 0:aca5a32d2759 8 */
vsutardja 0:aca5a32d2759 9
vsutardja 0:aca5a32d2759 10 #include "telemetry.h"
vsutardja 0:aca5a32d2759 11
vsutardja 0:aca5a32d2759 12 #ifdef TELEMETRY_HAL_MBED
vsutardja 0:aca5a32d2759 13
vsutardja 0:aca5a32d2759 14 namespace telemetry {
vsutardja 0:aca5a32d2759 15
vsutardja 0:aca5a32d2759 16 void MbedHal::transmit_byte(uint8_t data) {
vsutardja 0:aca5a32d2759 17 // TODO: optimize with DMA
vsutardja 0:aca5a32d2759 18 if (serial != NULL) {
vsutardja 0:aca5a32d2759 19 serial->putc(data);
vsutardja 0:aca5a32d2759 20 }
vsutardja 0:aca5a32d2759 21 }
vsutardja 0:aca5a32d2759 22
vsutardja 0:aca5a32d2759 23 size_t MbedHal::rx_available() {
vsutardja 0:aca5a32d2759 24 if (serial != NULL) {
vsutardja 0:aca5a32d2759 25 return serial->rxBufferGetCount();
vsutardja 0:aca5a32d2759 26 } else {
vsutardja 0:aca5a32d2759 27 return 0;
vsutardja 0:aca5a32d2759 28 }
vsutardja 0:aca5a32d2759 29
vsutardja 0:aca5a32d2759 30 }
vsutardja 0:aca5a32d2759 31
vsutardja 0:aca5a32d2759 32 uint8_t MbedHal::receive_byte() {
vsutardja 0:aca5a32d2759 33 if (serial != NULL) {
vsutardja 0:aca5a32d2759 34 return serial->getc();
vsutardja 0:aca5a32d2759 35 } else {
vsutardja 0:aca5a32d2759 36 return 0;
vsutardja 0:aca5a32d2759 37 }
vsutardja 0:aca5a32d2759 38 }
vsutardja 0:aca5a32d2759 39
vsutardja 0:aca5a32d2759 40 void MbedHal::do_error(const char* msg) {
vsutardja 0:aca5a32d2759 41 if (serial != NULL) {
vsutardja 0:aca5a32d2759 42 serial->puts(msg);
vsutardja 0:aca5a32d2759 43 serial->puts("\r\n");
vsutardja 0:aca5a32d2759 44 }
vsutardja 0:aca5a32d2759 45 }
vsutardja 0:aca5a32d2759 46
vsutardja 0:aca5a32d2759 47 uint32_t MbedHal::get_time_ms() {
vsutardja 0:aca5a32d2759 48 return timer.read_ms();
vsutardja 0:aca5a32d2759 49 }
vsutardja 0:aca5a32d2759 50
vsutardja 0:aca5a32d2759 51 }
vsutardja 0:aca5a32d2759 52
vsutardja 0:aca5a32d2759 53 #endif