skeleton code for resistivity method
Dependencies: mbed
main.cpp
- Committer:
- jfields
- Date:
- 2015-11-18
- Revision:
- 0:5699c19ed14b
File content as of revision 0:5699c19ed14b:
#include "mbed.h" #include "rtos.h" Serial pc(USBTX,USBRX); // signals PwmOut entry_valve(p26); PwmOut exit_valve(p25); AnalogIn detectFill(p24); // global vars Timer t; const int container_volume_mL = 10; const int send_interval = 10000; // 10 seconds const double ml_per_ms2ml_per_hr = (1/1000)*(1/60)*(1/60); int UO_mL = 0; double hourly_UO = 0; bool updateReading = false; // threads void sense_container(void const *args); Thread * sense_container_thread; void send_readings(void const *args); RtosTimer * send_readings_thread; int main() { // init threads sense_container_thread = new Thread(sense_container); send_readings_thread = new RtosTimer(send_readings, osTimerPeriodic, (void *)0); send_readings_thread.start(send_interval); // start timer t.start(); // record results while(1) { if (updateReading) { UO_mL += container_volume_mL; hourly_UO = (double) UO_mL/t.read_ms()*ml_per_ms2ml_per_hr; updateReading = false; } } } void sense_container(void const *args) { while (1) { // close exit and open entry if (!updateReadings) { // detect overflow code updateReadings = true; // OPEN EXIT CLOSE ENTRY } } } void send_readings(void const *args) { while (1) { Thread::signal_wait(RUN,osWaitForever); // send data via zigby code } }