Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
2021fork3/main.cpp@0:1121a7ef2e36, 2021-03-09 (annotated)
- Committer:
- whiteheadrf
- Date:
- Tue Mar 09 20:50:11 2021 +0000
- Revision:
- 0:1121a7ef2e36
- Child:
- 1:eac9f7a0488f
eliminating serial buffer. reverting to modified presens.cpp because of new presens firmware that has view0005 to eliminate 02 unit number at start of data stream
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
whiteheadrf | 0:1121a7ef2e36 | 1 | #include "mbed.h" |
whiteheadrf | 0:1121a7ef2e36 | 2 | #include "cisme.h" |
whiteheadrf | 0:1121a7ef2e36 | 3 | #include "keys.h" |
whiteheadrf | 0:1121a7ef2e36 | 4 | #include "lcd.h" |
whiteheadrf | 0:1121a7ef2e36 | 5 | #include "lcd_events.h" |
whiteheadrf | 0:1121a7ef2e36 | 6 | #include "wifi_events.h" |
whiteheadrf | 0:1121a7ef2e36 | 7 | #include "wifi.h" |
whiteheadrf | 0:1121a7ef2e36 | 8 | #include "MSCFileSystem.h" |
whiteheadrf | 0:1121a7ef2e36 | 9 | #include "debug.h" |
whiteheadrf | 0:1121a7ef2e36 | 10 | #include "pump.h" |
whiteheadrf | 0:1121a7ef2e36 | 11 | #include "light.h" |
whiteheadrf | 0:1121a7ef2e36 | 12 | #include "buzzer.h" |
whiteheadrf | 0:1121a7ef2e36 | 13 | #include "presens.h" |
whiteheadrf | 0:1121a7ef2e36 | 14 | #include "adc.h" |
whiteheadrf | 0:1121a7ef2e36 | 15 | #include "experiments.h" |
whiteheadrf | 0:1121a7ef2e36 | 16 | |
whiteheadrf | 0:1121a7ef2e36 | 17 | MSCFileSystem msc(FSNAME); |
whiteheadrf | 0:1121a7ef2e36 | 18 | |
whiteheadrf | 0:1121a7ef2e36 | 19 | int Salinity = 36; |
whiteheadrf | 0:1121a7ef2e36 | 20 | double PHTEMP = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 21 | double pH = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 22 | double pHCorrected = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 23 | float pHT = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 24 | int flowintime = 0; |
whiteheadrf | 0:1121a7ef2e36 | 25 | int lightintime = 0; |
whiteheadrf | 0:1121a7ef2e36 | 26 | int minRESP = 0; |
whiteheadrf | 0:1121a7ef2e36 | 27 | int minPHOTO = 0; |
whiteheadrf | 0:1121a7ef2e36 | 28 | int MeasurementFlow = 0; |
whiteheadrf | 0:1121a7ef2e36 | 29 | int MeasurementLight = 0; |
whiteheadrf | 0:1121a7ef2e36 | 30 | int MeasurementTypeVal = 0; |
whiteheadrf | 0:1121a7ef2e36 | 31 | int mtimeRemaining = 0; |
whiteheadrf | 0:1121a7ef2e36 | 32 | // a, b and c variables are used for example in file lcd_events.c in function phCal in fprintf. |
whiteheadrf | 0:1121a7ef2e36 | 33 | float a = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 34 | float b = 2.8; |
whiteheadrf | 0:1121a7ef2e36 | 35 | float c = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 36 | float PresCal = 1.0; |
whiteheadrf | 0:1121a7ef2e36 | 37 | float PhaseCal2 = 1.0; |
whiteheadrf | 0:1121a7ef2e36 | 38 | float TempCal2 = 1.0; |
whiteheadrf | 0:1121a7ef2e36 | 39 | float PhaseCal1 = 1.0; |
whiteheadrf | 0:1121a7ef2e36 | 40 | float TempCal1 = 1.0; |
whiteheadrf | 0:1121a7ef2e36 | 41 | float LEDCurrent = 150.0; |
whiteheadrf | 0:1121a7ef2e36 | 42 | float UNIT = 0; |
whiteheadrf | 0:1121a7ef2e36 | 43 | float PHBUFFERF = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 44 | float PHTEMPF = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 45 | float PHTEMPKF = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 46 | float PHVOLTSF = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 47 | float MSINGLEPT = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 48 | float EOSINGLEPT = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 49 | int numberofprograms = 0; |
whiteheadrf | 0:1121a7ef2e36 | 50 | float pHNoGain = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 51 | float A = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 52 | float B = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 53 | float C = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 54 | float D = 0.0; |
whiteheadrf | 0:1121a7ef2e36 | 55 | //float lastPercentPump = 45.0; |
whiteheadrf | 0:1121a7ef2e36 | 56 | |
whiteheadrf | 0:1121a7ef2e36 | 57 | char instrumentId[INSTRUMENT_ID_LEN] = "C1"; |
whiteheadrf | 0:1121a7ef2e36 | 58 | |
whiteheadrf | 0:1121a7ef2e36 | 59 | DigitalOut L1(LED1); |
whiteheadrf | 0:1121a7ef2e36 | 60 | DigitalOut L2(LED2); |
whiteheadrf | 0:1121a7ef2e36 | 61 | DigitalOut L3(LED3); |
whiteheadrf | 0:1121a7ef2e36 | 62 | DigitalOut L4(LED4); |
whiteheadrf | 0:1121a7ef2e36 | 63 | |
whiteheadrf | 0:1121a7ef2e36 | 64 | // Configure Analog Input |
whiteheadrf | 0:1121a7ef2e36 | 65 | DigitalIn SDOFlag(p8); |
whiteheadrf | 0:1121a7ef2e36 | 66 | |
whiteheadrf | 0:1121a7ef2e36 | 67 | |
whiteheadrf | 0:1121a7ef2e36 | 68 | /******************************************************************************\ |
whiteheadrf | 0:1121a7ef2e36 | 69 | ** main |
whiteheadrf | 0:1121a7ef2e36 | 70 | \******************************************************************************/ |
whiteheadrf | 0:1121a7ef2e36 | 71 | int main() |
whiteheadrf | 0:1121a7ef2e36 | 72 | { |
whiteheadrf | 0:1121a7ef2e36 | 73 | FILE *paramFile; |
whiteheadrf | 0:1121a7ef2e36 | 74 | FILE *isFetFile; |
whiteheadrf | 0:1121a7ef2e36 | 75 | |
whiteheadrf | 0:1121a7ef2e36 | 76 | int DebugFlag = 0; |
whiteheadrf | 0:1121a7ef2e36 | 77 | |
whiteheadrf | 0:1121a7ef2e36 | 78 | debugInit(DEBUG_LEVEL_INFO); |
whiteheadrf | 0:1121a7ef2e36 | 79 | SDOFlag.mode(OpenDrain); |
whiteheadrf | 0:1121a7ef2e36 | 80 | buzzerInit(); |
whiteheadrf | 0:1121a7ef2e36 | 81 | |
whiteheadrf | 0:1121a7ef2e36 | 82 | L1 = 0; |
whiteheadrf | 0:1121a7ef2e36 | 83 | L2 = 0; |
whiteheadrf | 0:1121a7ef2e36 | 84 | L3 = 0; |
whiteheadrf | 0:1121a7ef2e36 | 85 | L4 = 0; |
whiteheadrf | 0:1121a7ef2e36 | 86 | |
whiteheadrf | 0:1121a7ef2e36 | 87 | presensInit(); |
whiteheadrf | 0:1121a7ef2e36 | 88 | lcdInit(); |
whiteheadrf | 0:1121a7ef2e36 | 89 | |
whiteheadrf | 0:1121a7ef2e36 | 90 | lcdEventSplash(); |
whiteheadrf | 0:1121a7ef2e36 | 91 | |
whiteheadrf | 0:1121a7ef2e36 | 92 | opendir("/" FSNAME); |
whiteheadrf | 0:1121a7ef2e36 | 93 | |
whiteheadrf | 0:1121a7ef2e36 | 94 | isFetFile = fopen("/" FSNAME "/Parameters/isfet.sys","r"); |
whiteheadrf | 0:1121a7ef2e36 | 95 | |
whiteheadrf | 0:1121a7ef2e36 | 96 | if (isFetFile == NULL) { |
whiteheadrf | 0:1121a7ef2e36 | 97 | lcdClear(); |
whiteheadrf | 0:1121a7ef2e36 | 98 | ERROR("Could not open file for write /" FSNAME "/Parameters/isfet.sys"); |
whiteheadrf | 0:1121a7ef2e36 | 99 | lcdWrite(4, 0, JUSTIFICATION_CENTER, "isfet File Missing"); |
whiteheadrf | 0:1121a7ef2e36 | 100 | ADD_START_ERROR(ERROR_MISSED_ISFET); |
whiteheadrf | 0:1121a7ef2e36 | 101 | } else { |
whiteheadrf | 0:1121a7ef2e36 | 102 | fscanf(isFetFile, "%f,%f,%f,%f", &A, &B, &C, &D); |
whiteheadrf | 0:1121a7ef2e36 | 103 | fclose(isFetFile); |
whiteheadrf | 0:1121a7ef2e36 | 104 | } |
whiteheadrf | 0:1121a7ef2e36 | 105 | |
whiteheadrf | 0:1121a7ef2e36 | 106 | // Read default parameters from file |
whiteheadrf | 0:1121a7ef2e36 | 107 | paramFile = fopen("/" FSNAME "/Parameters/dsparams.sys", "r"); |
whiteheadrf | 0:1121a7ef2e36 | 108 | |
whiteheadrf | 0:1121a7ef2e36 | 109 | if (paramFile == NULL) { |
whiteheadrf | 0:1121a7ef2e36 | 110 | lcdClear(); |
whiteheadrf | 0:1121a7ef2e36 | 111 | lcdWrite(4, 0, JUSTIFICATION_CENTER, "Dsprams File Missing"); |
whiteheadrf | 0:1121a7ef2e36 | 112 | ERROR("Dsparams file missing."); |
whiteheadrf | 0:1121a7ef2e36 | 113 | ADD_START_ERROR(ERROR_MISSED_DSPARAMS); |
whiteheadrf | 0:1121a7ef2e36 | 114 | } else { |
whiteheadrf | 0:1121a7ef2e36 | 115 | fscanf(paramFile, "%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%d", |
whiteheadrf | 0:1121a7ef2e36 | 116 | &a, &b, &c, &PresCal, &PhaseCal2, &TempCal2, &PhaseCal1, |
whiteheadrf | 0:1121a7ef2e36 | 117 | &TempCal1, &LEDCurrent, &PHBUFFERF, &PHTEMPF, &PHTEMPKF, |
whiteheadrf | 0:1121a7ef2e36 | 118 | &PHVOLTSF, &MSINGLEPT, &EOSINGLEPT, &UNIT, &DebugFlag); |
whiteheadrf | 0:1121a7ef2e36 | 119 | fclose(paramFile); |
whiteheadrf | 0:1121a7ef2e36 | 120 | } |
whiteheadrf | 0:1121a7ef2e36 | 121 | |
whiteheadrf | 0:1121a7ef2e36 | 122 | debugSetLvl(DebugFlag); |
whiteheadrf | 0:1121a7ef2e36 | 123 | INFO("Debug level set to %s", debugFormatTraceLevel(DebugFlag)); |
whiteheadrf | 0:1121a7ef2e36 | 124 | |
whiteheadrf | 0:1121a7ef2e36 | 125 | DEBUG1("Debug Mode active: A=%F, B=%F, C=%F, D=%F, a=%F, b=%F, c=%F", |
whiteheadrf | 0:1121a7ef2e36 | 126 | A, B, C, D, a, b, c); |
whiteheadrf | 0:1121a7ef2e36 | 127 | |
whiteheadrf | 0:1121a7ef2e36 | 128 | readUserPrograms(); |
whiteheadrf | 0:1121a7ef2e36 | 129 | |
whiteheadrf | 0:1121a7ef2e36 | 130 | pumpInit(); |
whiteheadrf | 0:1121a7ef2e36 | 131 | lightInit(); |
whiteheadrf | 0:1121a7ef2e36 | 132 | |
whiteheadrf | 0:1121a7ef2e36 | 133 | L1=1; |
whiteheadrf | 0:1121a7ef2e36 | 134 | |
whiteheadrf | 0:1121a7ef2e36 | 135 | adcInit(); |
whiteheadrf | 0:1121a7ef2e36 | 136 | |
whiteheadrf | 0:1121a7ef2e36 | 137 | DEBUG2("PHBUFFERF=%2.6f, PHTEMPF=%2.6f, PHTEMPKF=%2.6f, PHVOLTSF=%2.6f, MSINGLEPT=%2.6f, EOSINGLEPT=%2.6f", |
whiteheadrf | 0:1121a7ef2e36 | 138 | PHBUFFERF, PHTEMPF, PHTEMPKF, PHVOLTSF, MSINGLEPT, EOSINGLEPT); |
whiteheadrf | 0:1121a7ef2e36 | 139 | DEBUG2("PresCal=%2.6f, PhaseCal2=%2.6f, TempCal2=%2.6f, PhaseCal1=%2.6f, TempCal1=%2.6f, LEDCurrent=%2.6f", |
whiteheadrf | 0:1121a7ef2e36 | 140 | PresCal, PhaseCal2, TempCal2, PhaseCal1, TempCal1, LEDCurrent); |
whiteheadrf | 0:1121a7ef2e36 | 141 | |
whiteheadrf | 0:1121a7ef2e36 | 142 | wait(0.3); |
whiteheadrf | 0:1121a7ef2e36 | 143 | |
whiteheadrf | 0:1121a7ef2e36 | 144 | presensConfig(LEDCurrent); |
whiteheadrf | 0:1121a7ef2e36 | 145 | |
whiteheadrf | 0:1121a7ef2e36 | 146 | L2=1; |
whiteheadrf | 0:1121a7ef2e36 | 147 | |
whiteheadrf | 0:1121a7ef2e36 | 148 | MeasurementTypeVal = 1; |
whiteheadrf | 0:1121a7ef2e36 | 149 | MeasurementFlow = 0; |
whiteheadrf | 0:1121a7ef2e36 | 150 | MeasurementLight = 0; |
whiteheadrf | 0:1121a7ef2e36 | 151 | |
whiteheadrf | 0:1121a7ef2e36 | 152 | L3=1; |
whiteheadrf | 0:1121a7ef2e36 | 153 | |
whiteheadrf | 0:1121a7ef2e36 | 154 | wifiInit(); |
whiteheadrf | 0:1121a7ef2e36 | 155 | |
whiteheadrf | 0:1121a7ef2e36 | 156 | L4=1; |
whiteheadrf | 0:1121a7ef2e36 | 157 | // L1=0; |
whiteheadrf | 0:1121a7ef2e36 | 158 | // L2=0; |
whiteheadrf | 0:1121a7ef2e36 | 159 | // L3=0; |
whiteheadrf | 0:1121a7ef2e36 | 160 | // wait(0.5); |
whiteheadrf | 0:1121a7ef2e36 | 161 | // L1=1; |
whiteheadrf | 0:1121a7ef2e36 | 162 | // L2=1; |
whiteheadrf | 0:1121a7ef2e36 | 163 | // L3=1; |
whiteheadrf | 0:1121a7ef2e36 | 164 | |
whiteheadrf | 0:1121a7ef2e36 | 165 | INFO("Done startup. Enter event loop"); |
whiteheadrf | 0:1121a7ef2e36 | 166 | |
whiteheadrf | 0:1121a7ef2e36 | 167 | // Go to main event loop |
whiteheadrf | 0:1121a7ef2e36 | 168 | lcdEventsStart(); |
whiteheadrf | 0:1121a7ef2e36 | 169 | wifiEventsStart(); |
whiteheadrf | 0:1121a7ef2e36 | 170 | } |