An application to log WiFi SSIDs for position lookup testing

Dependencies:   C027_Support SWO mbed-rtos mbed picojson

Fork of lpc4088_ebb_ublox_Cellular_PubNubDemo_rtos by EmbeddedArtists AB

Committer:
rosterloh84
Date:
Sun Feb 15 22:04:12 2015 +0000
Revision:
1:cac9b2960637
First working version. Lots to do still.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rosterloh84 1:cac9b2960637 1 #include "MbedAgent.h"
rosterloh84 1:cac9b2960637 2 #include "rtos.h"
rosterloh84 1:cac9b2960637 3
rosterloh84 1:cac9b2960637 4 MbedAgent::MbedAgent(DeviceIO& io, MDMSerial& mdm, DeviceInfo& deviceInfo, DeviceMemory& deviceMemory) :
rosterloh84 1:cac9b2960637 5 _io(io),
rosterloh84 1:cac9b2960637 6 _mdm(mdm),
rosterloh84 1:cac9b2960637 7 _deviceInfo(deviceInfo),
rosterloh84 1:cac9b2960637 8 _deviceMemory(deviceMemory),
rosterloh84 1:cac9b2960637 9 _configurationProperties(_deviceConfiguration),
rosterloh84 1:cac9b2960637 10 _signalQualityMeasurement(_deviceInfo),
rosterloh84 1:cac9b2960637 11 _analogMeasurement(_io.analog1(), _io.analog2()),
rosterloh84 1:cac9b2960637 12 _locationUpdate(_io.gpsTracker())
rosterloh84 1:cac9b2960637 13 {
rosterloh84 1:cac9b2960637 14 }
rosterloh84 1:cac9b2960637 15
rosterloh84 1:cac9b2960637 16 bool MbedAgent::init()
rosterloh84 1:cac9b2960637 17 {
rosterloh84 1:cac9b2960637 18 if ((!_signalQualityMeasurement.init()) ||
rosterloh84 1:cac9b2960637 19 (!_analogMeasurement.init()) ||
rosterloh84 1:cac9b2960637 20 (!_locationUpdate.init())) {
rosterloh84 1:cac9b2960637 21 puts("Initialization failed.");
rosterloh84 1:cac9b2960637 22 return false;
rosterloh84 1:cac9b2960637 23 }
rosterloh84 1:cac9b2960637 24 return true;
rosterloh84 1:cac9b2960637 25 }
rosterloh84 1:cac9b2960637 26
rosterloh84 1:cac9b2960637 27 bool MbedAgent::run()
rosterloh84 1:cac9b2960637 28 {
rosterloh84 1:cac9b2960637 29 // add some config setup if needed
rosterloh84 1:cac9b2960637 30
rosterloh84 1:cac9b2960637 31 loop();
rosterloh84 1:cac9b2960637 32
rosterloh84 1:cac9b2960637 33 return true;
rosterloh84 1:cac9b2960637 34 }
rosterloh84 1:cac9b2960637 35
rosterloh84 1:cac9b2960637 36 void MbedAgent::loop()
rosterloh84 1:cac9b2960637 37 {
rosterloh84 1:cac9b2960637 38 Timer timer; int interval;
rosterloh84 1:cac9b2960637 39
rosterloh84 1:cac9b2960637 40 timer.start();
rosterloh84 1:cac9b2960637 41 while (true) {
rosterloh84 1:cac9b2960637 42 timer.reset();
rosterloh84 1:cac9b2960637 43
rosterloh84 1:cac9b2960637 44 _signalQualityMeasurement.run();
rosterloh84 1:cac9b2960637 45 _analogMeasurement.run();
rosterloh84 1:cac9b2960637 46 _locationUpdate.run();
rosterloh84 1:cac9b2960637 47
rosterloh84 1:cac9b2960637 48 if ((interval = _configurationProperties.readInterval()) == 0)
rosterloh84 1:cac9b2960637 49 break;
rosterloh84 1:cac9b2960637 50
rosterloh84 1:cac9b2960637 51 while (timer.read() < interval) {
rosterloh84 1:cac9b2960637 52 Thread::yield();
rosterloh84 1:cac9b2960637 53 }
rosterloh84 1:cac9b2960637 54 }
rosterloh84 1:cac9b2960637 55 }