Send continuous stream to mobile
Fork of pdiot-ble-notify-array by
Revision 47:4905acf20758, committed 2017-10-04
- Comitter:
- vladb
- Date:
- Wed Oct 04 10:58:38 2017 +0000
- Parent:
- 46:dfdf7d1ebde2
- Commit message:
- continuous stream sent to mobile
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MPU9250.lib Wed Oct 04 10:58:38 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/teams/Edutech/code/MPU9250/#98a0cccbc509
--- a/source/ButtonService.h Tue Oct 03 08:46:39 2017 +0000 +++ b/source/ButtonService.h Wed Oct 04 10:58:38 2017 +0000 @@ -14,6 +14,23 @@ * limitations under the License. */ +#include "mbed.h" +#include "MPU9250.h" + +// Serial comms +Serial pc(USBTX, USBRX); + +// Sensor board library +MPU9250 mpu = MPU9250(p26, p27); + + +// Configuration +bool test_comms = true; +bool do_sensor_init = false; +bool do_sensor_self_test = true; +bool print_accel = true; +bool print_gyro = true; + #ifndef __BLE_BUTTON_SERVICE_H__ #define __BLE_BUTTON_SERVICE_H__ @@ -29,44 +46,67 @@ GattService buttonService(ButtonService::BUTTON_SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); ble.gattServer().addService(buttonService); } + + void updateButtonState(bool newState) { - uint8_t v[12] = {0}; - if (newState) { - v[0] = 0; - v[1] = 1; - v[2] = 2; - v[3] = 3; - v[4] = 4; - v[5] = 5; - v[6] = 0; - v[7] = 1; - v[8] = 2; - v[9] = 3; - v[10] = 4; - v[11] = 5; - } - else { - v[0] = 6; - v[1] = 7; - v[2] = 8; - v[3] = 9; - v[4] = 10; - v[5] = 11; - v[6] = 6; - v[7] = 7; - v[8] = 8; - v[9] = 9; - v[10] = 10; - v[11] = 11; - } + + float test_result[6] = {0.0,0.0,0.0,0.0,0.0,0.0}; + int16_t accel[3] = {0,0,0}; + int16_t gyro[3] = {0,0,0}; + int16_t temp = 0; +// uint8_t v[12] = {0}; +// if (newState) { +// v[0] = 0; +// v[1] = 1; +// v[2] = 2; +// v[3] = 3; +// v[4] = 4; +// v[5] = 5; +// v[6] = 0; +// v[7] = 1; +// v[8] = 2; +// v[9] = 3; +// v[10] = 4; +// v[11] = 5; +// } +// else { +// v[0] = 6; +// v[1] = 7; +// v[2] = 8; +// v[3] = 9; +// v[4] = 10; +// v[5] = 11; +// v[6] = 6; +// v[7] = 7; +// v[8] = 8; +// v[9] = 9; +// v[10] = 10; +// v[11] = 11; +// } + uint8_t v[6] = {0}; + if (print_accel) { + mpu.readAccelData(accel); + float ax = accel[0] * 2.0 / 32768.0; v[0] = ax; + float ay = accel[1] * 2.0 / 32768.0; v[1] = ay; + float az = accel[2] * 2.0 / 32768.0; v[2] = az; + pc.printf("accel: (%f, %f, %f)\n", ax,ay,az); + } + + if (print_gyro) { + mpu.readGyroData(gyro); + float gx = gyro[0] * 250.0 / 32768.0; v[3] = gx; + float gy = gyro[1] * 250.0 / 32768.0; v[4] = gy; + float gz = gyro[2] * 250.0 / 32768.0; v[5] = gz; + pc.printf("gyro: (%f, %f, %f)\n", gx,gy,gz); + } //ble.gattServer().write(buttonState.getValueHandle(), (uint8_t *)v, sizeof(v)); ble.updateCharacteristicValue(buttonState.getValueHandle(), (uint8_t *)v ,sizeof(v)); } private: BLE &ble; - ReadOnlyArrayGattCharacteristic<uint8_t, sizeof(uint8_t[12])> buttonState; + ReadOnlyArrayGattCharacteristic<uint8_t, sizeof(uint8_t[6])> buttonState; }; #endif /* #ifndef __BLE_BUTTON_SERVICE_H__ */
--- a/source/main.cpp Tue Oct 03 08:46:39 2017 +0000 +++ b/source/main.cpp Wed Oct 04 10:58:38 2017 +0000 @@ -31,8 +31,10 @@ ButtonService *buttonServicePtr; void buttonPressedCallback(void) -{ +{ + eventQueue.call(Callback<void(bool)>(buttonServicePtr, &ButtonService::updateButtonState), true); + } void buttonReleasedCallback(void) @@ -48,6 +50,10 @@ void blinkCallback(void) { led1 = !led1; /* Do blinky on LED1 to indicate system aliveness. */ + pc.printf("blink"); + + eventQueue.call(Callback<void(bool)>(buttonServicePtr, &ButtonService::updateButtonState), true); + } void onBleInitError(BLE &ble, ble_error_t error) @@ -102,6 +108,7 @@ ble.init(bleInitComplete); eventQueue.dispatch_forever(); - + + return 0; }