Code supports writing to the SD card as well as working with the Volckens group smartphone apps for the mbed HRM1017
Dependencies: ADS1115 BLE_API BME280 Calibration CronoDot EEPROM LSM303 MCP40D17 NCP5623BMUTBG SDFileSystem SI1145 STC3100 mbed nRF51822
Fork of UPAS_BLE_and_USB by
Diff: main.cpp
- Revision:
- 84:85d11d422da3
- Parent:
- 83:9153d6c3af81
- Child:
- 85:a95dd5f03818
--- a/main.cpp Wed Sep 16 05:09:07 2015 +0000 +++ b/main.cpp Wed Sep 16 16:13:22 2015 +0000 @@ -256,6 +256,7 @@ //if(RTC.OSF()) { //Force the menu open if the RTC needs reset. // RunReady = 0; //} + uint8_t temp_crr = Menu.crr; if(Menu.crr == 1){ // if in Demo mode allow 1 second for each menu to change out of demo mode RGB_LED.set_led(1,1,1); @@ -263,7 +264,9 @@ RGB_LED.set_led(1,1,0); Menu.Start(pc, E2PROM, RTC, logInerval, refreshtime, volflowSet, device_name, dutyUp, dutyDown, home_lat, home_lon, work_lat, work_lon, Menu.menu_ops, 2, serial_num, calibrations); //Forces you to open the menu bleMenu.open_menu(txPayload, rxCharacteristic, E2PROM, RTC, logInerval, refreshtime, volflowSet, device_name, dutyUp, dutyDown, home_lat, home_lon, work_lat, work_lon, Menu.menu_ops ,RunReady, 3, serial_num, calibrations); - }else if(RunReady == 0) { + volflowSet = 1.0; //L/min + logInerval = 10; + }else if(RunReady == 0 || RTC.OSF()) { RGB_LED.set_led(0,1,1); // error code/color //pc.printf("Change Name\r\n"); while(RunReady == 0 || RTC.OSF()) { @@ -282,26 +285,32 @@ // Compare function for 519(UBCUO) mode to have it wait for the start time to start if(Menu.menu_ops == 519){ RTC.get_time(); + //Need to add in a compare function to check to see if the start time has already passed. if(RTC.compare(Menu.f_sec, Menu.f_min, Menu.f_hour, Menu.f_day, Menu.f_month, Menu.f_year)) { //Don't proceed if it's already time to stop - RGB_LED.set_led(1,0,0); // error code/color + RGB_LED.set_led(0,1,1); // error code/color pc.printf("Please fix the START or STOP times before exiting!\r\n"); Menu.Start(pc, E2PROM, RTC, logInerval, refreshtime, volflowSet, device_name, dutyUp, dutyDown, home_lat, home_lon, work_lat, work_lon, Menu.menu_ops, 0, serial_num, calibrations); //Forces you to open the menu Menu.save_menu(E2PROM, logInerval, refreshtime, volflowSet, device_name, dutyUp, dutyDown, home_lat, home_lon, work_lat, work_lon, RunReady, serial_num); //Save all data to the EEPROM } - pc.printf("You're done, you can now disconect the USB cable."); + pc.printf("You're done, you can now disconect the USB cable.\r\n"); - RunReady = 0; - if(bleMenu.crr != temp_crr){ + } + + if(bleMenu.crr != temp_crr){ Menu.crr = bleMenu.crr; // if this was changed in the UBM move it to the primary USM before saving } + + RunReady = 0; Menu.save_menu(E2PROM, logInerval, refreshtime, volflowSet, device_name, dutyUp, dutyDown, home_lat, home_lon, work_lat, work_lon, RunReady, serial_num); //Save all data to the EEPROM RGB_LED.set_led(1,1,0); + + if(Menu.menu_ops == 519){ while(!RTC.compare(Menu.s_sec, Menu.s_min, Menu.s_hour, Menu.s_day, Menu.s_month, Menu.s_year)) { // this while waits for the start time by looping until the start time - pc.printf("%d\r\n",serial_num); + wait(0.5); + pc.printf("Waiting to start\r\n"); // serial print a count down?? } - } - + } calibrations.initialize(serial_num); @@ -352,7 +361,7 @@ DigPot.writeRegister(digital_pot_setpoint); wait(1); blower = 1; - if(Menu.crr == 1) { + if(Menu.menu_ops == 513) { RTC.get_time(); f_sec = RTC.seconds; f_min = RTC.minutes; @@ -477,13 +486,7 @@ //** end of initalization **// - //---------------------------------------------------------------------------------------------// - //---------------------------------------------------------------------------------------------// - if(Menu.crr == 2){ //demo mode never shuts down - //default demo mode settings - volflowSet = 1.0; //L/min - logInerval = 2; - } + //---------------------------------------------------------------------------------------------// //---------------------------------------------------------------------------------------------// // Main Control Loop