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@1:eac9f7a0488f, 2021-03-10 (annotated)
- Committer:
- whiteheadrf
- Date:
- Wed Mar 10 21:09:24 2021 +0000
- Revision:
- 1:eac9f7a0488f
- Parent:
- 0:1121a7ef2e36
- Child:
- 2:4603eae79fb6
changed wifi buffer from 1024 to 256; changed message length max
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 | 1:eac9f7a0488f | 165 | buzzerBeep(0.1); |
whiteheadrf | 1:eac9f7a0488f | 166 | wait(0.1); |
whiteheadrf | 1:eac9f7a0488f | 167 | buzzerBeep(0.1); |
whiteheadrf | 1:eac9f7a0488f | 168 | wait(0.1); |
whiteheadrf | 1:eac9f7a0488f | 169 | buzzerBeep(0.1); |
whiteheadrf | 1:eac9f7a0488f | 170 | wait(0.1); |
whiteheadrf | 1:eac9f7a0488f | 171 | buzzerBeep(0.1); |
whiteheadrf | 1:eac9f7a0488f | 172 | wait(0.1); |
whiteheadrf | 1:eac9f7a0488f | 173 | |
whiteheadrf | 0:1121a7ef2e36 | 174 | INFO("Done startup. Enter event loop"); |
whiteheadrf | 0:1121a7ef2e36 | 175 | |
whiteheadrf | 0:1121a7ef2e36 | 176 | // Go to main event loop |
whiteheadrf | 0:1121a7ef2e36 | 177 | lcdEventsStart(); |
whiteheadrf | 0:1121a7ef2e36 | 178 | wifiEventsStart(); |
whiteheadrf | 0:1121a7ef2e36 | 179 | } |