Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed BLE_API nRF51822
Revision 6:dac42d8a8752, committed 2014-11-25
- Comitter:
- jstroud
- Date:
- Tue Nov 25 04:57:36 2014 +0000
- Parent:
- 5:19acba8bb777
- Commit message:
- Updated code with non-blocking sensor reading, fixed bluetooth, added "sleep when not connected to BLE" feature; ; Serial output format: "132" where 1 is sensor number, 32 is value from 0 - 99 of force sensor 1
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 19acba8bb777 -r dac42d8a8752 main.cpp
--- a/main.cpp Tue Nov 25 03:28:30 2014 +0000
+++ b/main.cpp Tue Nov 25 04:57:36 2014 +0000
@@ -16,8 +16,6 @@
BLEDevice ble;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
-
-DigitalOut powerSwitch(P0_0);
AnalogIn strut1Force(P0_1);
AnalogIn strut2Force(P0_2);
@@ -26,6 +24,12 @@
AnalogIn seatForce(P0_5);
AnalogIn cupBottomForce(P0_6);
AnalogIn sensors[6] = {strut1Force, strut2Force, strut3Force, strut4Force, seatForce, cupBottomForce};
+
+static volatile bool triggerSensorPolling = false;
+
+float sensorValues[6];
+
+char buffer[6];
UARTService *uartServicePtr;
@@ -36,8 +40,11 @@
ble.startAdvertising();
}
+
void onDataWritten(const GattCharacteristicWriteCBParams *params)
{
+ //doSomething
+ /*
if ((uartServicePtr != NULL) && (params->charHandle == uartServicePtr->getTXCharacteristicHandle())) {
uint16_t bytesRead = params->len;
DEBUG("received %u bytes\n\r", bytesRead);
@@ -52,18 +59,20 @@
char buffer[4];
DEBUG("%1.2f,%1.2f,%1.2f,%1.2f,%1.2f,%1.2f\n", strut1Force.read(), strut2Force.read(), strut3Force.read(), strut4Force.read(), seatForce.read(), cupBottomForce.read());
// sprintf(buffer, "%1.2f,%1.2f,%1.2f,%1.2f\n", strut1Force.read(), strut2Force.read(), strut3Force.read(), strut4Force.read());
- ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t *)buffer, sizeof(&buffer));
+ //ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t *)buffer, sizeof(&buffer));
for(int i=0; i <= 5; i++)
{
- sprintf(buffer, "%1.2f\n", i+0.1);
+ sprintf(buffer, "%1.2f\n", sensors[i].read());
ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t *)buffer, sizeof(&buffer));
}
}
+ */
}
void periodicCallback(void)
{
led1 = !led1;
+ triggerSensorPolling = true;
}
int main(void)
@@ -71,7 +80,6 @@
led1 = 1;
led2 = 0;
- powerSwitch = 0;
Ticker ticker;
ticker.attach(periodicCallback, 1);
@@ -95,6 +103,20 @@
uartServicePtr = &uartService;
while (true) {
+ if(triggerSensorPolling /*&& ble.getGapState().connected*/ && uartServicePtr != NULL) {
+ triggerSensorPolling = false;
+
+ for(int i = 0; i < 6; i++) {
+ sensorValues[i] = sensors[i].read()*100;
+ if(sensorValues[i] == 100) sensorValues[i] = 99;
+
+ sprintf(buffer, "%d%2.0f", i,sensorValues[i]);
+ ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), (uint8_t *)buffer, sizeof(&buffer));
+ }
+ DEBUG("trying to write values:\n%1.2f,%1.2f,%1.2f,%1.2f,%1.2f,%1.2f\n", strut1Force.read(), strut2Force.read(), strut3Force.read(), strut4Force.read(), seatForce.read(), cupBottomForce.read());
+
+ // do something
+ }
ble.waitForEvent();
}
}