SmartREST client reference implementation for the u-blox C027 mbed compatible device.
Dependencies: C027 C027_Support mbed mbed-rtos MbedSmartRest LM75B MMA7660 C12832
Fork of MbedSmartRestTest by
Diff: program.cpp
- Revision:
- 8:940c782eec5e
- Parent:
- 7:f77afd49c35d
- Child:
- 9:5e182f6e5e9b
--- a/program.cpp Wed Feb 12 11:25:26 2014 +0000 +++ b/program.cpp Wed Feb 12 12:13:36 2014 +0000 @@ -5,7 +5,13 @@ #include "IntegerValue.h" #include "FloatValue.h" -const char * const serialNumber = "ublox-1231aa8d9"; +long existing(); +long create(); +bool identify(long deviceId); +bool update(long deviceId); +void loop(long deviceId); +bool measurement(long deviceId, double rssi, int ber); + StaticData srtpl( // get device by identity // Usage: 100,<SERIAL/NR> @@ -15,7 +21,7 @@ "11,200,\"$.managedObject\",,\"$.id\"\r\n" // Create device // Usage: 101,<SERIAL/NR> -"10,101,POST,/inventory/managedObjects,application/vnd.com.nsn.cumulocity.managedObject+json,application/vnd.com.nsn.cumulocity.managedObject+json,%%,STRING,\"{\"\"name\"\":\"\"Mbed Test Device\"\",\"\"type\"\":\"\"com_yourcompany?CurlDevice_1.0\"\",\"\"c8y_Hardware\"\":{\"\"revision\"\":\"\"1\"\",\"\"model\"\":\"\"Curl Test Device\"\",\"\"serialNumber\"\":\"\"%%\"\"},\"\"c8y_SupportedMeasurements\"\":[\"\"c8y_SignalStrength\"\"],\"\"c8y_IsDevice\"\":{}}\"\r\n" +"10,101,POST,/inventory/managedObjects,application/vnd.com.nsn.cumulocity.managedObject+json,application/vnd.com.nsn.cumulocity.managedObject+json,%%,STRING,\"{\"\"name\"\":\"\"Mbed Test Device\"\",\"\"type\"\":\"\"com_ublox_C027_REV-A\"\",\"\"c8y_Hardware\"\":{\"\"revision\"\":\"\"1\"\",\"\"model\"\":\"\"Curl Test Device\"\",\"\"serialNumber\"\":\"\"%%\"\"},\"\"c8y_SupportedMeasurements\"\":[\"\"c8y_SignalStrength\"\"],\"\"c8y_RequiredAvailability\"\":{ \"\"responseInterval\"\":15},\"\"c8y_IsDevice\"\":{}}\"\r\n" // Get device id // Response: 201,<DEVICE/ID> "11,201,,\"$.c8y_IsDevice\",\"$.id\"\r\n" @@ -30,19 +36,15 @@ "10,104,POST,/measurement/measurements,application/vnd.com.nsn.cumulocity.measurement+json,application/vnd.com.nsn.cumulocity.measurement+json,%%,NOW UNSIGNED NUMBER UNSIGNED,\"{\"\"time\"\":\"\"%%\"\",\"\"source\"\":{\"\"id\"\":\"\"%%\"\"},\"\"type\"\":\"\"c8y_SignalStrength\"\",\"\"c8y_SignalStrength\"\":{\"\"rssi\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"dBm\"\"},\"\"ber\"\":{\"\"value\"\":%%,\"\"unit\"\":\"\"%\"\"}}}\"\r\n" ); -long existing(); -long create(); -bool identify(long deviceId); -bool update(long deviceId); -bool measurement(long deviceId, double rssi, int ber); - -MbedSmartRest client("http://developer.cumulocity.com/s", "vaillant/admin", "klanpi", "com_u-blox_C027_REV-A_0.5"); +const char * const serialNumber = "ublox-2a354bd"; +float interval = 120.0; // send measurements every two minutes +MbedSmartRest client("http://developer.cumulocity.com/s", "vaillant/admin", "klanpi", "com_u-blox_C027_REV-A_0.6"); //MbedSmartRest client("http://nocore.info:8888/", "vaillant/admin", "klanpi", "com_cumulocity_MbedTestDevice_2.0"); int program(void) { - long deviceId; sigq_t *signal; - + long deviceId; Timer timer; + puts("Hello!"); puts("Bootstrapping"); @@ -64,15 +66,15 @@ return 3; printf("Device ID: %ld\r\n", deviceId); - + + timer.start(); while (true) { - signal = signalQuality(); - printf("[MEASUREMENT] RSSI: %lf, BER: %d %%\n", signal->rssi, signal->ber); - measurement(deviceId, signal->rssi, signal->ber); - wait(2000); + timer.reset(); + loop(deviceId); + + // block remaining number of seconds + while (timer.read() < interval); } - - return 0; } long existing() @@ -212,6 +214,12 @@ return true; } +void loop(long deviceId) +{ + sigq_t *signal = signalQuality(); + measurement(deviceId, signal->rssi, signal->ber); +} + bool measurement(long deviceId, double rssi, int ber) { ComposedRecord newMoRec(true); // set copy=true b/c tmp objects