Firmware for the mbed in the BlueSync Sensor platform. Intended to communicate with a BlueGiga BLE112 Bluetooth LE module over UART.
Dependencies: TimerCapture mbed
main.cpp@1:cb941edd7bce, 2015-05-24 (annotated)
- Committer:
- dishbreak
- Date:
- Sun May 24 06:28:41 2015 +0000
- Revision:
- 1:cb941edd7bce
- Parent:
- 0:2bc22bc992ac
- Child:
- 2:ac474fccf29b
Adding capability to reply with observed timestamp.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dishbreak | 0:2bc22bc992ac | 1 | #include "mbed.h" |
dishbreak | 0:2bc22bc992ac | 2 | #include "TimerCapture.h" |
dishbreak | 1:cb941edd7bce | 3 | #include "bluesync_types.h" |
dishbreak | 0:2bc22bc992ac | 4 | |
dishbreak | 1:cb941edd7bce | 5 | /** @file main.cpp |
dishbreak | 1:cb941edd7bce | 6 | @brief Main for the BlueSync mbed application. */ |
dishbreak | 1:cb941edd7bce | 7 | |
dishbreak | 1:cb941edd7bce | 8 | Serial ble112(p9, p10); ///< Serial connection for communicating with the BLE112. |
dishbreak | 1:cb941edd7bce | 9 | TimerCapture * capPin; ///< Capture pin, wired to GPIO pin on BLE112. |
dishbreak | 1:cb941edd7bce | 10 | DigitalOut bleScanningLed(LED1); |
dishbreak | 0:2bc22bc992ac | 11 | |
dishbreak | 0:2bc22bc992ac | 12 | void on_serial_rcv() { |
dishbreak | 0:2bc22bc992ac | 13 | ble112.getc(); |
dishbreak | 0:2bc22bc992ac | 14 | uint8_t hw_addr[6]; |
dishbreak | 0:2bc22bc992ac | 15 | for (int i = 5; i >=0; i--) { |
dishbreak | 0:2bc22bc992ac | 16 | hw_addr[i] = ble112.getc(); |
dishbreak | 0:2bc22bc992ac | 17 | } |
dishbreak | 0:2bc22bc992ac | 18 | |
dishbreak | 0:2bc22bc992ac | 19 | printf("***************\r\n"); |
dishbreak | 0:2bc22bc992ac | 20 | printf("HW Addr: %02x:%02x:%02x:%02x:%02x:%02x ", |
dishbreak | 0:2bc22bc992ac | 21 | hw_addr[0], |
dishbreak | 0:2bc22bc992ac | 22 | hw_addr[1], |
dishbreak | 0:2bc22bc992ac | 23 | hw_addr[2], |
dishbreak | 0:2bc22bc992ac | 24 | hw_addr[3], |
dishbreak | 0:2bc22bc992ac | 25 | hw_addr[4], |
dishbreak | 0:2bc22bc992ac | 26 | hw_addr[5]); |
dishbreak | 0:2bc22bc992ac | 27 | printf("Obs At: %d\r\n", capPin->getTime()); |
dishbreak | 1:cb941edd7bce | 28 | |
dishbreak | 1:cb941edd7bce | 29 | intByteArray bitArray; |
dishbreak | 1:cb941edd7bce | 30 | bitArray.integer = capPin->getTime(); |
dishbreak | 1:cb941edd7bce | 31 | |
dishbreak | 1:cb941edd7bce | 32 | for (int i = 3; i >= 0; i--) { |
dishbreak | 1:cb941edd7bce | 33 | ble112.putc(bitArray.byte[i]); |
dishbreak | 1:cb941edd7bce | 34 | } |
dishbreak | 0:2bc22bc992ac | 35 | } |
dishbreak | 0:2bc22bc992ac | 36 | |
dishbreak | 0:2bc22bc992ac | 37 | int main() { |
dishbreak | 0:2bc22bc992ac | 38 | TimerCapture::startTimer(); |
dishbreak | 0:2bc22bc992ac | 39 | capPin = new TimerCapture(p30); |
dishbreak | 0:2bc22bc992ac | 40 | ble112.baud(115200); |
dishbreak | 0:2bc22bc992ac | 41 | ble112.set_flow_control(SerialBase::RTSCTS, p7, p8); |
dishbreak | 0:2bc22bc992ac | 42 | ble112.attach(&on_serial_rcv); |
dishbreak | 0:2bc22bc992ac | 43 | } |