test demo
Dependencies: PinDetect libmDot mbed-rtos mbed-src
Fork of mDot_LoRa_Connect_Woodstream_Demo by
Diff: main.cpp
- Revision:
- 3:34d92fdfbe06
- Parent:
- 2:a61b09bc91ea
- Child:
- 4:47c98ad6a0c3
--- a/main.cpp Sat Nov 07 01:15:29 2015 +0000 +++ b/main.cpp Mon Nov 09 00:54:24 2015 +0000 @@ -17,9 +17,10 @@ #include "PinDetect.h" #define MIN_CHANGE_BATTERY_VOLTAGE 0 +#define LED_TIME 5 #define BATTERY_TIME 2.0 -#define KILL_STATUS_TIME 2.0 -#define POWER_ON_TIME 2.0 +#define KILL_STATUS_TIME 3.0 +#define POWER_ON_TIME 4.0 mDot* dot; Ticker ledTimer; @@ -38,9 +39,10 @@ static uint8_t config_frequency_sub_band = 7; //Global Variables -bool readyToSend; -uint16_t lastBatteryVoltage; -float currentBatteryVoltage; +bool readyToSendBatteryVoltage; +bool readyToSendKillStatus; +bool readyToSendPowerOn; +float lastBatteryVoltage; uint8_t lastKillStatus; uint8_t lastPowerOn; @@ -66,14 +68,15 @@ int main() { bool configFail = false; - readyToSend = false; - lastBatteryVoltage = 0; - currentBatteryVoltage = 0.0; + readyToSendBatteryVoltage = false; + readyToSendKillStatus = false; + readyToSendPowerOn = false; + lastBatteryVoltage = 0.0; lastKillStatus = transmitLED; lastPowerOn = powerOn; //Start LED startup sequence - ledTimer.attach(&ledWrite, 1.5); + ledTimer.attach(&ledWrite, LED_TIME); printf("\r\n\r\n"); printf("=====================================\r\n"); @@ -122,6 +125,7 @@ // Stop LED startup sequence & configure them for operation transmitLED = 1; + // start all paramter timers to sample analog and digital inputs batteryTimer.attach(batteryRead, BATTERY_TIME); killStatusTimer.attach(killStatusRead, KILL_STATUS_TIME); powerOnTimer.attach(powerOnRead, POWER_ON_TIME); @@ -129,12 +133,26 @@ while (1) { // is there anything to send - if(readyToSend) + if(readyToSendBatteryVoltage) + { + sprintf(latestData,"Voltage %2.2f",(double)lastBatteryVoltage); + printf("%s\r\n",latestData); + send(latestData); + readyToSendBatteryVoltage = false; + } + if(readyToSendKillStatus) { - sprintf(latestData,"%2.2f %d %d",(double)currentBatteryVoltage,lastKillStatus,lastPowerOn); - printf("Battery Voltage: %2.2fV Kill Status: %d Power: %d\r\n",(double)currentBatteryVoltage,lastKillStatus,lastPowerOn); + sprintf(latestData,"KillStatus %d",lastKillStatus); + printf("%s\r\n",latestData); send(latestData); - readyToSend = false; + readyToSendKillStatus = false; + } + if(readyToSendPowerOn) + { + sprintf(latestData,"PowerOn %d",lastPowerOn); + printf("%s\r\n",latestData); + send(latestData); + readyToSendPowerOn = false; } } } @@ -146,38 +164,21 @@ void batteryRead() { - uint16_t battery,diff; - - battery = batteryVoltage.read_u16(); - if(battery > lastBatteryVoltage) - diff = battery - lastBatteryVoltage; - else - diff = lastBatteryVoltage - battery; - if(diff > MIN_CHANGE_BATTERY_VOLTAGE) - { - lastBatteryVoltage = battery; - currentBatteryVoltage = batteryVoltage * (float)3.3; - readyToSend = true; - } + lastBatteryVoltage = batteryVoltage * (float)3.3; + readyToSendBatteryVoltage = true; } void killStatusRead() { - if(transmitLED != lastKillStatus) - { - lastKillStatus = transmitLED; - readyToSend = true; - } + lastKillStatus = transmitLED; + readyToSendKillStatus = true; } void powerOnRead() { - if(powerOn != lastPowerOn) - { - lastPowerOn = powerOn; - readyToSend = true; - } -} + lastPowerOn = powerOn; + readyToSendPowerOn = true; + } void printVersion() {