Firmware for the mbed in the BlueSync Sensor platform. Intended to communicate with a BlueGiga BLE112 Bluetooth LE module over UART.

Dependencies:   TimerCapture mbed

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?

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