Send continuous stream to mobile

Dependencies:   MPU9250

Fork of pdiot-ble-notify-array by Andrew Bates

Files at this revision

API Documentation at this revision

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

MPU9250.lib Show annotated file Show diff for this revision Revisions of this file
source/ButtonService.h Show annotated file Show diff for this revision Revisions of this file
source/main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r dfdf7d1ebde2 -r 4905acf20758 MPU9250.lib
--- /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
diff -r dfdf7d1ebde2 -r 4905acf20758 source/ButtonService.h
--- 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__ */
diff -r dfdf7d1ebde2 -r 4905acf20758 source/main.cpp
--- 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;
 }