f
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG mbed-rtos BSP_DISCO_F746NG FatFS X_NUCLEO_IHM02A1
main.cpp@2:37a61db8b04b, 2019-03-08 (annotated)
- Committer:
- emperord
- Date:
- Fri Mar 08 13:48:46 2019 +0000
- Revision:
- 2:37a61db8b04b
- Parent:
- 0:9933f7db9a9b
f
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:9933f7db9a9b | 1 | #include "mbed.h" |
bcostm | 0:9933f7db9a9b | 2 | #include "TS_DISCO_F746NG.h" |
bcostm | 0:9933f7db9a9b | 3 | #include "LCD_DISCO_F746NG.h" |
emperord | 2:37a61db8b04b | 4 | #include "eeprom.h" |
emperord | 2:37a61db8b04b | 5 | #include <ctype.h> |
emperord | 2:37a61db8b04b | 6 | #include "rtos.h" |
emperord | 2:37a61db8b04b | 7 | #define USE_STM32746G_DISCOVERY |
emperord | 2:37a61db8b04b | 8 | #include "stm32f7xx_hal.h" |
emperord | 2:37a61db8b04b | 9 | #include "stm32746g_discovery.h" |
emperord | 2:37a61db8b04b | 10 | #include "stm32746g_discovery_sd.h" |
emperord | 2:37a61db8b04b | 11 | #include "string.h" |
emperord | 2:37a61db8b04b | 12 | #include "stm32746g_discovery_lcd.h" |
emperord | 2:37a61db8b04b | 13 | #include "ff_gen_drv.h" |
emperord | 2:37a61db8b04b | 14 | #include "sd_diskio.h" |
emperord | 2:37a61db8b04b | 15 | #include "XNucleoIHM02A1.h" |
emperord | 2:37a61db8b04b | 16 | #include "wolfman.h" |
emperord | 2:37a61db8b04b | 17 | #include "hfl.h" |
emperord | 2:37a61db8b04b | 18 | #include "PCF85263AT.h" |
emperord | 2:37a61db8b04b | 19 | |
emperord | 2:37a61db8b04b | 20 | #define FRAME_BUFFER 0xC0000000 |
emperord | 2:37a61db8b04b | 21 | #define SD_IN_BUFFER 0xC0140000 |
emperord | 2:37a61db8b04b | 22 | #define SD_OUT_BUFFER 0xC0280000 |
emperord | 2:37a61db8b04b | 23 | |
emperord | 2:37a61db8b04b | 24 | |
emperord | 2:37a61db8b04b | 25 | I2C i2c(D14,D15); // sda, scl |
emperord | 2:37a61db8b04b | 26 | |
emperord | 2:37a61db8b04b | 27 | char cmd[32]; |
emperord | 2:37a61db8b04b | 28 | dt_dat dt; |
emperord | 2:37a61db8b04b | 29 | |
emperord | 2:37a61db8b04b | 30 | FATFS SDFatFs; |
emperord | 2:37a61db8b04b | 31 | FIL MyFile; |
emperord | 2:37a61db8b04b | 32 | |
emperord | 2:37a61db8b04b | 33 | Thread thread; |
emperord | 2:37a61db8b04b | 34 | Thread thread2; |
emperord | 2:37a61db8b04b | 35 | Thread thread3; |
emperord | 2:37a61db8b04b | 36 | |
bcostm | 0:9933f7db9a9b | 37 | |
bcostm | 0:9933f7db9a9b | 38 | LCD_DISCO_F746NG lcd; |
bcostm | 0:9933f7db9a9b | 39 | TS_DISCO_F746NG ts; |
bcostm | 0:9933f7db9a9b | 40 | |
emperord | 2:37a61db8b04b | 41 | extern SD_HandleTypeDef uSdHandle; |
emperord | 2:37a61db8b04b | 42 | DMA2D_HandleTypeDef hdma2d_disco; |
emperord | 2:37a61db8b04b | 43 | Serial pc(USBTX, USBRX); |
emperord | 2:37a61db8b04b | 44 | |
emperord | 2:37a61db8b04b | 45 | char SDPath[4]; |
emperord | 2:37a61db8b04b | 46 | //char text [40]; |
emperord | 2:37a61db8b04b | 47 | char c; |
emperord | 2:37a61db8b04b | 48 | |
emperord | 2:37a61db8b04b | 49 | TS_StateTypeDef TS_State; |
emperord | 2:37a61db8b04b | 50 | |
emperord | 2:37a61db8b04b | 51 | uint16_t x, y; |
emperord | 2:37a61db8b04b | 52 | uint8_t text1[30]; |
emperord | 2:37a61db8b04b | 53 | uint8_t text2[30]; |
emperord | 2:37a61db8b04b | 54 | uint8_t text3[30]; |
emperord | 2:37a61db8b04b | 55 | uint8_t text4[60]; |
emperord | 2:37a61db8b04b | 56 | uint8_t text5[60]; |
emperord | 2:37a61db8b04b | 57 | uint8_t textn1[30]; |
emperord | 2:37a61db8b04b | 58 | uint8_t textn2[30]; |
emperord | 2:37a61db8b04b | 59 | uint8_t textn3[30]; |
emperord | 2:37a61db8b04b | 60 | uint8_t textn4[60]; |
emperord | 2:37a61db8b04b | 61 | uint8_t textn5[60]; |
emperord | 2:37a61db8b04b | 62 | uint8_t savereading[120]; |
emperord | 2:37a61db8b04b | 63 | uint8_t currenttime[60]; |
emperord | 2:37a61db8b04b | 64 | uint8_t idx; |
emperord | 2:37a61db8b04b | 65 | uint8_t cleared = 0; |
emperord | 2:37a61db8b04b | 66 | uint8_t prev_nb_touches = 0; |
emperord | 2:37a61db8b04b | 67 | static uint8_t nus_buffer[20]; |
emperord | 2:37a61db8b04b | 68 | double Silver = 0.0; |
emperord | 2:37a61db8b04b | 69 | double Copper = 0.0; |
emperord | 2:37a61db8b04b | 70 | double LEDCUR = 0.0; |
emperord | 2:37a61db8b04b | 71 | uint8_t cyclestep[7]; |
emperord | 2:37a61db8b04b | 72 | bool CuMODE = true; |
emperord | 2:37a61db8b04b | 73 | bool AgMODE = true; |
emperord | 2:37a61db8b04b | 74 | int screenstate = 0; |
emperord | 2:37a61db8b04b | 75 | int MODE = 0; |
emperord | 2:37a61db8b04b | 76 | int ZERO = 0.0; |
emperord | 2:37a61db8b04b | 77 | int DARK = 0.0; |
emperord | 2:37a61db8b04b | 78 | int READ = 0.0; |
emperord | 2:37a61db8b04b | 79 | int LVL = 0.0; |
emperord | 2:37a61db8b04b | 80 | double RAW = 0.0; |
emperord | 2:37a61db8b04b | 81 | double SilverRAW = 0.0; |
emperord | 2:37a61db8b04b | 82 | double CopperRAW = 0.0; |
emperord | 2:37a61db8b04b | 83 | int writefail = 0; |
emperord | 2:37a61db8b04b | 84 | int* toucharrow; |
emperord | 2:37a61db8b04b | 85 | int* touchbutt; |
emperord | 2:37a61db8b04b | 86 | bool ManMode = false; |
emperord | 2:37a61db8b04b | 87 | FRESULT ress; |
emperord | 2:37a61db8b04b | 88 | uint32_t bytesread; |
emperord | 2:37a61db8b04b | 89 | double TempCurrent = 0.0; |
emperord | 2:37a61db8b04b | 90 | |
emperord | 2:37a61db8b04b | 91 | //PwmOut pump1(PA_8); |
emperord | 2:37a61db8b04b | 92 | |
emperord | 2:37a61db8b04b | 93 | DigitalOut pump1(D0); // PA_8 |
emperord | 2:37a61db8b04b | 94 | DigitalOut pump2(D1); //PA_15; |
emperord | 2:37a61db8b04b | 95 | DigitalOut pump3(A3); |
emperord | 2:37a61db8b04b | 96 | //DigitalOut pump4(A2); |
emperord | 2:37a61db8b04b | 97 | DigitalOut pump5(A4); |
emperord | 2:37a61db8b04b | 98 | DigitalOut pump6(A5); |
emperord | 2:37a61db8b04b | 99 | |
emperord | 2:37a61db8b04b | 100 | PwmOut LED515(D10); |
emperord | 2:37a61db8b04b | 101 | PwmOut LED480(A2); |
emperord | 2:37a61db8b04b | 102 | DigitalOut LEDLD(D8); |
emperord | 2:37a61db8b04b | 103 | DigitalOut LEDBL(D9); |
emperord | 2:37a61db8b04b | 104 | DigitalOut Tempcs(A0); |
emperord | 2:37a61db8b04b | 105 | DigitalOut Heat(A1); |
emperord | 2:37a61db8b04b | 106 | |
emperord | 2:37a61db8b04b | 107 | |
emperord | 2:37a61db8b04b | 108 | SPI spi(D11, D12, D13); // mosi, miso, sclk |
emperord | 2:37a61db8b04b | 109 | DigitalOut cs(D7); |
emperord | 2:37a61db8b04b | 110 | |
emperord | 2:37a61db8b04b | 111 | |
emperord | 2:37a61db8b04b | 112 | |
emperord | 2:37a61db8b04b | 113 | /* Number of movements per revolution. */ |
emperord | 2:37a61db8b04b | 114 | #define MPR_1 4 |
emperord | 2:37a61db8b04b | 115 | |
emperord | 2:37a61db8b04b | 116 | /* Number of steps. */ |
emperord | 2:37a61db8b04b | 117 | #define STEPS_1 (200 * 128) /* 1 revolution given a 400 steps motor configured at 1/128 microstep mode. */ |
emperord | 2:37a61db8b04b | 118 | #define STEPS_2 (STEPS_1 * 2) |
emperord | 2:37a61db8b04b | 119 | |
emperord | 2:37a61db8b04b | 120 | /* Delay in milliseconds. */ |
emperord | 2:37a61db8b04b | 121 | #define DELAY_1 1000 |
emperord | 2:37a61db8b04b | 122 | #define DELAY_2 2000 |
emperord | 2:37a61db8b04b | 123 | #define DELAY_3 5000 |
emperord | 2:37a61db8b04b | 124 | |
emperord | 2:37a61db8b04b | 125 | |
emperord | 2:37a61db8b04b | 126 | ///XNucleoIHM02A1 *x_nucleo_ihm02a1; |
emperord | 2:37a61db8b04b | 127 | L6470_init_t init[L6470DAISYCHAINSIZE] = { |
emperord | 2:37a61db8b04b | 128 | /* First Motor. */ |
emperord | 2:37a61db8b04b | 129 | { |
emperord | 2:37a61db8b04b | 130 | /* Ic configuration. */ |
emperord | 2:37a61db8b04b | 131 | }, |
emperord | 2:37a61db8b04b | 132 | |
emperord | 2:37a61db8b04b | 133 | /* Second Motor. */ |
emperord | 2:37a61db8b04b | 134 | { |
emperord | 2:37a61db8b04b | 135 | 12.0, /* Motor supply voltage in V. */ |
emperord | 2:37a61db8b04b | 136 | 200, /* Min number of steps per revolution for the motor. */ |
emperord | 2:37a61db8b04b | 137 | 1.5, /* Max motor phase voltage in A. */ |
emperord | 2:37a61db8b04b | 138 | 4.2, /* Max motor phase voltage in V. */ |
emperord | 2:37a61db8b04b | 139 | 100.0, /* Motor initial speed [step/s]. */ |
emperord | 2:37a61db8b04b | 140 | 400.0, /* Motor acceleration [step/s^2] (comment for infinite acceleration mode). */ |
emperord | 2:37a61db8b04b | 141 | 400.0, /* Motor deceleration [step/s^2] (comment for infinite deceleration mode). */ |
emperord | 2:37a61db8b04b | 142 | 900.0, /* Motor maximum speed [step/s]. */ |
emperord | 2:37a61db8b04b | 143 | 0.0, /* Motor minimum speed [step/s]. */ |
emperord | 2:37a61db8b04b | 144 | 902.7, /* Motor full-step speed threshold [step/s]. */ |
emperord | 2:37a61db8b04b | 145 | 1.5, /* Holding kval [V]. */ |
emperord | 2:37a61db8b04b | 146 | 5.2, /* Constant speed kval [V]. */ |
emperord | 2:37a61db8b04b | 147 | 5.2, /* Acceleration starting kval [V]. */ |
emperord | 2:37a61db8b04b | 148 | 5.2, /* Deceleration starting kval [V]. */ |
emperord | 2:37a61db8b04b | 149 | 371.52, /* Intersect speed for bemf compensation curve slope changing [step/s]. */ |
emperord | 2:37a61db8b04b | 150 | 392.1569e-6, /* Start slope [s/step]. */ |
emperord | 2:37a61db8b04b | 151 | 643.1372e-6, /* Acceleration final slope [s/step]. */ |
emperord | 2:37a61db8b04b | 152 | 643.1372e-6, /* Deceleration final slope [s/step]. */ |
emperord | 2:37a61db8b04b | 153 | 0, /* Thermal compensation factor (range [0, 15]). */ |
emperord | 2:37a61db8b04b | 154 | 3.06 * 1000 * 1.10, /* Ocd threshold [ma] (range [375 ma, 6000 ma]). */ |
emperord | 2:37a61db8b04b | 155 | 3.06 * 1000 * 1.00, /* Stall threshold [ma] (range [31.25 ma, 4000 ma]). */ |
emperord | 2:37a61db8b04b | 156 | StepperMotor::STEP_MODE_1_128, /* Step mode selection. */ |
emperord | 2:37a61db8b04b | 157 | 0xFF, /* Alarm conditions enable. */ |
emperord | 2:37a61db8b04b | 158 | 0x2E88 /* Ic configuration. */ |
emperord | 2:37a61db8b04b | 159 | } |
emperord | 2:37a61db8b04b | 160 | }; |
emperord | 2:37a61db8b04b | 161 | |
emperord | 2:37a61db8b04b | 162 | XNucleoIHM02A1 *x_nucleo_ihm02a1 = new XNucleoIHM02A1(&init[0], &init[1], D5/*D14*/, D4/*D15*/, D2/*D4*/, D6/*A2*/, D11, D12, D13); |
emperord | 2:37a61db8b04b | 163 | L6470 **motors = x_nucleo_ihm02a1->get_components(); |
emperord | 2:37a61db8b04b | 164 | |
emperord | 2:37a61db8b04b | 165 | |
emperord | 2:37a61db8b04b | 166 | |
emperord | 2:37a61db8b04b | 167 | /* Virtual address defined by the user: 0xFFFF value is prohibited */ |
emperord | 2:37a61db8b04b | 168 | uint16_t VirtAddVarTab[NB_OF_VAR] = {0x5555, 0x6666, 0x7777, 0x8888, 0x8899, 0x5655, 0x6776, 0x7887, 0x7117}; |
emperord | 2:37a61db8b04b | 169 | uint16_t VarDataTab[] = {2, 1, 5, 1, 1, 60, 1, 0, 0}; |
emperord | 2:37a61db8b04b | 170 | |
emperord | 2:37a61db8b04b | 171 | |
emperord | 2:37a61db8b04b | 172 | //ADC Struct for sensor |
emperord | 2:37a61db8b04b | 173 | union LTC2400 { |
emperord | 2:37a61db8b04b | 174 | unsigned int raw; |
emperord | 2:37a61db8b04b | 175 | unsigned char byte[4]; |
emperord | 2:37a61db8b04b | 176 | struct { |
emperord | 2:37a61db8b04b | 177 | unsigned int |
emperord | 2:37a61db8b04b | 178 | sub:4, |
emperord | 2:37a61db8b04b | 179 | reading:24, |
emperord | 2:37a61db8b04b | 180 | exr:1, |
emperord | 2:37a61db8b04b | 181 | sgn:1, |
emperord | 2:37a61db8b04b | 182 | dmy:1, |
emperord | 2:37a61db8b04b | 183 | eoc:1; |
emperord | 2:37a61db8b04b | 184 | }; |
emperord | 2:37a61db8b04b | 185 | } adc; |
emperord | 2:37a61db8b04b | 186 | |
emperord | 2:37a61db8b04b | 187 | //Prime Button |
emperord | 2:37a61db8b04b | 188 | int primeon[4]; |
emperord | 2:37a61db8b04b | 189 | int pcount = 0; |
emperord | 2:37a61db8b04b | 190 | //Man Button |
emperord | 2:37a61db8b04b | 191 | int Manonoff[4]; |
emperord | 2:37a61db8b04b | 192 | //CuMODE Button |
emperord | 2:37a61db8b04b | 193 | int CuMODEonoff[4]; |
emperord | 2:37a61db8b04b | 194 | //AgMODE Button |
emperord | 2:37a61db8b04b | 195 | int AgMODEonoff[4]; |
emperord | 2:37a61db8b04b | 196 | //screen mode |
emperord | 2:37a61db8b04b | 197 | int screenmode[4]; |
emperord | 2:37a61db8b04b | 198 | //All Button |
emperord | 2:37a61db8b04b | 199 | int Aonoff[4]; |
emperord | 2:37a61db8b04b | 200 | bool Aon = 0; |
emperord | 2:37a61db8b04b | 201 | //pump1 |
emperord | 2:37a61db8b04b | 202 | double p1count = 3; |
emperord | 2:37a61db8b04b | 203 | int p1up[4]; |
emperord | 2:37a61db8b04b | 204 | int p1down[4]; |
emperord | 2:37a61db8b04b | 205 | int p1onoff[4]; |
emperord | 2:37a61db8b04b | 206 | bool p1on = false; |
emperord | 2:37a61db8b04b | 207 | //pump2 |
emperord | 2:37a61db8b04b | 208 | double p2count = 5; |
emperord | 2:37a61db8b04b | 209 | int p2up[4]; |
emperord | 2:37a61db8b04b | 210 | int p2down[4]; |
emperord | 2:37a61db8b04b | 211 | int p2onoff[4]; |
emperord | 2:37a61db8b04b | 212 | bool p2on = false; |
emperord | 2:37a61db8b04b | 213 | //pump3 |
emperord | 2:37a61db8b04b | 214 | double p3count = 1; |
emperord | 2:37a61db8b04b | 215 | int p3up[4]; |
emperord | 2:37a61db8b04b | 216 | int p3down[4]; |
emperord | 2:37a61db8b04b | 217 | int p3onoff[4]; |
emperord | 2:37a61db8b04b | 218 | bool p3on = false; |
emperord | 2:37a61db8b04b | 219 | //pump4 |
emperord | 2:37a61db8b04b | 220 | double p4count = 1; |
emperord | 2:37a61db8b04b | 221 | int p4up[4]; |
emperord | 2:37a61db8b04b | 222 | int p4down[4]; |
emperord | 2:37a61db8b04b | 223 | int p4onoff[4]; |
emperord | 2:37a61db8b04b | 224 | bool p4on = false; |
emperord | 2:37a61db8b04b | 225 | //Sole5 |
emperord | 2:37a61db8b04b | 226 | double p5count = 1; |
emperord | 2:37a61db8b04b | 227 | int p5up[4]; |
emperord | 2:37a61db8b04b | 228 | int p5down[4]; |
emperord | 2:37a61db8b04b | 229 | int p5onoff[4]; |
emperord | 2:37a61db8b04b | 230 | bool p5on = false; |
emperord | 2:37a61db8b04b | 231 | //Pump6 |
emperord | 2:37a61db8b04b | 232 | double p6count = 6; |
emperord | 2:37a61db8b04b | 233 | int p6up[4]; |
emperord | 2:37a61db8b04b | 234 | int p6down[4]; |
emperord | 2:37a61db8b04b | 235 | int p6onoff[4]; |
emperord | 2:37a61db8b04b | 236 | bool p6on = false; |
emperord | 2:37a61db8b04b | 237 | //Pump7 |
emperord | 2:37a61db8b04b | 238 | double p7count = 1; |
emperord | 2:37a61db8b04b | 239 | int p7up[4]; |
emperord | 2:37a61db8b04b | 240 | int p7down[4]; |
emperord | 2:37a61db8b04b | 241 | int p7onoff[4]; |
emperord | 2:37a61db8b04b | 242 | bool p7on = false; |
emperord | 2:37a61db8b04b | 243 | |
emperord | 2:37a61db8b04b | 244 | //date/time |
emperord | 2:37a61db8b04b | 245 | double d1count = 1; |
emperord | 2:37a61db8b04b | 246 | int d1up[4]; |
emperord | 2:37a61db8b04b | 247 | int d1down[4]; |
emperord | 2:37a61db8b04b | 248 | double d2count = 1; |
emperord | 2:37a61db8b04b | 249 | int d2up[4]; |
emperord | 2:37a61db8b04b | 250 | int d2down[4]; |
emperord | 2:37a61db8b04b | 251 | double d3count = 1; |
emperord | 2:37a61db8b04b | 252 | int d3up[4]; |
emperord | 2:37a61db8b04b | 253 | int d3down[4]; |
emperord | 2:37a61db8b04b | 254 | double d4count = 1; |
emperord | 2:37a61db8b04b | 255 | int d4up[4]; |
emperord | 2:37a61db8b04b | 256 | int d4down[4]; |
emperord | 2:37a61db8b04b | 257 | double d5count = 1; |
emperord | 2:37a61db8b04b | 258 | int d5up[4]; |
emperord | 2:37a61db8b04b | 259 | int d5down[4]; |
emperord | 2:37a61db8b04b | 260 | int savedate[4]; |
emperord | 2:37a61db8b04b | 261 | double d6count = 0; |
emperord | 2:37a61db8b04b | 262 | int d6up[4]; |
emperord | 2:37a61db8b04b | 263 | int d6down[4]; |
emperord | 2:37a61db8b04b | 264 | |
bcostm | 0:9933f7db9a9b | 265 | |
emperord | 2:37a61db8b04b | 266 | void set_ch(char sel) |
emperord | 2:37a61db8b04b | 267 | { // PCA9541のサンプル |
emperord | 2:37a61db8b04b | 268 | // MST_0側の自分にスレーブ側の制御権を得る場合 |
emperord | 2:37a61db8b04b | 269 | cmd[0] = 1; // PCA9541 コマンドコード Cont Reg |
emperord | 2:37a61db8b04b | 270 | i2c.write( 0xe2, cmd, 1); // Cont Regを指定 |
emperord | 2:37a61db8b04b | 271 | i2c.read( 0xe2, cmd, 1); // Cont Regを読込み |
emperord | 2:37a61db8b04b | 272 | wait(0.1); // 0.1s待つ |
emperord | 2:37a61db8b04b | 273 | switch(cmd[0] & 0xf) |
emperord | 2:37a61db8b04b | 274 | { |
emperord | 2:37a61db8b04b | 275 | case 0: // bus off, has control |
emperord | 2:37a61db8b04b | 276 | case 1: // bus off, no control |
emperord | 2:37a61db8b04b | 277 | case 5: // bus on, no control |
emperord | 2:37a61db8b04b | 278 | cmd[0] = 1; // PCA9541 コマンドコード Cont Reg |
emperord | 2:37a61db8b04b | 279 | cmd[1] = 4; // bus on, has control |
emperord | 2:37a61db8b04b | 280 | i2c.write( 0xe2, cmd, 2); // Cont Regにcmd[1]を書込み |
emperord | 2:37a61db8b04b | 281 | i2c.read( 0xe2, cmd, 1); // Cont Regを読込み |
emperord | 2:37a61db8b04b | 282 | break; |
emperord | 2:37a61db8b04b | 283 | case 2: // bus off, no control |
emperord | 2:37a61db8b04b | 284 | case 3: // bus off, has control |
emperord | 2:37a61db8b04b | 285 | case 6: // bus on, no control |
emperord | 2:37a61db8b04b | 286 | cmd[0] = 1; // PCA9541 コマンドコード Cont Reg |
emperord | 2:37a61db8b04b | 287 | cmd[1] = 5; // bus on, has control |
emperord | 2:37a61db8b04b | 288 | i2c.write( 0xe2, cmd, 2); // Cont Regにcmd[1]を書込み |
emperord | 2:37a61db8b04b | 289 | i2c.read( 0xe2, cmd, 1); // Cont Regを読込み |
emperord | 2:37a61db8b04b | 290 | break; |
emperord | 2:37a61db8b04b | 291 | case 9: // bus on, no control |
emperord | 2:37a61db8b04b | 292 | case 0xc: // bus on, no control |
emperord | 2:37a61db8b04b | 293 | case 0xd: // bus off, no control |
emperord | 2:37a61db8b04b | 294 | cmd[0] = 1; // PCA9541 コマンドコード Cont Reg |
emperord | 2:37a61db8b04b | 295 | cmd[1] = 0; // bus on, has control |
emperord | 2:37a61db8b04b | 296 | i2c.write( 0xe2, cmd, 2); // Cont Regにcmd[1]を書込み |
emperord | 2:37a61db8b04b | 297 | i2c.read( 0xe2, cmd, 1); // Cont Regを読込み |
emperord | 2:37a61db8b04b | 298 | break; |
emperord | 2:37a61db8b04b | 299 | case 0xa: // bus on, no control |
emperord | 2:37a61db8b04b | 300 | case 0xe: // bus off, no control |
emperord | 2:37a61db8b04b | 301 | case 0xf: // bus on, has control |
emperord | 2:37a61db8b04b | 302 | cmd[0] = 1; // PCA9541 コマンドコード Cont Reg |
emperord | 2:37a61db8b04b | 303 | cmd[1] = 1; // bus on, has control |
emperord | 2:37a61db8b04b | 304 | i2c.write( 0xe2, cmd, 2); // Cont Regにcmd[1]を書込み |
emperord | 2:37a61db8b04b | 305 | i2c.read( 0xe2, cmd, 1); // Cont Regを読込み |
emperord | 2:37a61db8b04b | 306 | break; |
emperord | 2:37a61db8b04b | 307 | default: |
emperord | 2:37a61db8b04b | 308 | break; |
emperord | 2:37a61db8b04b | 309 | } |
emperord | 2:37a61db8b04b | 310 | |
emperord | 2:37a61db8b04b | 311 | cmd[0] = sel; // PCA9546 Cont Reg sel channel enabled |
emperord | 2:37a61db8b04b | 312 | i2c.write( 0xe8, cmd, 1); // Send command string |
emperord | 2:37a61db8b04b | 313 | } |
emperord | 2:37a61db8b04b | 314 | |
emperord | 2:37a61db8b04b | 315 | void get_time(dt_dat *dt) // 日時の取得 |
emperord | 2:37a61db8b04b | 316 | { |
emperord | 2:37a61db8b04b | 317 | cmd[0] = Seconds_100th; // 取得はレジスタSecondsから |
emperord | 2:37a61db8b04b | 318 | i2c.write(PCF85263AT_ADDR, cmd, 1); // レジスタの設定 |
emperord | 2:37a61db8b04b | 319 | i2c.read(PCF85263AT_ADDR, cmd, 8); // SecondsからYearsまで取得 |
emperord | 2:37a61db8b04b | 320 | cmd[1] &= 0x7f; // 有効なのは下位7ビット |
emperord | 2:37a61db8b04b | 321 | dt->s = (cmd[1] >> 4) * 10 + (cmd[1] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 322 | cmd[2] &= 0x7f; // 有効なのは下位7ビット |
emperord | 2:37a61db8b04b | 323 | dt->m = (cmd[2] >> 4) * 10 + (cmd[2] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 324 | cmd[3] &= 0x3f; // 有効なのは下位6ビット |
emperord | 2:37a61db8b04b | 325 | dt->h = (cmd[3] >> 4) * 10 + (cmd[3] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 326 | cmd[4] &= 0x3f; // 有効なのは下位6ビット |
emperord | 2:37a61db8b04b | 327 | dt->d = (cmd[4] >> 4) * 10 + (cmd[4] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 328 | dt->wd = (cmd[5] & 0x3); // BCDの数値化 |
emperord | 2:37a61db8b04b | 329 | cmd[6] &= 0x1f; // 有効なのは下位5ビット |
emperord | 2:37a61db8b04b | 330 | dt->mm = (cmd[6] >> 4) * 10 + (cmd[6] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 331 | dt->y = (cmd[7] >> 4) * 10 + (cmd[7] & 0xf); // BCDの数値化 |
emperord | 2:37a61db8b04b | 332 | } |
emperord | 2:37a61db8b04b | 333 | |
emperord | 2:37a61db8b04b | 334 | void set_time(dt_dat *dt) // 日時の設定 |
emperord | 2:37a61db8b04b | 335 | { |
emperord | 2:37a61db8b04b | 336 | cmd[0] = Seconds_100th; // 設定はレジスタSeconds_100thから |
emperord | 2:37a61db8b04b | 337 | cmd[1] = ((dt->s100th / 10) << 4) + (dt->s100th % 10);// 0.01秒のBCD化 |
emperord | 2:37a61db8b04b | 338 | cmd[2] = ((dt->s / 10) << 4) + (dt->s % 10) + 0x80; // 秒のBCD化 |
emperord | 2:37a61db8b04b | 339 | cmd[3] = ((dt->m / 10) << 4) + (dt->m % 10); // 分のBCD化 |
emperord | 2:37a61db8b04b | 340 | cmd[4] = ((dt->h / 10) << 4) + (dt->h % 10); // 時のBCD化 |
emperord | 2:37a61db8b04b | 341 | cmd[5] = ((dt->d / 10) << 4) + (dt->d % 10); // 日のBCD化 |
emperord | 2:37a61db8b04b | 342 | cmd[7] = ((dt->mm / 10) << 4) + (dt->mm % 10); // 月のBCD化 |
emperord | 2:37a61db8b04b | 343 | dt->y = dt->y - 2000; |
emperord | 2:37a61db8b04b | 344 | cmd[8] = ((dt->y / 10) << 4) + (dt->y % 10); // 年のBCD化 |
emperord | 2:37a61db8b04b | 345 | i2c.write(PCF85263AT_ADDR, cmd, 9); // 日時の設定 |
emperord | 2:37a61db8b04b | 346 | } |
emperord | 2:37a61db8b04b | 347 | |
emperord | 2:37a61db8b04b | 348 | |
emperord | 2:37a61db8b04b | 349 | |
emperord | 2:37a61db8b04b | 350 | |
emperord | 2:37a61db8b04b | 351 | int * DrawButton(int x, int y, int w, int h){ |
emperord | 2:37a61db8b04b | 352 | int* pointer; |
emperord | 2:37a61db8b04b | 353 | int butttouch[4]; |
emperord | 2:37a61db8b04b | 354 | pointer = butttouch; |
emperord | 2:37a61db8b04b | 355 | lcd.FillRect(x, y, w, h); |
emperord | 2:37a61db8b04b | 356 | butttouch[0] = x; |
emperord | 2:37a61db8b04b | 357 | butttouch[1] = x+w; |
emperord | 2:37a61db8b04b | 358 | butttouch[2] = y; |
emperord | 2:37a61db8b04b | 359 | butttouch[3] = y+h; |
emperord | 2:37a61db8b04b | 360 | return pointer; |
emperord | 2:37a61db8b04b | 361 | } |
bcostm | 0:9933f7db9a9b | 362 | |
emperord | 2:37a61db8b04b | 363 | int * DrawArrow(int x, int y, int d, int s){ |
emperord | 2:37a61db8b04b | 364 | int* pointer; |
emperord | 2:37a61db8b04b | 365 | int arrowtouch[4]; |
emperord | 2:37a61db8b04b | 366 | pointer = arrowtouch; |
emperord | 2:37a61db8b04b | 367 | if (d == 1) { |
emperord | 2:37a61db8b04b | 368 | Point points[] = {{x-10*s,y+10*s},{x,y},{x+10*s,y+10*s},{x+2*s,y+10*s},{x+2*s,y+20*s},{x-2*s,y+20*s},{x-2*s,y+10*s}}; |
emperord | 2:37a61db8b04b | 369 | lcd.FillPolygon(points,7); |
emperord | 2:37a61db8b04b | 370 | arrowtouch[0] = x-10*s; |
emperord | 2:37a61db8b04b | 371 | arrowtouch[1] = x+10*s; |
emperord | 2:37a61db8b04b | 372 | arrowtouch[2] = y; |
emperord | 2:37a61db8b04b | 373 | arrowtouch[3] = y+20*s; |
emperord | 2:37a61db8b04b | 374 | } else if (d == 2) { |
emperord | 2:37a61db8b04b | 375 | Point points[] = {{x+10*s,y-10*s},{x,y},{x-10*s,y-10*s},{x-2*s,y-10*s},{x-2*s,y-20*s},{x+2*s,y-20*s},{x+2*s,y-10*s}}; |
emperord | 2:37a61db8b04b | 376 | lcd.FillPolygon(points,7); |
emperord | 2:37a61db8b04b | 377 | arrowtouch[0] = x-10*s; |
emperord | 2:37a61db8b04b | 378 | arrowtouch[1] = x+10*s; |
emperord | 2:37a61db8b04b | 379 | arrowtouch[2] = y-20*s; |
emperord | 2:37a61db8b04b | 380 | arrowtouch[3] = y; |
emperord | 2:37a61db8b04b | 381 | } else if (d == 3) { |
emperord | 2:37a61db8b04b | 382 | Point points[] = {{x,y},{x-10*s,y-10*s},{x-10*s,y-2*s},{x-20*s,y-2*s},{x-20*s,y+2*s},{x-10*s,y+2*s},{x-10*s,y+10*s}}; |
emperord | 2:37a61db8b04b | 383 | lcd.FillPolygon(points,7); |
emperord | 2:37a61db8b04b | 384 | arrowtouch[0] = x-10*s; |
emperord | 2:37a61db8b04b | 385 | arrowtouch[1] = x+10*s; |
emperord | 2:37a61db8b04b | 386 | arrowtouch[2] = y-20*s; |
emperord | 2:37a61db8b04b | 387 | arrowtouch[3] = y; |
emperord | 2:37a61db8b04b | 388 | } else if (d == 4) { |
emperord | 2:37a61db8b04b | 389 | Point points[] = {{x,y},{x+10*s,y+10*s},{x+10*s,y+2*s},{x+20*s,y+2*s},{x+20*s,y-2*s},{x+10*s,y-2*s},{x+10*s,y-10*s}}; |
emperord | 2:37a61db8b04b | 390 | lcd.FillPolygon(points,7); |
emperord | 2:37a61db8b04b | 391 | arrowtouch[0] = x-10*s; |
emperord | 2:37a61db8b04b | 392 | arrowtouch[1] = x+10*s; |
emperord | 2:37a61db8b04b | 393 | arrowtouch[2] = y-20*s; |
emperord | 2:37a61db8b04b | 394 | arrowtouch[3] = y; |
emperord | 2:37a61db8b04b | 395 | } |
emperord | 2:37a61db8b04b | 396 | return pointer; |
emperord | 2:37a61db8b04b | 397 | } |
emperord | 2:37a61db8b04b | 398 | void runpump(){ |
emperord | 2:37a61db8b04b | 399 | if (ManMode == true) { |
emperord | 2:37a61db8b04b | 400 | while (1) { |
emperord | 2:37a61db8b04b | 401 | //pump1 |
emperord | 2:37a61db8b04b | 402 | if (p1on == true) { |
emperord | 2:37a61db8b04b | 403 | for (int j = 1; j<=p1count; j++) { |
emperord | 2:37a61db8b04b | 404 | pump1 = 1; |
emperord | 2:37a61db8b04b | 405 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 406 | pump1 = 0; |
emperord | 2:37a61db8b04b | 407 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 408 | } |
emperord | 2:37a61db8b04b | 409 | } |
emperord | 2:37a61db8b04b | 410 | //pump2 |
emperord | 2:37a61db8b04b | 411 | if (p2on == true) { |
emperord | 2:37a61db8b04b | 412 | for (int j = 1; j<=p2count; j++) { |
emperord | 2:37a61db8b04b | 413 | pump2 = 1; |
emperord | 2:37a61db8b04b | 414 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 415 | pump2 = 0; |
emperord | 2:37a61db8b04b | 416 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 417 | } |
emperord | 2:37a61db8b04b | 418 | } |
emperord | 2:37a61db8b04b | 419 | //pump3 |
emperord | 2:37a61db8b04b | 420 | if (p3on == true) { |
emperord | 2:37a61db8b04b | 421 | for (int j = 1; j<=p3count; j++) { |
emperord | 2:37a61db8b04b | 422 | pump3 = 1; |
emperord | 2:37a61db8b04b | 423 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 424 | pump3 = 0; |
emperord | 2:37a61db8b04b | 425 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 426 | } |
emperord | 2:37a61db8b04b | 427 | } |
emperord | 2:37a61db8b04b | 428 | /* //pump4 |
emperord | 2:37a61db8b04b | 429 | if (p4on == true) { |
emperord | 2:37a61db8b04b | 430 | for (int j = 1; j<=p4count; j++) { |
emperord | 2:37a61db8b04b | 431 | pump4 = 1; |
emperord | 2:37a61db8b04b | 432 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 433 | pump4 = 0; |
emperord | 2:37a61db8b04b | 434 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 435 | } |
emperord | 2:37a61db8b04b | 436 | } */ |
emperord | 2:37a61db8b04b | 437 | //Sole5 |
emperord | 2:37a61db8b04b | 438 | if (p5on == true) { |
emperord | 2:37a61db8b04b | 439 | for (int j = 1; j<=p5count; j++) { |
emperord | 2:37a61db8b04b | 440 | pump5 = 1; |
emperord | 2:37a61db8b04b | 441 | Thread::wait(5000); |
emperord | 2:37a61db8b04b | 442 | pump5 = 0; |
emperord | 2:37a61db8b04b | 443 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 444 | } |
emperord | 2:37a61db8b04b | 445 | } |
emperord | 2:37a61db8b04b | 446 | //Pump6 |
emperord | 2:37a61db8b04b | 447 | if (p6on == true) { |
emperord | 2:37a61db8b04b | 448 | for (int j = 1; j<=p6count; j++) { |
emperord | 2:37a61db8b04b | 449 | pump6 = 1; |
emperord | 2:37a61db8b04b | 450 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 451 | pump6 = 0; |
emperord | 2:37a61db8b04b | 452 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 453 | } |
emperord | 2:37a61db8b04b | 454 | } |
emperord | 2:37a61db8b04b | 455 | //Pump7 |
emperord | 2:37a61db8b04b | 456 | if (p7on == true) { |
emperord | 2:37a61db8b04b | 457 | for (int j = 1; j<=p7count; j++) { |
emperord | 2:37a61db8b04b | 458 | motors[1]->move(StepperMotor::BWD, STEPS_1*6.15); |
emperord | 2:37a61db8b04b | 459 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 460 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 461 | } |
emperord | 2:37a61db8b04b | 462 | } |
emperord | 2:37a61db8b04b | 463 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 464 | } |
bcostm | 0:9933f7db9a9b | 465 | } else { |
emperord | 2:37a61db8b04b | 466 | //pump1 |
emperord | 2:37a61db8b04b | 467 | if (p1on == true) { |
emperord | 2:37a61db8b04b | 468 | for (int j = 1; j<=p1count; j++) { |
emperord | 2:37a61db8b04b | 469 | pump1 = 1; |
emperord | 2:37a61db8b04b | 470 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 471 | pump1 = 0; |
emperord | 2:37a61db8b04b | 472 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 473 | } |
emperord | 2:37a61db8b04b | 474 | } |
emperord | 2:37a61db8b04b | 475 | //pump2 |
emperord | 2:37a61db8b04b | 476 | if (p2on == true) { |
emperord | 2:37a61db8b04b | 477 | for (int j = 1; j<=p2count; j++) { |
emperord | 2:37a61db8b04b | 478 | pump2 = 1; |
emperord | 2:37a61db8b04b | 479 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 480 | pump2 = 0; |
emperord | 2:37a61db8b04b | 481 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 482 | } |
emperord | 2:37a61db8b04b | 483 | } |
emperord | 2:37a61db8b04b | 484 | //pump3 |
emperord | 2:37a61db8b04b | 485 | if (p3on == true) { |
emperord | 2:37a61db8b04b | 486 | for (int j = 1; j<=p3count; j++) { |
emperord | 2:37a61db8b04b | 487 | pump3 = 1; |
emperord | 2:37a61db8b04b | 488 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 489 | pump3 = 0; |
emperord | 2:37a61db8b04b | 490 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 491 | } |
emperord | 2:37a61db8b04b | 492 | } |
emperord | 2:37a61db8b04b | 493 | /* //pump4 |
emperord | 2:37a61db8b04b | 494 | if (p4on == true) { |
emperord | 2:37a61db8b04b | 495 | for (int j = 1; j<=p4count; j++) { |
emperord | 2:37a61db8b04b | 496 | pump4 = 1; |
emperord | 2:37a61db8b04b | 497 | Thread::wait(400); |
emperord | 2:37a61db8b04b | 498 | pump4 = 0; |
emperord | 2:37a61db8b04b | 499 | Thread::wait(600); |
emperord | 2:37a61db8b04b | 500 | } |
emperord | 2:37a61db8b04b | 501 | } */ |
emperord | 2:37a61db8b04b | 502 | //Sole5 |
emperord | 2:37a61db8b04b | 503 | if (p5on == true) { |
emperord | 2:37a61db8b04b | 504 | for (int j = 1; j<=p5count; j++) { |
emperord | 2:37a61db8b04b | 505 | pump5 = 1; |
emperord | 2:37a61db8b04b | 506 | Thread::wait(5000); |
emperord | 2:37a61db8b04b | 507 | //Wash cycle will go here |
emperord | 2:37a61db8b04b | 508 | pump5 = 0; |
emperord | 2:37a61db8b04b | 509 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 510 | } |
emperord | 2:37a61db8b04b | 511 | } |
emperord | 2:37a61db8b04b | 512 | //Pump6 |
emperord | 2:37a61db8b04b | 513 | if (p6on == true) { |
emperord | 2:37a61db8b04b | 514 | for (int j = 1; j<=p6count; j++) { |
emperord | 2:37a61db8b04b | 515 | pump6 = 1; |
emperord | 2:37a61db8b04b | 516 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 517 | pump6 = 0; |
emperord | 2:37a61db8b04b | 518 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 519 | } |
emperord | 2:37a61db8b04b | 520 | } |
emperord | 2:37a61db8b04b | 521 | //Pump7 |
emperord | 2:37a61db8b04b | 522 | if (p7on == true) { |
emperord | 2:37a61db8b04b | 523 | for (int j = 1; j<=p7count; j++) { |
emperord | 2:37a61db8b04b | 524 | motors[1]->move(StepperMotor::BWD, STEPS_1*6.15); |
emperord | 2:37a61db8b04b | 525 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 526 | Thread::wait(4000); |
emperord | 2:37a61db8b04b | 527 | } |
emperord | 2:37a61db8b04b | 528 | } |
emperord | 2:37a61db8b04b | 529 | |
bcostm | 0:9933f7db9a9b | 530 | } |
bcostm | 0:9933f7db9a9b | 531 | |
emperord | 2:37a61db8b04b | 532 | } |
emperord | 2:37a61db8b04b | 533 | void fill() { |
emperord | 2:37a61db8b04b | 534 | if (MODE != 6) { MODE = 5; } |
emperord | 2:37a61db8b04b | 535 | p1on = false; |
emperord | 2:37a61db8b04b | 536 | p2on = false; |
emperord | 2:37a61db8b04b | 537 | p3on = false; |
emperord | 2:37a61db8b04b | 538 | p4on = false; |
emperord | 2:37a61db8b04b | 539 | p5on = false; |
emperord | 2:37a61db8b04b | 540 | p6on = false; |
emperord | 2:37a61db8b04b | 541 | p7on = true; |
emperord | 2:37a61db8b04b | 542 | runpump(); |
emperord | 2:37a61db8b04b | 543 | if (MODE != 6) { MODE = 4; } |
emperord | 2:37a61db8b04b | 544 | } |
emperord | 2:37a61db8b04b | 545 | void drain() { |
emperord | 2:37a61db8b04b | 546 | p1on = false; |
emperord | 2:37a61db8b04b | 547 | p2on = false; |
emperord | 2:37a61db8b04b | 548 | p3on = false; |
emperord | 2:37a61db8b04b | 549 | p4on = false; |
emperord | 2:37a61db8b04b | 550 | p5on = true; |
emperord | 2:37a61db8b04b | 551 | p6on = false; |
emperord | 2:37a61db8b04b | 552 | p7on = false; |
emperord | 2:37a61db8b04b | 553 | runpump(); |
emperord | 2:37a61db8b04b | 554 | } |
emperord | 2:37a61db8b04b | 555 | void wash() { |
emperord | 2:37a61db8b04b | 556 | MODE = 6; |
emperord | 2:37a61db8b04b | 557 | pump5 = 1; |
emperord | 2:37a61db8b04b | 558 | motors[1]->move(StepperMotor::BWD, STEPS_1*18.45); |
emperord | 2:37a61db8b04b | 559 | Thread::wait(4000); |
emperord | 2:37a61db8b04b | 560 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 561 | pump5 = 0; |
emperord | 2:37a61db8b04b | 562 | motors[1]->move(StepperMotor::BWD, STEPS_1*18.45); |
emperord | 2:37a61db8b04b | 563 | Thread::wait(4000); |
emperord | 2:37a61db8b04b | 564 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 565 | pump5 = 1; |
emperord | 2:37a61db8b04b | 566 | Thread::wait(3000); |
emperord | 2:37a61db8b04b | 567 | pump5 = 0; |
emperord | 2:37a61db8b04b | 568 | MODE = 4; |
emperord | 2:37a61db8b04b | 569 | /* drain(); |
emperord | 2:37a61db8b04b | 570 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 571 | fill(); |
emperord | 2:37a61db8b04b | 572 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 573 | drain(); |
emperord | 2:37a61db8b04b | 574 | Thread::wait(100) ; |
emperord | 2:37a61db8b04b | 575 | fill(); |
emperord | 2:37a61db8b04b | 576 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 577 | drain(); |
emperord | 2:37a61db8b04b | 578 | Thread::wait(100) ; |
emperord | 2:37a61db8b04b | 579 | fill(); |
emperord | 2:37a61db8b04b | 580 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 581 | drain(); |
emperord | 2:37a61db8b04b | 582 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 583 | fill(); |
emperord | 2:37a61db8b04b | 584 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 585 | fill(); |
emperord | 2:37a61db8b04b | 586 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 587 | fill(); |
emperord | 2:37a61db8b04b | 588 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 589 | drain(); |
emperord | 2:37a61db8b04b | 590 | Thread::wait(100); |
emperord | 2:37a61db8b04b | 591 | MODE = 4; */ |
emperord | 2:37a61db8b04b | 592 | } |
emperord | 2:37a61db8b04b | 593 | void mix() { |
emperord | 2:37a61db8b04b | 594 | MODE = 7; |
emperord | 2:37a61db8b04b | 595 | p1on = false; |
emperord | 2:37a61db8b04b | 596 | p2on = false; |
emperord | 2:37a61db8b04b | 597 | p3on = false; |
emperord | 2:37a61db8b04b | 598 | p4on = false; |
emperord | 2:37a61db8b04b | 599 | p5on = false; |
emperord | 2:37a61db8b04b | 600 | p6on = true; |
emperord | 2:37a61db8b04b | 601 | p7on = false; |
emperord | 2:37a61db8b04b | 602 | runpump(); |
emperord | 2:37a61db8b04b | 603 | Thread::wait(1000); |
emperord | 2:37a61db8b04b | 604 | MODE = 4; |
emperord | 2:37a61db8b04b | 605 | |
emperord | 2:37a61db8b04b | 606 | } |
emperord | 2:37a61db8b04b | 607 | void Agbuffer() { |
emperord | 2:37a61db8b04b | 608 | MODE = 8; |
emperord | 2:37a61db8b04b | 609 | p1on = true; |
emperord | 2:37a61db8b04b | 610 | p2on = false; |
emperord | 2:37a61db8b04b | 611 | p3on = false; |
emperord | 2:37a61db8b04b | 612 | p4on = false; |
emperord | 2:37a61db8b04b | 613 | p5on = false; |
emperord | 2:37a61db8b04b | 614 | p6on = false; |
emperord | 2:37a61db8b04b | 615 | p7on = false; |
emperord | 2:37a61db8b04b | 616 | runpump(); |
emperord | 2:37a61db8b04b | 617 | MODE = 4; |
emperord | 2:37a61db8b04b | 618 | } |
emperord | 2:37a61db8b04b | 619 | void Agindicator() { |
emperord | 2:37a61db8b04b | 620 | MODE = 9; |
emperord | 2:37a61db8b04b | 621 | p1on = false; |
emperord | 2:37a61db8b04b | 622 | p2on = true; |
emperord | 2:37a61db8b04b | 623 | p3on = false; |
emperord | 2:37a61db8b04b | 624 | p4on = false; |
emperord | 2:37a61db8b04b | 625 | p5on = false; |
emperord | 2:37a61db8b04b | 626 | p6on = false; |
emperord | 2:37a61db8b04b | 627 | p7on = false; |
emperord | 2:37a61db8b04b | 628 | runpump(); |
emperord | 2:37a61db8b04b | 629 | MODE = 4; |
emperord | 2:37a61db8b04b | 630 | } |
emperord | 2:37a61db8b04b | 631 | void CuIndicator() { |
emperord | 2:37a61db8b04b | 632 | MODE = 10; |
emperord | 2:37a61db8b04b | 633 | p1on = false; |
emperord | 2:37a61db8b04b | 634 | p2on = false; |
emperord | 2:37a61db8b04b | 635 | p3on = true; |
emperord | 2:37a61db8b04b | 636 | p4on = false; |
emperord | 2:37a61db8b04b | 637 | p5on = false; |
emperord | 2:37a61db8b04b | 638 | p6on = false; |
emperord | 2:37a61db8b04b | 639 | p7on = false; |
emperord | 2:37a61db8b04b | 640 | runpump(); |
emperord | 2:37a61db8b04b | 641 | MODE = 4; |
emperord | 2:37a61db8b04b | 642 | } |
emperord | 2:37a61db8b04b | 643 | void ClSoln() { |
emperord | 2:37a61db8b04b | 644 | MODE = 11; |
emperord | 2:37a61db8b04b | 645 | p1on = false; |
emperord | 2:37a61db8b04b | 646 | p2on = false; |
emperord | 2:37a61db8b04b | 647 | p3on = false; |
emperord | 2:37a61db8b04b | 648 | p4on = true; |
emperord | 2:37a61db8b04b | 649 | p5on = false; |
emperord | 2:37a61db8b04b | 650 | p6on = false; |
emperord | 2:37a61db8b04b | 651 | p7on = false; |
emperord | 2:37a61db8b04b | 652 | runpump(); |
emperord | 2:37a61db8b04b | 653 | MODE = 4; |
emperord | 2:37a61db8b04b | 654 | } |
emperord | 2:37a61db8b04b | 655 | unsigned int read() { |
emperord | 2:37a61db8b04b | 656 | spi.format(8,0); |
emperord | 2:37a61db8b04b | 657 | cs = 0; |
emperord | 2:37a61db8b04b | 658 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 659 | for( int i = 3; i >= 0; i-- ) { |
emperord | 2:37a61db8b04b | 660 | adc.byte[i] = spi.write( 0xFF ); |
emperord | 2:37a61db8b04b | 661 | } |
emperord | 2:37a61db8b04b | 662 | cs = 1; |
emperord | 2:37a61db8b04b | 663 | |
emperord | 2:37a61db8b04b | 664 | return adc.reading; |
emperord | 2:37a61db8b04b | 665 | |
emperord | 2:37a61db8b04b | 666 | } |
emperord | 2:37a61db8b04b | 667 | unsigned int readtemp() { |
emperord | 2:37a61db8b04b | 668 | spi.format(8,0); |
emperord | 2:37a61db8b04b | 669 | Tempcs = 0; |
emperord | 2:37a61db8b04b | 670 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 671 | for( int i = 3; i >= 0; i-- ) { |
emperord | 2:37a61db8b04b | 672 | adc.byte[i] = spi.write( 0xFF ); |
emperord | 2:37a61db8b04b | 673 | } |
emperord | 2:37a61db8b04b | 674 | Tempcs = 1; |
emperord | 2:37a61db8b04b | 675 | |
emperord | 2:37a61db8b04b | 676 | return adc.reading; |
emperord | 2:37a61db8b04b | 677 | |
emperord | 2:37a61db8b04b | 678 | } |
emperord | 2:37a61db8b04b | 679 | unsigned int readl(int take) { |
emperord | 2:37a61db8b04b | 680 | LED515.write(0.0); |
emperord | 2:37a61db8b04b | 681 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 682 | LEDLD = 0; |
emperord | 2:37a61db8b04b | 683 | LEDBL = 0; |
emperord | 2:37a61db8b04b | 684 | unsigned int res = 1; |
emperord | 2:37a61db8b04b | 685 | unsigned int resp = 0; |
emperord | 2:37a61db8b04b | 686 | if (take == 0) { |
emperord | 2:37a61db8b04b | 687 | MODE = 0; |
emperord | 2:37a61db8b04b | 688 | LEDCUR=0.0; |
emperord | 2:37a61db8b04b | 689 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 690 | while (resp < res) { |
emperord | 2:37a61db8b04b | 691 | resp = read(); |
emperord | 2:37a61db8b04b | 692 | res = read(); |
emperord | 2:37a61db8b04b | 693 | } |
emperord | 2:37a61db8b04b | 694 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 695 | unsigned int DF = read(); |
emperord | 2:37a61db8b04b | 696 | unsigned int basereading = 0; |
emperord | 2:37a61db8b04b | 697 | double i = 0.0; |
emperord | 2:37a61db8b04b | 698 | while (basereading <= DF) { |
emperord | 2:37a61db8b04b | 699 | i = i + 0.001; |
emperord | 2:37a61db8b04b | 700 | LED515.write(i); |
emperord | 2:37a61db8b04b | 701 | res = 1; |
emperord | 2:37a61db8b04b | 702 | resp = 0; |
emperord | 2:37a61db8b04b | 703 | while (resp < res) { |
emperord | 2:37a61db8b04b | 704 | resp = read(); |
emperord | 2:37a61db8b04b | 705 | res = read(); |
emperord | 2:37a61db8b04b | 706 | } |
emperord | 2:37a61db8b04b | 707 | basereading = read(); |
emperord | 2:37a61db8b04b | 708 | } |
emperord | 2:37a61db8b04b | 709 | LEDCUR = i + 0.001f; |
emperord | 2:37a61db8b04b | 710 | LED515.write(i + 0.001f); |
emperord | 2:37a61db8b04b | 711 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 712 | while (resp < res) { |
emperord | 2:37a61db8b04b | 713 | resp = read(); |
emperord | 2:37a61db8b04b | 714 | res = read(); |
emperord | 2:37a61db8b04b | 715 | } |
emperord | 2:37a61db8b04b | 716 | res = read(); |
emperord | 2:37a61db8b04b | 717 | MODE = 4; |
emperord | 2:37a61db8b04b | 718 | pc.printf("DARK: %d LEDCUR: %f\r\n", res, LEDCUR); |
emperord | 2:37a61db8b04b | 719 | |
emperord | 2:37a61db8b04b | 720 | } |
emperord | 2:37a61db8b04b | 721 | if (take == 1) { |
emperord | 2:37a61db8b04b | 722 | MODE = 1; |
emperord | 2:37a61db8b04b | 723 | LED515.write(LEDCUR); |
emperord | 2:37a61db8b04b | 724 | while (read() <= 12000000) { |
emperord | 2:37a61db8b04b | 725 | LEDCUR = LEDCUR + 0.001f; |
emperord | 2:37a61db8b04b | 726 | LED515.write(LEDCUR); |
emperord | 2:37a61db8b04b | 727 | } |
emperord | 2:37a61db8b04b | 728 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 729 | while (resp < res) { |
emperord | 2:37a61db8b04b | 730 | resp = read(); |
emperord | 2:37a61db8b04b | 731 | res = read(); |
emperord | 2:37a61db8b04b | 732 | } |
emperord | 2:37a61db8b04b | 733 | res = read(); |
emperord | 2:37a61db8b04b | 734 | MODE = 4; |
emperord | 2:37a61db8b04b | 735 | pc.printf("ZERO: %d\r\n", res); |
emperord | 2:37a61db8b04b | 736 | } |
emperord | 2:37a61db8b04b | 737 | if (take == 2) { |
emperord | 2:37a61db8b04b | 738 | MODE = 2; |
emperord | 2:37a61db8b04b | 739 | LED515.write(LEDCUR); |
emperord | 2:37a61db8b04b | 740 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 741 | while (resp < res) { |
emperord | 2:37a61db8b04b | 742 | resp = read(); |
emperord | 2:37a61db8b04b | 743 | res = read(); |
emperord | 2:37a61db8b04b | 744 | } |
emperord | 2:37a61db8b04b | 745 | res = read(); |
emperord | 2:37a61db8b04b | 746 | MODE = 4; |
emperord | 2:37a61db8b04b | 747 | pc.printf("READ: %d\r\n", res); |
emperord | 2:37a61db8b04b | 748 | } |
emperord | 2:37a61db8b04b | 749 | if (take == 3) { |
emperord | 2:37a61db8b04b | 750 | MODE = 12; |
emperord | 2:37a61db8b04b | 751 | LEDLD=1; |
emperord | 2:37a61db8b04b | 752 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 753 | while (resp < res) { |
emperord | 2:37a61db8b04b | 754 | resp = read(); |
emperord | 2:37a61db8b04b | 755 | res = read(); |
emperord | 2:37a61db8b04b | 756 | } |
emperord | 2:37a61db8b04b | 757 | res = read(); |
emperord | 2:37a61db8b04b | 758 | LEDLD=0; |
emperord | 2:37a61db8b04b | 759 | MODE = 4; |
emperord | 2:37a61db8b04b | 760 | pc.printf("Level: %d\r\n", res); |
emperord | 2:37a61db8b04b | 761 | } |
emperord | 2:37a61db8b04b | 762 | |
emperord | 2:37a61db8b04b | 763 | |
emperord | 2:37a61db8b04b | 764 | /// |
emperord | 2:37a61db8b04b | 765 | if (take == 4) { |
emperord | 2:37a61db8b04b | 766 | MODE = 0; |
emperord | 2:37a61db8b04b | 767 | LEDCUR=0.0; |
emperord | 2:37a61db8b04b | 768 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 769 | while (resp < res) { |
emperord | 2:37a61db8b04b | 770 | resp = read(); |
emperord | 2:37a61db8b04b | 771 | res = read(); |
emperord | 2:37a61db8b04b | 772 | } |
emperord | 2:37a61db8b04b | 773 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 774 | unsigned int DF = read(); |
emperord | 2:37a61db8b04b | 775 | unsigned int basereading = 0; |
emperord | 2:37a61db8b04b | 776 | double i = 0.0; |
emperord | 2:37a61db8b04b | 777 | while (basereading <= DF) { |
emperord | 2:37a61db8b04b | 778 | i = i + 0.001; |
emperord | 2:37a61db8b04b | 779 | LED480.write(i); |
emperord | 2:37a61db8b04b | 780 | res = 1; |
emperord | 2:37a61db8b04b | 781 | resp = 0; |
emperord | 2:37a61db8b04b | 782 | while (resp < res) { |
emperord | 2:37a61db8b04b | 783 | resp = read(); |
emperord | 2:37a61db8b04b | 784 | res = read(); |
emperord | 2:37a61db8b04b | 785 | } |
emperord | 2:37a61db8b04b | 786 | basereading = read(); |
emperord | 2:37a61db8b04b | 787 | } |
emperord | 2:37a61db8b04b | 788 | LEDCUR = i + 0.001f; |
emperord | 2:37a61db8b04b | 789 | LED480.write(i + 0.001f); |
emperord | 2:37a61db8b04b | 790 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 791 | while (resp < res) { |
emperord | 2:37a61db8b04b | 792 | resp = read(); |
emperord | 2:37a61db8b04b | 793 | res = read(); |
emperord | 2:37a61db8b04b | 794 | } |
emperord | 2:37a61db8b04b | 795 | res = read(); |
emperord | 2:37a61db8b04b | 796 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 797 | MODE = 4; |
emperord | 2:37a61db8b04b | 798 | pc.printf("DARK: %d LEDCUR: %f\r\n", res, LEDCUR); |
emperord | 2:37a61db8b04b | 799 | |
emperord | 2:37a61db8b04b | 800 | } |
emperord | 2:37a61db8b04b | 801 | if (take == 5) { |
emperord | 2:37a61db8b04b | 802 | MODE = 1; |
emperord | 2:37a61db8b04b | 803 | LED480.write(LEDCUR); |
emperord | 2:37a61db8b04b | 804 | while (read() <= 12000000) { |
emperord | 2:37a61db8b04b | 805 | LEDCUR = LEDCUR + 0.001f; |
emperord | 2:37a61db8b04b | 806 | LED480.write(LEDCUR); |
emperord | 2:37a61db8b04b | 807 | } |
emperord | 2:37a61db8b04b | 808 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 809 | while (resp < res) { |
emperord | 2:37a61db8b04b | 810 | resp = read(); |
emperord | 2:37a61db8b04b | 811 | res = read(); |
emperord | 2:37a61db8b04b | 812 | } |
emperord | 2:37a61db8b04b | 813 | res = read(); |
emperord | 2:37a61db8b04b | 814 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 815 | MODE = 4; |
emperord | 2:37a61db8b04b | 816 | pc.printf("ZERO: %d\r\n", res); |
emperord | 2:37a61db8b04b | 817 | } |
emperord | 2:37a61db8b04b | 818 | if (take == 6) { |
emperord | 2:37a61db8b04b | 819 | MODE = 2; |
emperord | 2:37a61db8b04b | 820 | LED480.write(LEDCUR); |
emperord | 2:37a61db8b04b | 821 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 822 | while (resp < res) { |
emperord | 2:37a61db8b04b | 823 | resp = read(); |
emperord | 2:37a61db8b04b | 824 | res = read(); |
emperord | 2:37a61db8b04b | 825 | } |
emperord | 2:37a61db8b04b | 826 | res = read(); |
emperord | 2:37a61db8b04b | 827 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 828 | MODE = 4; |
emperord | 2:37a61db8b04b | 829 | pc.printf("READ: %d\r\n", res); |
emperord | 2:37a61db8b04b | 830 | } |
emperord | 2:37a61db8b04b | 831 | /// |
emperord | 2:37a61db8b04b | 832 | LEDBL=1; |
emperord | 2:37a61db8b04b | 833 | return res; |
emperord | 2:37a61db8b04b | 834 | } |
emperord | 2:37a61db8b04b | 835 | |
emperord | 2:37a61db8b04b | 836 | void saveit() { |
emperord | 2:37a61db8b04b | 837 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 838 | get_time(&dt); |
emperord | 2:37a61db8b04b | 839 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 840 | memset((char*)savereading,0,sizeof(savereading)); |
emperord | 2:37a61db8b04b | 841 | Thread::wait(1000); |
emperord | 2:37a61db8b04b | 842 | sprintf((char*)savereading, "%04d/%02d/%02d %02d:%02d:%02d,%0.1f,%0.5f,%0.1f,%0.5f,%0.5f,%0.5f,%0.5f\n", 2000 + dt.y, dt.mm, dt.d, dt.h, dt.m, dt.s, Silver, SilverRAW, Copper, CopperRAW, ((double)DARK/16777216)*3.302, ((double)ZERO/16777216)*3.302, ((double)READ/16777216)*3.302); |
emperord | 2:37a61db8b04b | 843 | Thread::wait(1000); |
emperord | 2:37a61db8b04b | 844 | |
emperord | 2:37a61db8b04b | 845 | ress = f_open(&MyFile, "Log.csv", FA_WRITE); |
emperord | 2:37a61db8b04b | 846 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 847 | if(ress!= FR_OK) { |
emperord | 2:37a61db8b04b | 848 | pc.printf("Failed to open file\n"); |
emperord | 2:37a61db8b04b | 849 | ress = f_open(&MyFile, "Log.csv", FA_CREATE_ALWAYS); |
emperord | 2:37a61db8b04b | 850 | if(ress!= FR_OK) { |
emperord | 2:37a61db8b04b | 851 | pc.printf("Failed to open file\n"); |
emperord | 2:37a61db8b04b | 852 | } |
emperord | 2:37a61db8b04b | 853 | } |
emperord | 2:37a61db8b04b | 854 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 855 | f_lseek(&MyFile, f_size(&MyFile)); |
emperord | 2:37a61db8b04b | 856 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 857 | ress = f_write(&MyFile, savereading, sizeof(savereading), &bytesread); |
emperord | 2:37a61db8b04b | 858 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 859 | if(ress!= FR_OK) { |
emperord | 2:37a61db8b04b | 860 | pc.printf("Failed to write file 1\n"); |
emperord | 2:37a61db8b04b | 861 | MODE = 13; |
emperord | 2:37a61db8b04b | 862 | writefail = 1; |
emperord | 2:37a61db8b04b | 863 | Thread::wait(3000); |
emperord | 2:37a61db8b04b | 864 | } else { |
emperord | 2:37a61db8b04b | 865 | pc.printf("Done!\n"); |
emperord | 2:37a61db8b04b | 866 | MODE = 11; |
emperord | 2:37a61db8b04b | 867 | writefail = 0; |
emperord | 2:37a61db8b04b | 868 | } |
emperord | 2:37a61db8b04b | 869 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 870 | f_close(&MyFile); |
emperord | 2:37a61db8b04b | 871 | /* Thread::wait(200); |
emperord | 2:37a61db8b04b | 872 | FATFS_UnLinkDriver(SDPath); */ |
emperord | 2:37a61db8b04b | 873 | } |
emperord | 2:37a61db8b04b | 874 | |
emperord | 2:37a61db8b04b | 875 | void ReadSilver() { |
emperord | 2:37a61db8b04b | 876 | sprintf((char*)cyclestep, " - Ag"); |
emperord | 2:37a61db8b04b | 877 | wash(); |
emperord | 2:37a61db8b04b | 878 | //Thread::wait(30000); //to give heater time to warm water |
emperord | 2:37a61db8b04b | 879 | LVL = readl(3); |
emperord | 2:37a61db8b04b | 880 | while (LVL > 9000000) { |
emperord | 2:37a61db8b04b | 881 | fill(); |
emperord | 2:37a61db8b04b | 882 | LVL = readl(3); |
emperord | 2:37a61db8b04b | 883 | } |
emperord | 2:37a61db8b04b | 884 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 885 | DARK = readl(0); |
emperord | 2:37a61db8b04b | 886 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 887 | ZERO = readl(1); |
emperord | 2:37a61db8b04b | 888 | Agbuffer(); |
emperord | 2:37a61db8b04b | 889 | mix(); |
emperord | 2:37a61db8b04b | 890 | Agindicator(); |
emperord | 2:37a61db8b04b | 891 | mix(); |
emperord | 2:37a61db8b04b | 892 | Thread::wait(60000); |
emperord | 2:37a61db8b04b | 893 | sprintf((char*)cyclestep, " - Ag"); |
emperord | 2:37a61db8b04b | 894 | READ = readl(2); |
emperord | 2:37a61db8b04b | 895 | double x = abs(((float)READ-(float)DARK)/((float)ZERO-(float)DARK)); |
emperord | 2:37a61db8b04b | 896 | x = 2-log10(x*100); |
emperord | 2:37a61db8b04b | 897 | RAW = x; |
emperord | 2:37a61db8b04b | 898 | SilverRAW = RAW; |
emperord | 2:37a61db8b04b | 899 | //y = 10726x^2 – 301.98x – 5.1693 |
emperord | 2:37a61db8b04b | 900 | x = 10726*pow(x,2) - 301.98*x - 5.1693; |
emperord | 2:37a61db8b04b | 901 | if (x<0.0){ x=0.0;} |
emperord | 2:37a61db8b04b | 902 | Silver = x; |
emperord | 2:37a61db8b04b | 903 | sprintf((char*)cyclestep, ""); |
emperord | 2:37a61db8b04b | 904 | saveit(); |
emperord | 2:37a61db8b04b | 905 | } |
emperord | 2:37a61db8b04b | 906 | void ReadCopper() { |
emperord | 2:37a61db8b04b | 907 | sprintf((char*)cyclestep, " - Cu"); |
emperord | 2:37a61db8b04b | 908 | wash(); |
emperord | 2:37a61db8b04b | 909 | //Thread::wait(30000); //to give heater time to warm water |
emperord | 2:37a61db8b04b | 910 | LVL = readl(3); |
emperord | 2:37a61db8b04b | 911 | while (LVL > 9000000) { |
emperord | 2:37a61db8b04b | 912 | fill(); |
emperord | 2:37a61db8b04b | 913 | LVL = readl(3); |
emperord | 2:37a61db8b04b | 914 | } |
emperord | 2:37a61db8b04b | 915 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 916 | DARK = readl(4); |
emperord | 2:37a61db8b04b | 917 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 918 | ZERO = readl(5); |
emperord | 2:37a61db8b04b | 919 | CuIndicator(); |
emperord | 2:37a61db8b04b | 920 | mix(); |
emperord | 2:37a61db8b04b | 921 | Thread::wait(60000); |
emperord | 2:37a61db8b04b | 922 | sprintf((char*)cyclestep, " - Cu"); |
emperord | 2:37a61db8b04b | 923 | READ = readl(6); |
emperord | 2:37a61db8b04b | 924 | double x = abs(((float)READ-(float)DARK)/((float)ZERO-(float)DARK)); |
emperord | 2:37a61db8b04b | 925 | x = 2-log10(x*100); |
emperord | 2:37a61db8b04b | 926 | RAW = x; |
emperord | 2:37a61db8b04b | 927 | CopperRAW = RAW; |
emperord | 2:37a61db8b04b | 928 | //y = 4852.2x – 9.5947 |
emperord | 2:37a61db8b04b | 929 | x = 4852.2*x - 9.5947; |
emperord | 2:37a61db8b04b | 930 | if (x<0.0){ x=0.0;} |
emperord | 2:37a61db8b04b | 931 | Copper = x; |
emperord | 2:37a61db8b04b | 932 | sprintf((char*)cyclestep, ""); |
emperord | 2:37a61db8b04b | 933 | saveit(); |
emperord | 2:37a61db8b04b | 934 | } |
emperord | 2:37a61db8b04b | 935 | void ThermoStat() { |
emperord | 2:37a61db8b04b | 936 | TempCurrent = ((readtemp()/16777216.0) - 0.3756) * 660; |
emperord | 2:37a61db8b04b | 937 | pc.printf("%0.2f",TempCurrent); |
emperord | 2:37a61db8b04b | 938 | if (TempCurrent >= 41.0) { Heat = 0;} |
emperord | 2:37a61db8b04b | 939 | if (TempCurrent < 38.0) { Heat = 1;} |
emperord | 2:37a61db8b04b | 940 | } |
emperord | 2:37a61db8b04b | 941 | void reprime(); |
emperord | 2:37a61db8b04b | 942 | void takereading() { |
emperord | 2:37a61db8b04b | 943 | while (1) { |
emperord | 2:37a61db8b04b | 944 | LED515.write(0.0); |
emperord | 2:37a61db8b04b | 945 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 946 | LEDLD = 0; |
emperord | 2:37a61db8b04b | 947 | LEDBL = 0; |
emperord | 2:37a61db8b04b | 948 | LEDCUR = 0.0; |
emperord | 2:37a61db8b04b | 949 | if (ManMode == true) { |
emperord | 2:37a61db8b04b | 950 | DARK = readl(0); |
emperord | 2:37a61db8b04b | 951 | ZERO = readl(1); |
emperord | 2:37a61db8b04b | 952 | Thread::wait(5000); |
emperord | 2:37a61db8b04b | 953 | READ = readl(2); |
emperord | 2:37a61db8b04b | 954 | double x = abs(((float)READ-(float)DARK)/((float)ZERO-(float)DARK)); |
emperord | 2:37a61db8b04b | 955 | x = 2-log10(x*100); |
emperord | 2:37a61db8b04b | 956 | //x = 10.297*pow(x,2) - 21.909*x + 11.453; |
emperord | 2:37a61db8b04b | 957 | if (x < 0.0) { x = 0.0; } |
emperord | 2:37a61db8b04b | 958 | Copper = x; |
emperord | 2:37a61db8b04b | 959 | Silver = x; |
emperord | 2:37a61db8b04b | 960 | } |
emperord | 2:37a61db8b04b | 961 | if (ManMode == false) { |
emperord | 2:37a61db8b04b | 962 | ThermoStat(); |
emperord | 2:37a61db8b04b | 963 | if (AgMODE == true) { ReadSilver(); } |
emperord | 2:37a61db8b04b | 964 | if (CuMODE == true) { ReadCopper(); } |
emperord | 2:37a61db8b04b | 965 | drain(); |
emperord | 2:37a61db8b04b | 966 | for (int d6chld = 0; d6chld < d6count*56; d6chld++){ |
emperord | 2:37a61db8b04b | 967 | Thread::wait(60000); |
emperord | 2:37a61db8b04b | 968 | } |
emperord | 2:37a61db8b04b | 969 | if (d6count > 0) { reprime(); } |
emperord | 2:37a61db8b04b | 970 | } |
emperord | 2:37a61db8b04b | 971 | } |
emperord | 2:37a61db8b04b | 972 | } |
emperord | 2:37a61db8b04b | 973 | |
emperord | 2:37a61db8b04b | 974 | void prime(){ |
emperord | 2:37a61db8b04b | 975 | MODE = 3; |
emperord | 2:37a61db8b04b | 976 | thread3.terminate(); |
emperord | 2:37a61db8b04b | 977 | pump5 = 1; |
emperord | 2:37a61db8b04b | 978 | for (pcount = 0; pcount < 25; pcount++) { |
emperord | 2:37a61db8b04b | 979 | |
emperord | 2:37a61db8b04b | 980 | pump1 = 1; |
emperord | 2:37a61db8b04b | 981 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 982 | pump1 = 0; |
emperord | 2:37a61db8b04b | 983 | |
emperord | 2:37a61db8b04b | 984 | pump2 = 1; |
emperord | 2:37a61db8b04b | 985 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 986 | pump2 = 0; |
emperord | 2:37a61db8b04b | 987 | |
emperord | 2:37a61db8b04b | 988 | pump3 = 1; |
emperord | 2:37a61db8b04b | 989 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 990 | pump3 = 0; |
emperord | 2:37a61db8b04b | 991 | |
emperord | 2:37a61db8b04b | 992 | /* pump4 = 1; |
emperord | 2:37a61db8b04b | 993 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 994 | pump4 = 0; */ |
emperord | 2:37a61db8b04b | 995 | |
emperord | 2:37a61db8b04b | 996 | pump6 = 1; |
emperord | 2:37a61db8b04b | 997 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 998 | pump6 = 0; |
emperord | 2:37a61db8b04b | 999 | |
emperord | 2:37a61db8b04b | 1000 | motors[1]->move(StepperMotor::BWD, STEPS_1*6.15); |
emperord | 2:37a61db8b04b | 1001 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 1002 | |
emperord | 2:37a61db8b04b | 1003 | |
emperord | 2:37a61db8b04b | 1004 | } |
emperord | 2:37a61db8b04b | 1005 | Thread::wait(5000); |
emperord | 2:37a61db8b04b | 1006 | pump5 = 0; |
emperord | 2:37a61db8b04b | 1007 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 1008 | if (ManMode == true) { thread2.start(runpump); } |
emperord | 2:37a61db8b04b | 1009 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 1010 | pcount = 0; |
emperord | 2:37a61db8b04b | 1011 | MODE = 4; |
emperord | 2:37a61db8b04b | 1012 | } |
emperord | 2:37a61db8b04b | 1013 | |
emperord | 2:37a61db8b04b | 1014 | void reprime(){ |
emperord | 2:37a61db8b04b | 1015 | MODE = 3; |
emperord | 2:37a61db8b04b | 1016 | pump5 = 1; |
emperord | 2:37a61db8b04b | 1017 | for (pcount = 0; pcount < 5; pcount++) { |
emperord | 2:37a61db8b04b | 1018 | |
emperord | 2:37a61db8b04b | 1019 | pump1 = 1; |
emperord | 2:37a61db8b04b | 1020 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1021 | pump1 = 0; |
emperord | 2:37a61db8b04b | 1022 | |
emperord | 2:37a61db8b04b | 1023 | pump2 = 1; |
emperord | 2:37a61db8b04b | 1024 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1025 | pump2 = 0; |
bcostm | 0:9933f7db9a9b | 1026 | |
emperord | 2:37a61db8b04b | 1027 | pump3 = 1; |
emperord | 2:37a61db8b04b | 1028 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1029 | pump3 = 0; |
emperord | 2:37a61db8b04b | 1030 | |
emperord | 2:37a61db8b04b | 1031 | /* pump4 = 1; |
emperord | 2:37a61db8b04b | 1032 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1033 | pump4 = 0; */ |
emperord | 2:37a61db8b04b | 1034 | |
emperord | 2:37a61db8b04b | 1035 | pump6 = 1; |
emperord | 2:37a61db8b04b | 1036 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1037 | pump6 = 0; |
emperord | 2:37a61db8b04b | 1038 | |
emperord | 2:37a61db8b04b | 1039 | } |
emperord | 2:37a61db8b04b | 1040 | Thread::wait(2000); |
emperord | 2:37a61db8b04b | 1041 | pump5 = 0; |
emperord | 2:37a61db8b04b | 1042 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 1043 | pcount = 0; |
emperord | 2:37a61db8b04b | 1044 | MODE = 4; |
emperord | 2:37a61db8b04b | 1045 | } |
emperord | 2:37a61db8b04b | 1046 | |
emperord | 2:37a61db8b04b | 1047 | void screencycle(); |
emperord | 2:37a61db8b04b | 1048 | void setdatetime() { |
emperord | 2:37a61db8b04b | 1049 | cmd[0] = Oscillator; // Aging_offset |
emperord | 2:37a61db8b04b | 1050 | cmd[1] = 0x80 + 0x40 + 0x1; // -1ppm |
emperord | 2:37a61db8b04b | 1051 | i2c.write(PCF85263AT_ADDR, cmd, 2); // Aging_offset |
emperord | 2:37a61db8b04b | 1052 | |
emperord | 2:37a61db8b04b | 1053 | cmd[0] = Function; // Aging_offset |
emperord | 2:37a61db8b04b | 1054 | cmd[1] = 0x1; // -1ppm |
emperord | 2:37a61db8b04b | 1055 | i2c.write(PCF85263AT_ADDR, cmd, 2); // Aging_offset |
emperord | 2:37a61db8b04b | 1056 | |
emperord | 2:37a61db8b04b | 1057 | cmd[0] = Offset; // Aging_offset |
emperord | 2:37a61db8b04b | 1058 | cmd[1] = 60; // -1ppm |
emperord | 2:37a61db8b04b | 1059 | i2c.write(PCF85263AT_ADDR, cmd, 2); // Aging_offse |
emperord | 2:37a61db8b04b | 1060 | |
emperord | 2:37a61db8b04b | 1061 | |
emperord | 2:37a61db8b04b | 1062 | dt.y = 2000+(int)d3count; |
emperord | 2:37a61db8b04b | 1063 | dt.mm = (int)d1count; |
emperord | 2:37a61db8b04b | 1064 | dt.d = (int)d2count; |
emperord | 2:37a61db8b04b | 1065 | dt.h = (int)d4count; |
emperord | 2:37a61db8b04b | 1066 | dt.m = (int)d5count; |
emperord | 2:37a61db8b04b | 1067 | dt.s = 0; |
emperord | 2:37a61db8b04b | 1068 | set_time(&dt); |
emperord | 2:37a61db8b04b | 1069 | |
emperord | 2:37a61db8b04b | 1070 | } |
emperord | 2:37a61db8b04b | 1071 | void screen() { |
emperord | 2:37a61db8b04b | 1072 | while(1) { |
emperord | 2:37a61db8b04b | 1073 | if (p1count<0){p1count=0;} |
emperord | 2:37a61db8b04b | 1074 | if (p2count<0){p2count=0;} |
emperord | 2:37a61db8b04b | 1075 | if (p3count<0){p3count=0;} |
emperord | 2:37a61db8b04b | 1076 | if (p4count<0){p4count=0;} |
emperord | 2:37a61db8b04b | 1077 | if (p5count<0){p5count=0;} |
emperord | 2:37a61db8b04b | 1078 | if (p6count<0){p6count=0;} |
emperord | 2:37a61db8b04b | 1079 | if (p7count<0){p7count=0;} |
emperord | 2:37a61db8b04b | 1080 | //pump1.pulsewidth(p1count/750000); |
emperord | 2:37a61db8b04b | 1081 | |
emperord | 2:37a61db8b04b | 1082 | if (p1on == true || p2on == true || p3on == true || p4on == true || p5on == true || p6on == true || p7on == true) { Aon = true; } |
emperord | 2:37a61db8b04b | 1083 | if (p1on == false && p2on == false && p3on == false && p4on == false && p5on == false && p6on == false && p7on == false) { Aon = false; } |
emperord | 2:37a61db8b04b | 1084 | |
emperord | 2:37a61db8b04b | 1085 | |
emperord | 2:37a61db8b04b | 1086 | if (writefail == 1) { |
emperord | 2:37a61db8b04b | 1087 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1088 | lcd.FillCircle(235,175,10); |
emperord | 2:37a61db8b04b | 1089 | } |
emperord | 2:37a61db8b04b | 1090 | |
emperord | 2:37a61db8b04b | 1091 | //General Display |
emperord | 2:37a61db8b04b | 1092 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1093 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1094 | sprintf((char*)textn1, "%0.1f/%0.5f Ag", Silver, SilverRAW); |
emperord | 2:37a61db8b04b | 1095 | if (strcmp((char*)text1,(char*)textn1) != 0) { |
emperord | 2:37a61db8b04b | 1096 | sprintf((char*)text1, "%0.1f/%0.5f Ag", Silver, SilverRAW); |
emperord | 2:37a61db8b04b | 1097 | lcd.ClearStringLine(13); |
emperord | 2:37a61db8b04b | 1098 | } |
emperord | 2:37a61db8b04b | 1099 | lcd.DisplayStringAt(0, LINE(13), (uint8_t *)&text1, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1100 | |
emperord | 2:37a61db8b04b | 1101 | |
emperord | 2:37a61db8b04b | 1102 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1103 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1104 | sprintf((char*)textn4, "%0.1f/%0.5f Cu L:%d", Copper, CopperRAW, LVL); |
emperord | 2:37a61db8b04b | 1105 | if (strcmp((char*)text4,(char*)textn4) != 0) { |
emperord | 2:37a61db8b04b | 1106 | sprintf((char*)text4, "%0.1f/%0.5f Cu L:%d", Copper, CopperRAW, LVL); |
emperord | 2:37a61db8b04b | 1107 | lcd.ClearStringLine(14); |
emperord | 2:37a61db8b04b | 1108 | } |
emperord | 2:37a61db8b04b | 1109 | lcd.DisplayStringAt(0, LINE(14), (uint8_t *)&text4, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1110 | |
emperord | 2:37a61db8b04b | 1111 | |
emperord | 2:37a61db8b04b | 1112 | |
emperord | 2:37a61db8b04b | 1113 | lcd.SetTextColor(LCD_COLOR_DARKGRAY); |
emperord | 2:37a61db8b04b | 1114 | sprintf((char*)textn4, "RAW=%0.4f | %d | %d | %d", RAW, DARK, ZERO, READ); |
emperord | 2:37a61db8b04b | 1115 | if (strcmp((char*)text4,(char*)textn4) != 0) { |
emperord | 2:37a61db8b04b | 1116 | sprintf((char*)text4, "RAW=%0.4f | %d | %d | %d", RAW, DARK, ZERO, READ); |
emperord | 2:37a61db8b04b | 1117 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1118 | } |
emperord | 2:37a61db8b04b | 1119 | lcd.DisplayStringAt(0, LINE(15), (uint8_t *)&text4, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1120 | |
emperord | 2:37a61db8b04b | 1121 | sprintf((char*)textn5, "RAW Volts=%0.3f | %0.3f | %0.3f", ((double)DARK/16777216)*3.302, ((double)ZERO/16777216)*3.302, ((double)READ/16777216)*3.302); |
emperord | 2:37a61db8b04b | 1122 | if (strcmp((char*)text5,(char*)textn5) != 0) { |
emperord | 2:37a61db8b04b | 1123 | sprintf((char*)text5, "RAW Volts=%0.3f | %0.3f | %0.3f", ((double)DARK/16777216)*3.302, ((double)ZERO/16777216)*3.302, ((double)READ/16777216)*3.302); |
emperord | 2:37a61db8b04b | 1124 | lcd.ClearStringLine(16); |
emperord | 2:37a61db8b04b | 1125 | } |
emperord | 2:37a61db8b04b | 1126 | lcd.DisplayStringAt(0, LINE(16), (uint8_t *)&text5, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1127 | |
emperord | 2:37a61db8b04b | 1128 | |
emperord | 2:37a61db8b04b | 1129 | |
emperord | 2:37a61db8b04b | 1130 | if (MODE == 0 && (strcmp((char*)text3,"Dark Reading") != 0)) { |
emperord | 2:37a61db8b04b | 1131 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1132 | sprintf((char*)text3, "Dark Reading"); |
emperord | 2:37a61db8b04b | 1133 | } |
emperord | 2:37a61db8b04b | 1134 | if (MODE == 1 && (strcmp((char*)text3,"Zeroing") != 0)) { |
emperord | 2:37a61db8b04b | 1135 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1136 | sprintf((char*)text3, "Zeroing"); |
emperord | 2:37a61db8b04b | 1137 | } |
emperord | 2:37a61db8b04b | 1138 | if (MODE == 2 && (strcmp((char*)text3,"Reading") != 0)) { |
emperord | 2:37a61db8b04b | 1139 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1140 | sprintf((char*)text3, "Reading"); |
emperord | 2:37a61db8b04b | 1141 | } |
emperord | 2:37a61db8b04b | 1142 | if (MODE == 3 && (strcmp((char*)text3,"Priming") != 0)) { |
emperord | 2:37a61db8b04b | 1143 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1144 | sprintf((char*)text3, "Priming"); |
emperord | 2:37a61db8b04b | 1145 | } |
emperord | 2:37a61db8b04b | 1146 | sprintf((char*)textn3, "Waiting%s", cyclestep); |
emperord | 2:37a61db8b04b | 1147 | if (MODE == 4 && (strcmp((char*)text3,(char*)textn3) != 0)) { |
emperord | 2:37a61db8b04b | 1148 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1149 | sprintf((char*)text3, "Waiting%s", cyclestep); |
emperord | 2:37a61db8b04b | 1150 | } |
emperord | 2:37a61db8b04b | 1151 | if (MODE == 5 && (strcmp((char*)text3,"Sampling") != 0)) { |
emperord | 2:37a61db8b04b | 1152 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1153 | sprintf((char*)text3, "Sampling"); |
emperord | 2:37a61db8b04b | 1154 | } |
emperord | 2:37a61db8b04b | 1155 | if (MODE == 6 && (strcmp((char*)text3,"Washing") != 0)) { |
emperord | 2:37a61db8b04b | 1156 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1157 | sprintf((char*)text3, "Washing"); |
emperord | 2:37a61db8b04b | 1158 | } |
emperord | 2:37a61db8b04b | 1159 | if (MODE == 7 && (strcmp((char*)text3,"Mixing") != 0)) { |
emperord | 2:37a61db8b04b | 1160 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1161 | sprintf((char*)text3, "Mixing"); |
emperord | 2:37a61db8b04b | 1162 | } |
emperord | 2:37a61db8b04b | 1163 | if (MODE == 8 && (strcmp((char*)text3,"Ag Buffer Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1164 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1165 | sprintf((char*)text3, "Ag Buffer Dosing"); |
emperord | 2:37a61db8b04b | 1166 | } |
emperord | 2:37a61db8b04b | 1167 | if (MODE == 9 && (strcmp((char*)text3,"Ag Indicator Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1168 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1169 | sprintf((char*)text3, "Ag Indicator Dosing"); |
emperord | 2:37a61db8b04b | 1170 | } |
emperord | 2:37a61db8b04b | 1171 | if (MODE == 10 && (strcmp((char*)text3,"Cu Indicator Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1172 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1173 | sprintf((char*)text3, "Cu Indicator Dosing"); |
emperord | 2:37a61db8b04b | 1174 | } |
emperord | 2:37a61db8b04b | 1175 | if (MODE == 11 && (strcmp((char*)text3,"Write Success") != 0)) { |
emperord | 2:37a61db8b04b | 1176 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1177 | sprintf((char*)text3, "Write Success"); |
emperord | 2:37a61db8b04b | 1178 | } |
emperord | 2:37a61db8b04b | 1179 | if (MODE == 12 && (strcmp((char*)text3,"Level") != 0)) { |
emperord | 2:37a61db8b04b | 1180 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1181 | sprintf((char*)text3, "Level"); |
emperord | 2:37a61db8b04b | 1182 | } |
emperord | 2:37a61db8b04b | 1183 | if (MODE == 13 && (strcmp((char*)text3,"Write Fail") != 0)) { |
emperord | 2:37a61db8b04b | 1184 | lcd.ClearStringLine(12); |
emperord | 2:37a61db8b04b | 1185 | sprintf((char*)text3, "Write Fail"); |
emperord | 2:37a61db8b04b | 1186 | } |
emperord | 2:37a61db8b04b | 1187 | |
emperord | 2:37a61db8b04b | 1188 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
emperord | 2:37a61db8b04b | 1189 | lcd.DisplayStringAt(0, LINE(12), (uint8_t *)&text3, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1190 | |
emperord | 2:37a61db8b04b | 1191 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1192 | lcd.SetFont(&Font24); |
emperord | 2:37a61db8b04b | 1193 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"WOLFMAN", CENTER_MODE); |
emperord | 2:37a61db8b04b | 1194 | |
emperord | 2:37a61db8b04b | 1195 | |
emperord | 2:37a61db8b04b | 1196 | //Prime Button |
emperord | 2:37a61db8b04b | 1197 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1198 | if (pcount == 0) { |
emperord | 2:37a61db8b04b | 1199 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1200 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1201 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1202 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1203 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1204 | lcd.DisplayStringAt(20, 2, (uint8_t *)"Prime", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1205 | } else { |
emperord | 2:37a61db8b04b | 1206 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1207 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1208 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1209 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1210 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1211 | sprintf((char*)nus_buffer, "%d", (int)pcount); |
emperord | 2:37a61db8b04b | 1212 | lcd.DisplayStringAt(20, 2, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1213 | } |
emperord | 2:37a61db8b04b | 1214 | |
emperord | 2:37a61db8b04b | 1215 | //Screen Mode |
emperord | 2:37a61db8b04b | 1216 | //lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1217 | //lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1218 | touchbutt = DrawButton(230, 30, 50, 15); |
emperord | 2:37a61db8b04b | 1219 | for( int i = 0 ; i < 4 ; ++i ){ screenmode[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1220 | |
emperord | 2:37a61db8b04b | 1221 | |
emperord | 2:37a61db8b04b | 1222 | //Cu Only Button |
emperord | 2:37a61db8b04b | 1223 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1224 | if (CuMODE == false) { |
emperord | 2:37a61db8b04b | 1225 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1226 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1227 | touchbutt = DrawButton(90, 2, 25, 15); |
emperord | 2:37a61db8b04b | 1228 | for( int i = 0 ; i < 4 ; ++i ){ CuMODEonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1229 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1230 | lcd.DisplayStringAt(90, 2, (uint8_t *)"Cu", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1231 | } else { |
emperord | 2:37a61db8b04b | 1232 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1233 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1234 | touchbutt = DrawButton(90, 2, 25, 15); |
emperord | 2:37a61db8b04b | 1235 | for( int i = 0 ; i < 4 ; ++i ){ CuMODEonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1236 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1237 | lcd.DisplayStringAt(90, 2, (uint8_t *)"Cu", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1238 | } |
emperord | 2:37a61db8b04b | 1239 | //Ag Only Button |
emperord | 2:37a61db8b04b | 1240 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1241 | if (AgMODE == false) { |
emperord | 2:37a61db8b04b | 1242 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1243 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1244 | touchbutt = DrawButton(130, 2, 25, 15); |
emperord | 2:37a61db8b04b | 1245 | for( int i = 0 ; i < 4 ; ++i ){ AgMODEonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1246 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1247 | lcd.DisplayStringAt(130, 2, (uint8_t *)"Ag", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1248 | } else { |
emperord | 2:37a61db8b04b | 1249 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1250 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1251 | touchbutt = DrawButton(130, 2, 25, 15); |
emperord | 2:37a61db8b04b | 1252 | for( int i = 0 ; i < 4 ; ++i ){ AgMODEonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1253 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1254 | lcd.DisplayStringAt(130, 2, (uint8_t *)"Ag", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1255 | } |
emperord | 2:37a61db8b04b | 1256 | |
emperord | 2:37a61db8b04b | 1257 | |
bcostm | 0:9933f7db9a9b | 1258 | |
emperord | 2:37a61db8b04b | 1259 | //Mode Button |
emperord | 2:37a61db8b04b | 1260 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1261 | if (ManMode == true) { |
emperord | 2:37a61db8b04b | 1262 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1263 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1264 | touchbutt = DrawButton(340, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1265 | for( int i = 0 ; i < 4 ; ++i ){ Manonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1266 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1267 | lcd.DisplayStringAt(346, 5, (uint8_t *)"Manual", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1268 | } else { |
emperord | 2:37a61db8b04b | 1269 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1270 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1271 | touchbutt = DrawButton(340, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1272 | for( int i = 0 ; i < 4 ; ++i ){ Manonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1273 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1274 | lcd.DisplayStringAt(348, 5, (uint8_t *)"Auto", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1275 | } |
emperord | 2:37a61db8b04b | 1276 | |
emperord | 2:37a61db8b04b | 1277 | |
emperord | 2:37a61db8b04b | 1278 | |
emperord | 2:37a61db8b04b | 1279 | |
emperord | 2:37a61db8b04b | 1280 | //All Button |
emperord | 2:37a61db8b04b | 1281 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1282 | if (Aon == true) { |
emperord | 2:37a61db8b04b | 1283 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1284 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1285 | touchbutt = DrawButton(410, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1286 | for( int i = 0 ; i < 4 ; ++i ){ Aonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1287 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1288 | lcd.DisplayStringAt(411, 5, (uint8_t *)"All ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1289 | } else { |
emperord | 2:37a61db8b04b | 1290 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1291 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1292 | touchbutt = DrawButton(410, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1293 | for( int i = 0 ; i < 4 ; ++i ){ Aonoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1294 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1295 | lcd.DisplayStringAt(410, 5, (uint8_t *)"All OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1296 | } |
emperord | 2:37a61db8b04b | 1297 | |
emperord | 2:37a61db8b04b | 1298 | //pump 1 controls |
emperord | 2:37a61db8b04b | 1299 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1300 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1301 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1302 | lcd.DisplayStringAt(10, 30, (uint8_t *)"AgBuf", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1303 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1304 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1305 | toucharrow = DrawArrow(30,50,1,2); |
emperord | 2:37a61db8b04b | 1306 | for( int i = 0 ; i < 4 ; ++i ){ p1up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1307 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1308 | toucharrow = DrawArrow(30,150,2,2); |
emperord | 2:37a61db8b04b | 1309 | for( int i = 0 ; i < 4 ; ++i ){ p1down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1310 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1311 | sprintf((char*)nus_buffer, "%d", (int)p1count); |
emperord | 2:37a61db8b04b | 1312 | lcd.DisplayStringAt(30, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1313 | if (p1on == true) { |
emperord | 2:37a61db8b04b | 1314 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1315 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1316 | touchbutt = DrawButton(10, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1317 | for( int i = 0 ; i < 4 ; ++i ){ p1onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1318 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1319 | lcd.DisplayStringAt(20, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1320 | } else { |
emperord | 2:37a61db8b04b | 1321 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1322 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1323 | touchbutt = DrawButton(10, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1324 | for( int i = 0 ; i < 4 ; ++i ){ p1onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1325 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1326 | lcd.DisplayStringAt(20, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1327 | } |
emperord | 2:37a61db8b04b | 1328 | |
emperord | 2:37a61db8b04b | 1329 | |
emperord | 2:37a61db8b04b | 1330 | |
emperord | 2:37a61db8b04b | 1331 | //pump 2 controls |
emperord | 2:37a61db8b04b | 1332 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1333 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1334 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1335 | lcd.DisplayStringAt(80, 30, (uint8_t *)"AgInd", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1336 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1337 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1338 | toucharrow = DrawArrow(100,50,1,2); |
emperord | 2:37a61db8b04b | 1339 | for( int i = 0 ; i < 4 ; ++i ){ p2up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1340 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1341 | toucharrow = DrawArrow(100,150,2,2); |
emperord | 2:37a61db8b04b | 1342 | for( int i = 0 ; i < 4 ; ++i ){ p2down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1343 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1344 | sprintf((char*)nus_buffer, "%d", (int)p2count); |
emperord | 2:37a61db8b04b | 1345 | lcd.DisplayStringAt(100, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1346 | if (p2on == true) { |
emperord | 2:37a61db8b04b | 1347 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1348 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1349 | touchbutt = DrawButton(80, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1350 | for( int i = 0 ; i < 4 ; ++i ){ p2onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1351 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1352 | lcd.DisplayStringAt(90, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1353 | } else { |
emperord | 2:37a61db8b04b | 1354 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1355 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1356 | touchbutt = DrawButton(80, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1357 | for( int i = 0 ; i < 4 ; ++i ){ p2onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1358 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1359 | lcd.DisplayStringAt(90, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1360 | } |
emperord | 2:37a61db8b04b | 1361 | |
emperord | 2:37a61db8b04b | 1362 | |
emperord | 2:37a61db8b04b | 1363 | |
emperord | 2:37a61db8b04b | 1364 | //pump 3 controls |
emperord | 2:37a61db8b04b | 1365 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1366 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1367 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1368 | lcd.DisplayStringAt(150, 30, (uint8_t *)"CuInd", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1369 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1370 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1371 | toucharrow = DrawArrow(170,50,1,2); |
emperord | 2:37a61db8b04b | 1372 | for( int i = 0 ; i < 4 ; ++i ){ p3up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1373 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1374 | toucharrow = DrawArrow(170,150,2,2); |
emperord | 2:37a61db8b04b | 1375 | for( int i = 0 ; i < 4 ; ++i ){ p3down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1376 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1377 | sprintf((char*)nus_buffer, "%d", (int)p3count); |
emperord | 2:37a61db8b04b | 1378 | lcd.DisplayStringAt(170, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1379 | if (p3on == true) { |
emperord | 2:37a61db8b04b | 1380 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1381 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1382 | touchbutt = DrawButton(150, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1383 | for( int i = 0 ; i < 4 ; ++i ){ p3onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1384 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1385 | lcd.DisplayStringAt(160, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1386 | } else { |
emperord | 2:37a61db8b04b | 1387 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1388 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1389 | touchbutt = DrawButton(150, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1390 | for( int i = 0 ; i < 4 ; ++i ){ p3onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1391 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1392 | lcd.DisplayStringAt(160, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1393 | } |
emperord | 2:37a61db8b04b | 1394 | |
emperord | 2:37a61db8b04b | 1395 | |
emperord | 2:37a61db8b04b | 1396 | |
emperord | 2:37a61db8b04b | 1397 | /* |
emperord | 2:37a61db8b04b | 1398 | //pump 4 controls |
emperord | 2:37a61db8b04b | 1399 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1400 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1401 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1402 | lcd.DisplayStringAt(220, 30, (uint8_t *)"OCl", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1403 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1404 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1405 | toucharrow = DrawArrow(240,50,1,2); |
emperord | 2:37a61db8b04b | 1406 | for( int i = 0 ; i < 4 ; ++i ){ p4up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1407 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1408 | toucharrow = DrawArrow(240,150,2,2); |
emperord | 2:37a61db8b04b | 1409 | for( int i = 0 ; i < 4 ; ++i ){ p4down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1410 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1411 | sprintf((char*)nus_buffer, "%d", (int)p4count); |
emperord | 2:37a61db8b04b | 1412 | lcd.DisplayStringAt(240, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1413 | if (p4on == true) { |
emperord | 2:37a61db8b04b | 1414 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1415 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1416 | touchbutt = DrawButton(220, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1417 | for( int i = 0 ; i < 4 ; ++i ){ p4onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1418 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1419 | lcd.DisplayStringAt(230, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1420 | } else { |
emperord | 2:37a61db8b04b | 1421 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1422 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1423 | touchbutt = DrawButton(220, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1424 | for( int i = 0 ; i < 4 ; ++i ){ p4onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1425 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1426 | lcd.DisplayStringAt(230, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1427 | } |
emperord | 2:37a61db8b04b | 1428 | */ |
emperord | 2:37a61db8b04b | 1429 | |
emperord | 2:37a61db8b04b | 1430 | //Solenoid 5 controls |
emperord | 2:37a61db8b04b | 1431 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1432 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1433 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1434 | lcd.DisplayStringAt(285, 30, (uint8_t *)"Drain", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1435 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1436 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1437 | toucharrow = DrawArrow(310,50,1,2); |
emperord | 2:37a61db8b04b | 1438 | for( int i = 0 ; i < 4 ; ++i ){ p5up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1439 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1440 | toucharrow = DrawArrow(310,150,2,2); |
emperord | 2:37a61db8b04b | 1441 | for( int i = 0 ; i < 4 ; ++i ){ p5down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1442 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1443 | sprintf((char*)nus_buffer, "%d", (int)p5count); |
emperord | 2:37a61db8b04b | 1444 | lcd.DisplayStringAt(310, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1445 | if (p5on == true) { |
emperord | 2:37a61db8b04b | 1446 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1447 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1448 | touchbutt = DrawButton(290, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1449 | for( int i = 0 ; i < 4 ; ++i ){ p5onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1450 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1451 | lcd.DisplayStringAt(300, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1452 | } else { |
emperord | 2:37a61db8b04b | 1453 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1454 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1455 | touchbutt = DrawButton(290, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1456 | for( int i = 0 ; i < 4 ; ++i ){ p5onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1457 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1458 | lcd.DisplayStringAt(300, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1459 | } |
emperord | 2:37a61db8b04b | 1460 | //Pump 6 controls |
emperord | 2:37a61db8b04b | 1461 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1462 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1463 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1464 | lcd.DisplayStringAt(360, 30, (uint8_t *)"Mix", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1465 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1466 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1467 | toucharrow = DrawArrow(380,50,1,2); |
emperord | 2:37a61db8b04b | 1468 | for( int i = 0 ; i < 4 ; ++i ){ p6up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1469 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1470 | toucharrow = DrawArrow(380,150,2,2); |
emperord | 2:37a61db8b04b | 1471 | for( int i = 0 ; i < 4 ; ++i ){ p6down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1472 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1473 | sprintf((char*)nus_buffer, "%d", (int)p6count); |
emperord | 2:37a61db8b04b | 1474 | lcd.DisplayStringAt(380, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1475 | if (p6on == true) { |
emperord | 2:37a61db8b04b | 1476 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1477 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1478 | touchbutt = DrawButton(360, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1479 | for( int i = 0 ; i < 4 ; ++i ){ p6onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1480 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1481 | lcd.DisplayStringAt(370, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1482 | } else { |
emperord | 2:37a61db8b04b | 1483 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1484 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1485 | touchbutt = DrawButton(360, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1486 | for( int i = 0 ; i < 4 ; ++i ){ p6onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1487 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1488 | lcd.DisplayStringAt(370, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1489 | } |
emperord | 2:37a61db8b04b | 1490 | //Pump 7 controls |
emperord | 2:37a61db8b04b | 1491 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1492 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1493 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1494 | lcd.DisplayStringAt(430, 30, (uint8_t *)"Fill", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1495 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1496 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 1497 | toucharrow = DrawArrow(450,50,1,2); |
emperord | 2:37a61db8b04b | 1498 | for( int i = 0 ; i < 4 ; ++i ){ p7up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1499 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1500 | toucharrow = DrawArrow(450,150,2,2); |
emperord | 2:37a61db8b04b | 1501 | for( int i = 0 ; i < 4 ; ++i ){ p7down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 1502 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1503 | sprintf((char*)nus_buffer, "%d", (int)p7count); |
emperord | 2:37a61db8b04b | 1504 | lcd.DisplayStringAt(450, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1505 | if (p7on == true) { |
emperord | 2:37a61db8b04b | 1506 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1507 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1508 | touchbutt = DrawButton(430, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1509 | for( int i = 0 ; i < 4 ; ++i ){ p7onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1510 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1511 | lcd.DisplayStringAt(440, 168, (uint8_t *)"ON", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1512 | } else { |
emperord | 2:37a61db8b04b | 1513 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1514 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1515 | touchbutt = DrawButton(430, 165, 40, 15); |
emperord | 2:37a61db8b04b | 1516 | for( int i = 0 ; i < 4 ; ++i ){ p7onoff[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1517 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1518 | lcd.DisplayStringAt(440, 168, (uint8_t *)"OFF", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1519 | } |
emperord | 2:37a61db8b04b | 1520 | |
emperord | 2:37a61db8b04b | 1521 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1522 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
bcostm | 0:9933f7db9a9b | 1523 | ts.GetState(&TS_State); |
bcostm | 0:9933f7db9a9b | 1524 | if (TS_State.touchDetected) { |
bcostm | 0:9933f7db9a9b | 1525 | // Clear lines corresponding to old touches coordinates |
bcostm | 0:9933f7db9a9b | 1526 | if (TS_State.touchDetected < prev_nb_touches) { |
bcostm | 0:9933f7db9a9b | 1527 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
bcostm | 0:9933f7db9a9b | 1528 | lcd.ClearStringLine(idx); |
bcostm | 0:9933f7db9a9b | 1529 | } |
bcostm | 0:9933f7db9a9b | 1530 | } |
bcostm | 0:9933f7db9a9b | 1531 | prev_nb_touches = TS_State.touchDetected; |
bcostm | 0:9933f7db9a9b | 1532 | |
bcostm | 0:9933f7db9a9b | 1533 | cleared = 0; |
bcostm | 0:9933f7db9a9b | 1534 | |
emperord | 2:37a61db8b04b | 1535 | /* sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
emperord | 2:37a61db8b04b | 1536 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 1537 | |
emperord | 2:37a61db8b04b | 1538 | |
emperord | 2:37a61db8b04b | 1539 | |
emperord | 2:37a61db8b04b | 1540 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
emperord | 2:37a61db8b04b | 1541 | x = TS_State.touchX[idx]; |
emperord | 2:37a61db8b04b | 1542 | y = TS_State.touchY[idx]; |
emperord | 2:37a61db8b04b | 1543 | double touchsensativity = 0.075; //(0.055 originaly) |
emperord | 2:37a61db8b04b | 1544 | |
emperord | 2:37a61db8b04b | 1545 | |
emperord | 2:37a61db8b04b | 1546 | if (( x >= primeon[0] && x <= primeon[1] ) && (y >= primeon[2] && y <= primeon[3])) { |
emperord | 2:37a61db8b04b | 1547 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1548 | if (pcount != 0) { |
emperord | 2:37a61db8b04b | 1549 | pcount = 0; |
emperord | 2:37a61db8b04b | 1550 | thread2.start(takereading); |
emperord | 2:37a61db8b04b | 1551 | } |
emperord | 2:37a61db8b04b | 1552 | else { |
emperord | 2:37a61db8b04b | 1553 | ManMode = false; |
emperord | 2:37a61db8b04b | 1554 | Aon = false; |
emperord | 2:37a61db8b04b | 1555 | p1on = false; |
emperord | 2:37a61db8b04b | 1556 | p2on = false; |
emperord | 2:37a61db8b04b | 1557 | p3on = false; |
emperord | 2:37a61db8b04b | 1558 | p4on = false; |
emperord | 2:37a61db8b04b | 1559 | p5on = false; |
emperord | 2:37a61db8b04b | 1560 | p6on = false; |
emperord | 2:37a61db8b04b | 1561 | p7on = false; |
emperord | 2:37a61db8b04b | 1562 | thread2.start(prime); |
emperord | 2:37a61db8b04b | 1563 | } |
emperord | 2:37a61db8b04b | 1564 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 1565 | } |
emperord | 2:37a61db8b04b | 1566 | |
emperord | 2:37a61db8b04b | 1567 | |
emperord | 2:37a61db8b04b | 1568 | if (( x >= Manonoff[0] && x <= Manonoff[1] ) && (y >= Manonoff[2] && y <= Manonoff[3])){ |
emperord | 2:37a61db8b04b | 1569 | ManMode = !ManMode; |
emperord | 2:37a61db8b04b | 1570 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 1571 | if (ManMode == true) { |
emperord | 2:37a61db8b04b | 1572 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1573 | p1on = false; |
emperord | 2:37a61db8b04b | 1574 | p2on = false; |
emperord | 2:37a61db8b04b | 1575 | p3on = false; |
emperord | 2:37a61db8b04b | 1576 | p4on = false; |
emperord | 2:37a61db8b04b | 1577 | p5on = false; |
emperord | 2:37a61db8b04b | 1578 | p6on = false; |
emperord | 2:37a61db8b04b | 1579 | p7on = false; |
emperord | 2:37a61db8b04b | 1580 | thread2.start(runpump); |
emperord | 2:37a61db8b04b | 1581 | thread3.terminate(); |
emperord | 2:37a61db8b04b | 1582 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 1583 | } else { |
emperord | 2:37a61db8b04b | 1584 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1585 | thread3.terminate(); |
emperord | 2:37a61db8b04b | 1586 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 1587 | } |
emperord | 2:37a61db8b04b | 1588 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1589 | } |
emperord | 2:37a61db8b04b | 1590 | |
emperord | 2:37a61db8b04b | 1591 | if (( x >= CuMODEonoff[0] && x <= CuMODEonoff[1] ) && (y >= CuMODEonoff[2] && y <= CuMODEonoff[3])){ CuMODE = !CuMODE; } |
emperord | 2:37a61db8b04b | 1592 | if (( x >= AgMODEonoff[0] && x <= AgMODEonoff[1] ) && (y >= AgMODEonoff[2] && y <= AgMODEonoff[3])){ AgMODE = !AgMODE; } |
emperord | 2:37a61db8b04b | 1593 | |
emperord | 2:37a61db8b04b | 1594 | if (( x >= screenmode[0] && x <= screenmode[1] ) && (y >= screenmode[2] && y <= screenmode[3])){ |
emperord | 2:37a61db8b04b | 1595 | screenstate = screenstate + 1; |
emperord | 2:37a61db8b04b | 1596 | if (screenstate > 2){ screenstate = 0; } |
emperord | 2:37a61db8b04b | 1597 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1598 | EE_WriteVariable(VirtAddVarTab[7], (uint16_t)screenstate); |
emperord | 2:37a61db8b04b | 1599 | screencycle(); |
emperord | 2:37a61db8b04b | 1600 | return; |
emperord | 2:37a61db8b04b | 1601 | } |
emperord | 2:37a61db8b04b | 1602 | |
emperord | 2:37a61db8b04b | 1603 | |
emperord | 2:37a61db8b04b | 1604 | if (( x >= Aonoff[0] && x <= Aonoff[1] ) && (y >= Aonoff[2] && y <= Aonoff[3])){ |
emperord | 2:37a61db8b04b | 1605 | Aon = !Aon; |
emperord | 2:37a61db8b04b | 1606 | if (Aon == true) { |
emperord | 2:37a61db8b04b | 1607 | p1on = true; |
emperord | 2:37a61db8b04b | 1608 | p2on = true; |
emperord | 2:37a61db8b04b | 1609 | p3on = true; |
emperord | 2:37a61db8b04b | 1610 | p4on = true; |
emperord | 2:37a61db8b04b | 1611 | p5on = true; |
emperord | 2:37a61db8b04b | 1612 | p6on = true; |
emperord | 2:37a61db8b04b | 1613 | p7on = true; |
emperord | 2:37a61db8b04b | 1614 | } else { |
emperord | 2:37a61db8b04b | 1615 | p1on = false; |
emperord | 2:37a61db8b04b | 1616 | p2on = false; |
emperord | 2:37a61db8b04b | 1617 | p3on = false; |
emperord | 2:37a61db8b04b | 1618 | p4on = false; |
emperord | 2:37a61db8b04b | 1619 | p5on = false; |
emperord | 2:37a61db8b04b | 1620 | p6on = false; |
emperord | 2:37a61db8b04b | 1621 | p7on = false; |
emperord | 2:37a61db8b04b | 1622 | } |
emperord | 2:37a61db8b04b | 1623 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1624 | //EE_WriteVariable(VirtAddVarTab[0], (uint16_t)p1count); |
emperord | 2:37a61db8b04b | 1625 | } |
emperord | 2:37a61db8b04b | 1626 | |
emperord | 2:37a61db8b04b | 1627 | //pump1 |
emperord | 2:37a61db8b04b | 1628 | if (( x >= p1up[0] && x <= p1up[1] ) && (y >= p1up[2] && y <= p1up[3])){ |
emperord | 2:37a61db8b04b | 1629 | p1count = p1count + touchsensativity; |
emperord | 2:37a61db8b04b | 1630 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1631 | EE_WriteVariable(VirtAddVarTab[0], (uint16_t)p1count); |
emperord | 2:37a61db8b04b | 1632 | |
emperord | 2:37a61db8b04b | 1633 | } |
emperord | 2:37a61db8b04b | 1634 | if (( x >= p1down[0] && x <= p1down[1] ) && (y >= p1down[2] && y <= p1down[3])){ |
emperord | 2:37a61db8b04b | 1635 | p1count = p1count - touchsensativity; |
emperord | 2:37a61db8b04b | 1636 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1637 | EE_WriteVariable(VirtAddVarTab[0], (uint16_t)p1count); |
emperord | 2:37a61db8b04b | 1638 | } |
emperord | 2:37a61db8b04b | 1639 | if (( x >= p1onoff[0] && x <= p1onoff[1] ) && (y >= p1onoff[2] && y <= p1onoff[3])){ |
emperord | 2:37a61db8b04b | 1640 | p1on = !p1on; |
emperord | 2:37a61db8b04b | 1641 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1642 | } |
emperord | 2:37a61db8b04b | 1643 | //pump2 |
emperord | 2:37a61db8b04b | 1644 | if (( x >= p2up[0] && x <= p2up[1] ) && (y >= p2up[2] && y <= p2up[3])){ |
emperord | 2:37a61db8b04b | 1645 | p2count = p2count + touchsensativity; |
emperord | 2:37a61db8b04b | 1646 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1647 | EE_WriteVariable(VirtAddVarTab[1], (uint16_t)p2count); |
emperord | 2:37a61db8b04b | 1648 | |
emperord | 2:37a61db8b04b | 1649 | } |
emperord | 2:37a61db8b04b | 1650 | if (( x >= p2down[0] && x <= p2down[1] ) && (y >= p2down[2] && y <= p2down[3])){ |
emperord | 2:37a61db8b04b | 1651 | p2count = p2count - touchsensativity; |
emperord | 2:37a61db8b04b | 1652 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1653 | EE_WriteVariable(VirtAddVarTab[1], (uint16_t)p2count); |
emperord | 2:37a61db8b04b | 1654 | } |
emperord | 2:37a61db8b04b | 1655 | if (( x >= p2onoff[0] && x <= p2onoff[1] ) && (y >= p2onoff[2] && y <= p2onoff[3])){ |
emperord | 2:37a61db8b04b | 1656 | p2on = !p2on; |
emperord | 2:37a61db8b04b | 1657 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1658 | } |
emperord | 2:37a61db8b04b | 1659 | //pump3 |
emperord | 2:37a61db8b04b | 1660 | if (( x >= p3up[0] && x <= p3up[1] ) && (y >= p3up[2] && y <= p3up[3])){ |
emperord | 2:37a61db8b04b | 1661 | p3count = p3count + touchsensativity; |
emperord | 2:37a61db8b04b | 1662 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1663 | EE_WriteVariable(VirtAddVarTab[2], (uint16_t)p3count); |
emperord | 2:37a61db8b04b | 1664 | |
emperord | 2:37a61db8b04b | 1665 | } |
emperord | 2:37a61db8b04b | 1666 | if (( x >= p3down[0] && x <= p3down[1] ) && (y >= p3down[2] && y <= p3down[3])){ |
emperord | 2:37a61db8b04b | 1667 | p3count = p3count - touchsensativity; |
emperord | 2:37a61db8b04b | 1668 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1669 | EE_WriteVariable(VirtAddVarTab[2], (uint16_t)p3count); |
emperord | 2:37a61db8b04b | 1670 | } |
emperord | 2:37a61db8b04b | 1671 | if (( x >= p3onoff[0] && x <= p3onoff[1] ) && (y >= p3onoff[2] && y <= p3onoff[3])){ |
emperord | 2:37a61db8b04b | 1672 | p3on = !p3on; |
emperord | 2:37a61db8b04b | 1673 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1674 | } |
emperord | 2:37a61db8b04b | 1675 | /* //pump4 |
emperord | 2:37a61db8b04b | 1676 | if (( x >= p4up[0] && x <= p4up[1] ) && (y >= p4up[2] && y <= p4up[3])){ |
emperord | 2:37a61db8b04b | 1677 | p4count = p4count + touchsensativity; |
emperord | 2:37a61db8b04b | 1678 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1679 | EE_WriteVariable(VirtAddVarTab[3], (uint16_t)p4count); |
emperord | 2:37a61db8b04b | 1680 | |
emperord | 2:37a61db8b04b | 1681 | } |
emperord | 2:37a61db8b04b | 1682 | if (( x >= p4down[0] && x <= p4down[1] ) && (y >= p4down[2] && y <= p4down[3])){ |
emperord | 2:37a61db8b04b | 1683 | p4count = p4count - touchsensativity; |
emperord | 2:37a61db8b04b | 1684 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1685 | EE_WriteVariable(VirtAddVarTab[3], (uint16_t)p4count); |
emperord | 2:37a61db8b04b | 1686 | } |
emperord | 2:37a61db8b04b | 1687 | if (( x >= p4onoff[0] && x <= p4onoff[1] ) && (y >= p4onoff[2] && y <= p4onoff[3])){ |
emperord | 2:37a61db8b04b | 1688 | p4on = !p4on; |
emperord | 2:37a61db8b04b | 1689 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1690 | } */ |
emperord | 2:37a61db8b04b | 1691 | //Sole5 |
emperord | 2:37a61db8b04b | 1692 | if (( x >= p5up[0] && x <= p5up[1] ) && (y >= p5up[2] && y <= p5up[3])){ |
emperord | 2:37a61db8b04b | 1693 | p5count = p5count + touchsensativity; |
emperord | 2:37a61db8b04b | 1694 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1695 | EE_WriteVariable(VirtAddVarTab[4], (uint16_t)p5count); |
emperord | 2:37a61db8b04b | 1696 | |
emperord | 2:37a61db8b04b | 1697 | } |
emperord | 2:37a61db8b04b | 1698 | if (( x >= p5down[0] && x <= p5down[1] ) && (y >= p5down[2] && y <= p5down[3])){ |
emperord | 2:37a61db8b04b | 1699 | p5count = p5count - touchsensativity; |
emperord | 2:37a61db8b04b | 1700 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1701 | EE_WriteVariable(VirtAddVarTab[4], (uint16_t)p5count); |
emperord | 2:37a61db8b04b | 1702 | } |
emperord | 2:37a61db8b04b | 1703 | if (( x >= p5onoff[0] && x <= p5onoff[1] ) && (y >= p5onoff[2] && y <= p5onoff[3])){ |
emperord | 2:37a61db8b04b | 1704 | p5on = !p5on; |
emperord | 2:37a61db8b04b | 1705 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1706 | } |
emperord | 2:37a61db8b04b | 1707 | //Pump6 |
emperord | 2:37a61db8b04b | 1708 | if (( x >= p6up[0] && x <= p6up[1] ) && (y >= p6up[2] && y <= p6up[3])){ |
emperord | 2:37a61db8b04b | 1709 | p6count = p6count + touchsensativity; |
emperord | 2:37a61db8b04b | 1710 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1711 | EE_WriteVariable(VirtAddVarTab[5], (uint16_t)p6count); |
emperord | 2:37a61db8b04b | 1712 | |
emperord | 2:37a61db8b04b | 1713 | } |
emperord | 2:37a61db8b04b | 1714 | if (( x >= p6down[0] && x <= p6down[1] ) && (y >= p6down[2] && y <= p6down[3])){ |
emperord | 2:37a61db8b04b | 1715 | p6count = p6count - touchsensativity; |
emperord | 2:37a61db8b04b | 1716 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1717 | EE_WriteVariable(VirtAddVarTab[5], (uint16_t)p6count); |
emperord | 2:37a61db8b04b | 1718 | } |
emperord | 2:37a61db8b04b | 1719 | if (( x >= p6onoff[0] && x <= p6onoff[1] ) && (y >= p6onoff[2] && y <= p6onoff[3])){ |
emperord | 2:37a61db8b04b | 1720 | p6on = !p6on; |
emperord | 2:37a61db8b04b | 1721 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1722 | } |
emperord | 2:37a61db8b04b | 1723 | //Pump7 |
emperord | 2:37a61db8b04b | 1724 | if (( x >= p7up[0] && x <= p7up[1] ) && (y >= p7up[2] && y <= p7up[3])){ |
emperord | 2:37a61db8b04b | 1725 | p7count = p7count + touchsensativity; |
emperord | 2:37a61db8b04b | 1726 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1727 | EE_WriteVariable(VirtAddVarTab[6], (uint16_t)p7count); |
emperord | 2:37a61db8b04b | 1728 | |
emperord | 2:37a61db8b04b | 1729 | } |
emperord | 2:37a61db8b04b | 1730 | if (( x >= p7down[0] && x <= p7down[1] ) && (y >= p7down[2] && y <= p7down[3])){ |
emperord | 2:37a61db8b04b | 1731 | p7count = p7count - touchsensativity; |
emperord | 2:37a61db8b04b | 1732 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 1733 | EE_WriteVariable(VirtAddVarTab[6], (uint16_t)p7count); |
emperord | 2:37a61db8b04b | 1734 | } |
emperord | 2:37a61db8b04b | 1735 | if (( x >= p7onoff[0] && x <= p7onoff[1] ) && (y >= p7onoff[2] && y <= p7onoff[3])){ |
emperord | 2:37a61db8b04b | 1736 | p7on = !p7on; |
emperord | 2:37a61db8b04b | 1737 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1738 | } |
emperord | 2:37a61db8b04b | 1739 | |
emperord | 2:37a61db8b04b | 1740 | /* sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y); |
emperord | 2:37a61db8b04b | 1741 | lcd.DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 1742 | } |
emperord | 2:37a61db8b04b | 1743 | lcd.DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE); |
emperord | 2:37a61db8b04b | 1744 | } else { |
emperord | 2:37a61db8b04b | 1745 | if (!cleared) { |
emperord | 2:37a61db8b04b | 1746 | lcd.Clear(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1747 | /* sprintf((char*)text, "Touches: 0"); |
emperord | 2:37a61db8b04b | 1748 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 1749 | cleared = 1; |
emperord | 2:37a61db8b04b | 1750 | } |
emperord | 2:37a61db8b04b | 1751 | } |
emperord | 2:37a61db8b04b | 1752 | |
emperord | 2:37a61db8b04b | 1753 | } |
emperord | 2:37a61db8b04b | 1754 | } |
emperord | 2:37a61db8b04b | 1755 | |
emperord | 2:37a61db8b04b | 1756 | //////////// |
emperord | 2:37a61db8b04b | 1757 | void screen2() { |
emperord | 2:37a61db8b04b | 1758 | while(1) { |
emperord | 2:37a61db8b04b | 1759 | if (p1count<0){p1count=0;} |
emperord | 2:37a61db8b04b | 1760 | if (p2count<0){p2count=0;} |
emperord | 2:37a61db8b04b | 1761 | if (p3count<0){p3count=0;} |
emperord | 2:37a61db8b04b | 1762 | if (p4count<0){p4count=0;} |
emperord | 2:37a61db8b04b | 1763 | if (p5count<0){p5count=0;} |
emperord | 2:37a61db8b04b | 1764 | if (p6count<0){p6count=0;} |
emperord | 2:37a61db8b04b | 1765 | if (p7count<0){p7count=0;} |
emperord | 2:37a61db8b04b | 1766 | //pump1.pulsewidth(p1count/750000); |
emperord | 2:37a61db8b04b | 1767 | |
emperord | 2:37a61db8b04b | 1768 | if (p1on == true || p2on == true || p3on == true || p4on == true || p5on == true || p6on == true || p7on == true) { Aon = true; } |
emperord | 2:37a61db8b04b | 1769 | if (p1on == false && p2on == false && p3on == false && p4on == false && p5on == false && p6on == false && p7on == false) { Aon = false; } |
emperord | 2:37a61db8b04b | 1770 | |
emperord | 2:37a61db8b04b | 1771 | if (writefail == 1) { |
emperord | 2:37a61db8b04b | 1772 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1773 | lcd.FillCircle(235,190,10); |
emperord | 2:37a61db8b04b | 1774 | } |
emperord | 2:37a61db8b04b | 1775 | |
emperord | 2:37a61db8b04b | 1776 | //General Display |
emperord | 2:37a61db8b04b | 1777 | lcd.SetFont(&Font20); |
emperord | 2:37a61db8b04b | 1778 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1779 | sprintf((char*)textn1, "%0.1f ppb Ag+", Silver); |
emperord | 2:37a61db8b04b | 1780 | /* if (strcmp((char*)text1,(char*)textn1) != 0) { |
emperord | 2:37a61db8b04b | 1781 | sprintf((char*)text1, "%0.1f ppm Ag+", Silver); |
emperord | 2:37a61db8b04b | 1782 | lcd.ClearStringLine(4); |
emperord | 2:37a61db8b04b | 1783 | } */ |
emperord | 2:37a61db8b04b | 1784 | lcd.DisplayStringAt(0, LINE(4), (uint8_t *)&textn1, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1785 | |
emperord | 2:37a61db8b04b | 1786 | lcd.SetFont(&Font20); |
emperord | 2:37a61db8b04b | 1787 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1788 | sprintf((char*)textn1, "%0.1f ppb Cu2+", Copper); |
emperord | 2:37a61db8b04b | 1789 | /* if (strcmp((char*)text1,(char*)textn1) != 0) { |
emperord | 2:37a61db8b04b | 1790 | sprintf((char*)text1, "%0.1f ppm Cu2+", Copper); |
emperord | 2:37a61db8b04b | 1791 | lcd.ClearStringLine(9); |
emperord | 2:37a61db8b04b | 1792 | } */ |
emperord | 2:37a61db8b04b | 1793 | lcd.DisplayStringAt(0, LINE(7), (uint8_t *)&textn1, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1794 | |
emperord | 2:37a61db8b04b | 1795 | |
emperord | 2:37a61db8b04b | 1796 | |
emperord | 2:37a61db8b04b | 1797 | |
emperord | 2:37a61db8b04b | 1798 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 1799 | if (MODE == 0 && (strcmp((char*)text3,"Dark Reading") != 0)) { |
emperord | 2:37a61db8b04b | 1800 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1801 | sprintf((char*)text3, "Dark Reading"); |
emperord | 2:37a61db8b04b | 1802 | } |
emperord | 2:37a61db8b04b | 1803 | if (MODE == 1 && (strcmp((char*)text3,"Zeroing") != 0)) { |
emperord | 2:37a61db8b04b | 1804 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1805 | sprintf((char*)text3, "Zeroing"); |
emperord | 2:37a61db8b04b | 1806 | } |
emperord | 2:37a61db8b04b | 1807 | if (MODE == 2 && (strcmp((char*)text3,"Reading") != 0)) { |
emperord | 2:37a61db8b04b | 1808 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1809 | sprintf((char*)text3, "Reading"); |
emperord | 2:37a61db8b04b | 1810 | } |
emperord | 2:37a61db8b04b | 1811 | if (MODE == 3 && (strcmp((char*)text3,"Priming") != 0)) { |
emperord | 2:37a61db8b04b | 1812 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1813 | sprintf((char*)text3, "Priming"); |
emperord | 2:37a61db8b04b | 1814 | } |
emperord | 2:37a61db8b04b | 1815 | sprintf((char*)textn3, "Waiting%s", cyclestep); |
emperord | 2:37a61db8b04b | 1816 | if (MODE == 4 && (strcmp((char*)text3,(char*)textn3) != 0)) { |
emperord | 2:37a61db8b04b | 1817 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1818 | sprintf((char*)text3, "Waiting%s", cyclestep); |
emperord | 2:37a61db8b04b | 1819 | } |
emperord | 2:37a61db8b04b | 1820 | if (MODE == 5 && (strcmp((char*)text3,"Sampling") != 0)) { |
emperord | 2:37a61db8b04b | 1821 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1822 | sprintf((char*)text3, "Sampling"); |
emperord | 2:37a61db8b04b | 1823 | } |
emperord | 2:37a61db8b04b | 1824 | if (MODE == 6 && (strcmp((char*)text3,"Washing") != 0)) { |
emperord | 2:37a61db8b04b | 1825 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1826 | sprintf((char*)text3, "Washing"); |
emperord | 2:37a61db8b04b | 1827 | } |
emperord | 2:37a61db8b04b | 1828 | if (MODE == 7 && (strcmp((char*)text3,"Mixing") != 0)) { |
emperord | 2:37a61db8b04b | 1829 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1830 | sprintf((char*)text3, "Mixing"); |
emperord | 2:37a61db8b04b | 1831 | } |
emperord | 2:37a61db8b04b | 1832 | if (MODE == 8 && (strcmp((char*)text3,"Ag Buffer Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1833 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1834 | sprintf((char*)text3, "Ag Buffer Dosing"); |
emperord | 2:37a61db8b04b | 1835 | } |
emperord | 2:37a61db8b04b | 1836 | if (MODE == 9 && (strcmp((char*)text3,"Ag Indicator Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1837 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1838 | sprintf((char*)text3, "Ag Indicator Dosing"); |
emperord | 2:37a61db8b04b | 1839 | } |
emperord | 2:37a61db8b04b | 1840 | if (MODE == 10 && (strcmp((char*)text3,"Cu Indicator Dosing") != 0)) { |
emperord | 2:37a61db8b04b | 1841 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1842 | sprintf((char*)text3, "Cu Indicator Dosing"); |
emperord | 2:37a61db8b04b | 1843 | } |
emperord | 2:37a61db8b04b | 1844 | if (MODE == 11 && (strcmp((char*)text3,"Write Success") != 0)) { |
emperord | 2:37a61db8b04b | 1845 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1846 | sprintf((char*)text3, "Write Success"); |
emperord | 2:37a61db8b04b | 1847 | } |
emperord | 2:37a61db8b04b | 1848 | if (MODE == 12 && (strcmp((char*)text3,"Level") != 0)) { |
emperord | 2:37a61db8b04b | 1849 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1850 | sprintf((char*)text3, "Level"); |
emperord | 2:37a61db8b04b | 1851 | } |
emperord | 2:37a61db8b04b | 1852 | if (MODE == 13 && (strcmp((char*)text3,"Write Fail") != 0)) { |
emperord | 2:37a61db8b04b | 1853 | lcd.ClearStringLine(15); |
emperord | 2:37a61db8b04b | 1854 | sprintf((char*)text3, "Write Fail"); |
emperord | 2:37a61db8b04b | 1855 | } |
emperord | 2:37a61db8b04b | 1856 | |
emperord | 2:37a61db8b04b | 1857 | lcd.SetTextColor(LCD_COLOR_LIGHTRED); |
emperord | 2:37a61db8b04b | 1858 | lcd.DisplayStringAt(0, LINE(15), (uint8_t *)&text3, CENTER_MODE); |
emperord | 2:37a61db8b04b | 1859 | |
emperord | 2:37a61db8b04b | 1860 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1861 | lcd.SetFont(&Font24); |
emperord | 2:37a61db8b04b | 1862 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"Cu/Ag Ion Monitor", CENTER_MODE); |
emperord | 2:37a61db8b04b | 1863 | |
emperord | 2:37a61db8b04b | 1864 | |
emperord | 2:37a61db8b04b | 1865 | //Prime Button |
emperord | 2:37a61db8b04b | 1866 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 1867 | if (pcount == 0) { |
emperord | 2:37a61db8b04b | 1868 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1869 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1870 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1871 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1872 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1873 | lcd.DisplayStringAt(20, 2, (uint8_t *)"Prime", LEFT_MODE); |
emperord | 2:37a61db8b04b | 1874 | } else { |
emperord | 2:37a61db8b04b | 1875 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1876 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 1877 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 1878 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1879 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1880 | sprintf((char*)nus_buffer, "%d", (int)pcount); |
emperord | 2:37a61db8b04b | 1881 | lcd.DisplayStringAt(20, 2, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 1882 | } |
emperord | 2:37a61db8b04b | 1883 | |
emperord | 2:37a61db8b04b | 1884 | |
emperord | 2:37a61db8b04b | 1885 | //Screen Mode |
emperord | 2:37a61db8b04b | 1886 | //lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1887 | //lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 1888 | touchbutt = DrawButton(230, 30, 50, 15); |
emperord | 2:37a61db8b04b | 1889 | for( int i = 0 ; i < 4 ; ++i ){ screenmode[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 1890 | |
emperord | 2:37a61db8b04b | 1891 | |
emperord | 2:37a61db8b04b | 1892 | |
emperord | 2:37a61db8b04b | 1893 | |
emperord | 2:37a61db8b04b | 1894 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 1895 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 1896 | ts.GetState(&TS_State); |
emperord | 2:37a61db8b04b | 1897 | if (TS_State.touchDetected) { |
emperord | 2:37a61db8b04b | 1898 | // Clear lines corresponding to old touches coordinates |
emperord | 2:37a61db8b04b | 1899 | if (TS_State.touchDetected < prev_nb_touches) { |
emperord | 2:37a61db8b04b | 1900 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
emperord | 2:37a61db8b04b | 1901 | lcd.ClearStringLine(idx); |
emperord | 2:37a61db8b04b | 1902 | } |
emperord | 2:37a61db8b04b | 1903 | } |
emperord | 2:37a61db8b04b | 1904 | prev_nb_touches = TS_State.touchDetected; |
emperord | 2:37a61db8b04b | 1905 | |
emperord | 2:37a61db8b04b | 1906 | cleared = 0; |
emperord | 2:37a61db8b04b | 1907 | |
emperord | 2:37a61db8b04b | 1908 | /* sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
emperord | 2:37a61db8b04b | 1909 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 1910 | |
emperord | 2:37a61db8b04b | 1911 | |
bcostm | 0:9933f7db9a9b | 1912 | |
bcostm | 0:9933f7db9a9b | 1913 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
bcostm | 0:9933f7db9a9b | 1914 | x = TS_State.touchX[idx]; |
bcostm | 0:9933f7db9a9b | 1915 | y = TS_State.touchY[idx]; |
emperord | 2:37a61db8b04b | 1916 | double touchsensativity = 0.075; //(0.055 originaly) |
emperord | 2:37a61db8b04b | 1917 | |
emperord | 2:37a61db8b04b | 1918 | |
emperord | 2:37a61db8b04b | 1919 | if (( x >= primeon[0] && x <= primeon[1] ) && (y >= primeon[2] && y <= primeon[3])) { |
emperord | 2:37a61db8b04b | 1920 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1921 | if (pcount != 0) { |
emperord | 2:37a61db8b04b | 1922 | pcount = 0; |
emperord | 2:37a61db8b04b | 1923 | thread2.start(takereading); |
emperord | 2:37a61db8b04b | 1924 | } |
emperord | 2:37a61db8b04b | 1925 | else { |
emperord | 2:37a61db8b04b | 1926 | ManMode = false; |
emperord | 2:37a61db8b04b | 1927 | Aon = false; |
emperord | 2:37a61db8b04b | 1928 | p1on = false; |
emperord | 2:37a61db8b04b | 1929 | p2on = false; |
emperord | 2:37a61db8b04b | 1930 | p3on = false; |
emperord | 2:37a61db8b04b | 1931 | p4on = false; |
emperord | 2:37a61db8b04b | 1932 | p5on = false; |
emperord | 2:37a61db8b04b | 1933 | p6on = false; |
emperord | 2:37a61db8b04b | 1934 | p7on = false; |
emperord | 2:37a61db8b04b | 1935 | thread2.start(prime); |
emperord | 2:37a61db8b04b | 1936 | } |
emperord | 2:37a61db8b04b | 1937 | Thread::wait(300); |
emperord | 2:37a61db8b04b | 1938 | } |
bcostm | 0:9933f7db9a9b | 1939 | |
emperord | 2:37a61db8b04b | 1940 | |
emperord | 2:37a61db8b04b | 1941 | if (( x >= Manonoff[0] && x <= Manonoff[1] ) && (y >= Manonoff[2] && y <= Manonoff[3])){ |
emperord | 2:37a61db8b04b | 1942 | ManMode = !ManMode; |
emperord | 2:37a61db8b04b | 1943 | //motors[1]->wait_while_active(); |
emperord | 2:37a61db8b04b | 1944 | if (ManMode == true) { |
emperord | 2:37a61db8b04b | 1945 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1946 | p1on = false; |
emperord | 2:37a61db8b04b | 1947 | p2on = false; |
emperord | 2:37a61db8b04b | 1948 | p3on = false; |
emperord | 2:37a61db8b04b | 1949 | p4on = false; |
emperord | 2:37a61db8b04b | 1950 | p5on = false; |
emperord | 2:37a61db8b04b | 1951 | p6on = false; |
emperord | 2:37a61db8b04b | 1952 | p7on = false; |
emperord | 2:37a61db8b04b | 1953 | thread2.start(runpump); |
emperord | 2:37a61db8b04b | 1954 | thread3.terminate(); |
emperord | 2:37a61db8b04b | 1955 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 1956 | } else { |
emperord | 2:37a61db8b04b | 1957 | thread2.terminate(); |
emperord | 2:37a61db8b04b | 1958 | thread3.terminate(); |
emperord | 2:37a61db8b04b | 1959 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 1960 | } |
emperord | 2:37a61db8b04b | 1961 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1962 | } |
emperord | 2:37a61db8b04b | 1963 | |
emperord | 2:37a61db8b04b | 1964 | if (( x >= CuMODEonoff[0] && x <= CuMODEonoff[1] ) && (y >= CuMODEonoff[2] && y <= CuMODEonoff[3])){ CuMODE = !CuMODE; } |
emperord | 2:37a61db8b04b | 1965 | if (( x >= AgMODEonoff[0] && x <= AgMODEonoff[1] ) && (y >= AgMODEonoff[2] && y <= AgMODEonoff[3])){ AgMODE = !AgMODE; } |
emperord | 2:37a61db8b04b | 1966 | |
emperord | 2:37a61db8b04b | 1967 | if (( x >= screenmode[0] && x <= screenmode[1] ) && (y >= screenmode[2] && y <= screenmode[3])){ |
emperord | 2:37a61db8b04b | 1968 | screenstate = screenstate + 1; |
emperord | 2:37a61db8b04b | 1969 | if (screenstate > 2){ screenstate = 0; } |
emperord | 2:37a61db8b04b | 1970 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1971 | EE_WriteVariable(VirtAddVarTab[7], (uint16_t)screenstate); |
emperord | 2:37a61db8b04b | 1972 | screencycle(); |
emperord | 2:37a61db8b04b | 1973 | return; |
emperord | 2:37a61db8b04b | 1974 | } |
emperord | 2:37a61db8b04b | 1975 | |
emperord | 2:37a61db8b04b | 1976 | |
emperord | 2:37a61db8b04b | 1977 | if (( x >= Aonoff[0] && x <= Aonoff[1] ) && (y >= Aonoff[2] && y <= Aonoff[3])){ |
emperord | 2:37a61db8b04b | 1978 | Aon = !Aon; |
emperord | 2:37a61db8b04b | 1979 | if (Aon == true) { |
emperord | 2:37a61db8b04b | 1980 | p1on = true; |
emperord | 2:37a61db8b04b | 1981 | p2on = true; |
emperord | 2:37a61db8b04b | 1982 | p3on = true; |
emperord | 2:37a61db8b04b | 1983 | p4on = true; |
emperord | 2:37a61db8b04b | 1984 | p5on = true; |
emperord | 2:37a61db8b04b | 1985 | p6on = true; |
emperord | 2:37a61db8b04b | 1986 | p7on = true; |
emperord | 2:37a61db8b04b | 1987 | } else { |
emperord | 2:37a61db8b04b | 1988 | p1on = false; |
emperord | 2:37a61db8b04b | 1989 | p2on = false; |
emperord | 2:37a61db8b04b | 1990 | p3on = false; |
emperord | 2:37a61db8b04b | 1991 | p4on = false; |
emperord | 2:37a61db8b04b | 1992 | p5on = false; |
emperord | 2:37a61db8b04b | 1993 | p6on = false; |
emperord | 2:37a61db8b04b | 1994 | p7on = false; |
emperord | 2:37a61db8b04b | 1995 | } |
emperord | 2:37a61db8b04b | 1996 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 1997 | //EE_WriteVariable(VirtAddVarTab[0], (uint16_t)p1count); |
emperord | 2:37a61db8b04b | 1998 | } |
emperord | 2:37a61db8b04b | 1999 | |
emperord | 2:37a61db8b04b | 2000 | |
emperord | 2:37a61db8b04b | 2001 | |
emperord | 2:37a61db8b04b | 2002 | /* sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y); |
emperord | 2:37a61db8b04b | 2003 | lcd.DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 2004 | } |
bcostm | 0:9933f7db9a9b | 2005 | lcd.DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE); |
bcostm | 0:9933f7db9a9b | 2006 | } else { |
bcostm | 0:9933f7db9a9b | 2007 | if (!cleared) { |
emperord | 2:37a61db8b04b | 2008 | lcd.Clear(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2009 | /* sprintf((char*)text, "Touches: 0"); |
emperord | 2:37a61db8b04b | 2010 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
bcostm | 0:9933f7db9a9b | 2011 | cleared = 1; |
bcostm | 0:9933f7db9a9b | 2012 | } |
bcostm | 0:9933f7db9a9b | 2013 | } |
emperord | 2:37a61db8b04b | 2014 | |
bcostm | 0:9933f7db9a9b | 2015 | } |
bcostm | 0:9933f7db9a9b | 2016 | } |
emperord | 2:37a61db8b04b | 2017 | |
emperord | 2:37a61db8b04b | 2018 | void screen3() { |
emperord | 2:37a61db8b04b | 2019 | while(1) { |
emperord | 2:37a61db8b04b | 2020 | if (d1count<0){d1count=0;} |
emperord | 2:37a61db8b04b | 2021 | if (d2count<0){d2count=0;} |
emperord | 2:37a61db8b04b | 2022 | if (d3count<0){d3count=0;} |
emperord | 2:37a61db8b04b | 2023 | if (d4count<0){d4count=0;} |
emperord | 2:37a61db8b04b | 2024 | if (d5count<0){d5count=0;} |
emperord | 2:37a61db8b04b | 2025 | if (d6count<0){d6count=0;} |
emperord | 2:37a61db8b04b | 2026 | |
emperord | 2:37a61db8b04b | 2027 | |
emperord | 2:37a61db8b04b | 2028 | |
emperord | 2:37a61db8b04b | 2029 | |
emperord | 2:37a61db8b04b | 2030 | /* //Prime Button |
emperord | 2:37a61db8b04b | 2031 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2032 | if (pcount == 0) { |
emperord | 2:37a61db8b04b | 2033 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2034 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2035 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 2036 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 2037 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2038 | lcd.DisplayStringAt(20, 2, (uint8_t *)"Prime", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2039 | } else { |
emperord | 2:37a61db8b04b | 2040 | lcd.SetTextColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 2041 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 2042 | touchbutt = DrawButton(20, 2, 50, 15); |
emperord | 2:37a61db8b04b | 2043 | for( int i = 0 ; i < 4 ; ++i ){ primeon[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 2044 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2045 | sprintf((char*)nus_buffer, "%d", (int)pcount); |
emperord | 2:37a61db8b04b | 2046 | lcd.DisplayStringAt(20, 2, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2047 | } */ |
emperord | 2:37a61db8b04b | 2048 | |
emperord | 2:37a61db8b04b | 2049 | //Screen Mode |
emperord | 2:37a61db8b04b | 2050 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2051 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2052 | touchbutt = DrawButton(230, 2, 50, 15); |
emperord | 2:37a61db8b04b | 2053 | for( int i = 0 ; i < 4 ; ++i ){ screenmode[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 2054 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2055 | lcd.DisplayStringAt(230, 2, (uint8_t *)"Exit", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2056 | |
emperord | 2:37a61db8b04b | 2057 | |
emperord | 2:37a61db8b04b | 2058 | |
emperord | 2:37a61db8b04b | 2059 | //Save |
emperord | 2:37a61db8b04b | 2060 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2061 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2062 | lcd.SetBackColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2063 | touchbutt = DrawButton(90, 2, 50, 15); |
emperord | 2:37a61db8b04b | 2064 | for( int i = 0 ; i < 4 ; ++i ){ savedate[ i ] = touchbutt[ i ]; } |
emperord | 2:37a61db8b04b | 2065 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2066 | lcd.DisplayStringAt(90, 2, (uint8_t *)"Save", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2067 | |
emperord | 2:37a61db8b04b | 2068 | |
emperord | 2:37a61db8b04b | 2069 | get_time(&dt); |
emperord | 2:37a61db8b04b | 2070 | sprintf((char*)currenttime, "%02d/%02d/%04d %02d:%02d:%02d\n", dt.mm, dt.d, 2000 + dt.y, dt.h, dt.m, dt.s); |
emperord | 2:37a61db8b04b | 2071 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2072 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2073 | lcd.DisplayStringAt(0, LINE(13), (uint8_t *)currenttime, CENTER_MODE); |
emperord | 2:37a61db8b04b | 2074 | |
emperord | 2:37a61db8b04b | 2075 | |
emperord | 2:37a61db8b04b | 2076 | |
emperord | 2:37a61db8b04b | 2077 | |
emperord | 2:37a61db8b04b | 2078 | //Month |
emperord | 2:37a61db8b04b | 2079 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2080 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2081 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2082 | lcd.DisplayStringAt(10, 30, (uint8_t *)"Month", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2083 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2084 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2085 | toucharrow = DrawArrow(30,50,1,2); |
emperord | 2:37a61db8b04b | 2086 | for( int i = 0 ; i < 4 ; ++i ){ d1up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2087 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2088 | toucharrow = DrawArrow(30,150,2,2); |
emperord | 2:37a61db8b04b | 2089 | for( int i = 0 ; i < 4 ; ++i ){ d1down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2090 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2091 | sprintf((char*)nus_buffer, "%d", (int)d1count); |
emperord | 2:37a61db8b04b | 2092 | lcd.DisplayStringAt(30, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2093 | |
emperord | 2:37a61db8b04b | 2094 | |
emperord | 2:37a61db8b04b | 2095 | |
emperord | 2:37a61db8b04b | 2096 | //Day |
emperord | 2:37a61db8b04b | 2097 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2098 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2099 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2100 | lcd.DisplayStringAt(80, 30, (uint8_t *)"Day", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2101 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2102 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2103 | toucharrow = DrawArrow(100,50,1,2); |
emperord | 2:37a61db8b04b | 2104 | for( int i = 0 ; i < 4 ; ++i ){ d2up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2105 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2106 | toucharrow = DrawArrow(100,150,2,2); |
emperord | 2:37a61db8b04b | 2107 | for( int i = 0 ; i < 4 ; ++i ){ d2down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2108 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2109 | sprintf((char*)nus_buffer, "%d", (int)d2count); |
emperord | 2:37a61db8b04b | 2110 | lcd.DisplayStringAt(100, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2111 | |
emperord | 2:37a61db8b04b | 2112 | |
emperord | 2:37a61db8b04b | 2113 | |
emperord | 2:37a61db8b04b | 2114 | //Year |
emperord | 2:37a61db8b04b | 2115 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2116 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2117 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2118 | lcd.DisplayStringAt(150, 30, (uint8_t *)"Year", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2119 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2120 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2121 | toucharrow = DrawArrow(170,50,1,2); |
emperord | 2:37a61db8b04b | 2122 | for( int i = 0 ; i < 4 ; ++i ){ d3up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2123 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2124 | toucharrow = DrawArrow(170,150,2,2); |
emperord | 2:37a61db8b04b | 2125 | for( int i = 0 ; i < 4 ; ++i ){ d3down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2126 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2127 | sprintf((char*)nus_buffer, "%d", (int)d3count); |
emperord | 2:37a61db8b04b | 2128 | lcd.DisplayStringAt(170, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2129 | |
emperord | 2:37a61db8b04b | 2130 | |
emperord | 2:37a61db8b04b | 2131 | |
emperord | 2:37a61db8b04b | 2132 | |
emperord | 2:37a61db8b04b | 2133 | |
emperord | 2:37a61db8b04b | 2134 | //Hour |
emperord | 2:37a61db8b04b | 2135 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2136 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2137 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2138 | lcd.DisplayStringAt(220, 30, (uint8_t *)"Hour", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2139 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2140 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2141 | toucharrow = DrawArrow(240,50,1,2); |
emperord | 2:37a61db8b04b | 2142 | for( int i = 0 ; i < 4 ; ++i ){ d4up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2143 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2144 | toucharrow = DrawArrow(240,150,2,2); |
emperord | 2:37a61db8b04b | 2145 | for( int i = 0 ; i < 4 ; ++i ){ d4down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2146 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2147 | sprintf((char*)nus_buffer, "%d", (int)d4count); |
emperord | 2:37a61db8b04b | 2148 | lcd.DisplayStringAt(240, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2149 | |
emperord | 2:37a61db8b04b | 2150 | |
emperord | 2:37a61db8b04b | 2151 | |
emperord | 2:37a61db8b04b | 2152 | //Min |
emperord | 2:37a61db8b04b | 2153 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2154 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2155 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2156 | lcd.DisplayStringAt(285, 30, (uint8_t *)"Min", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2157 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2158 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2159 | toucharrow = DrawArrow(310,50,1,2); |
emperord | 2:37a61db8b04b | 2160 | for( int i = 0 ; i < 4 ; ++i ){ d5up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2161 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2162 | toucharrow = DrawArrow(310,150,2,2); |
emperord | 2:37a61db8b04b | 2163 | for( int i = 0 ; i < 4 ; ++i ){ d5down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2164 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2165 | sprintf((char*)nus_buffer, "%d", (int)d5count); |
emperord | 2:37a61db8b04b | 2166 | lcd.DisplayStringAt(310, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2167 | |
emperord | 2:37a61db8b04b | 2168 | |
emperord | 2:37a61db8b04b | 2169 | //Interval |
emperord | 2:37a61db8b04b | 2170 | lcd.SetFont(&Font16); |
emperord | 2:37a61db8b04b | 2171 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2172 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2173 | lcd.DisplayStringAt(360, 30, (uint8_t *)"Interval(h)", LEFT_MODE); |
emperord | 2:37a61db8b04b | 2174 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2175 | lcd.SetTextColor(LCD_COLOR_YELLOW); |
emperord | 2:37a61db8b04b | 2176 | toucharrow = DrawArrow(380,50,1,2); |
emperord | 2:37a61db8b04b | 2177 | for( int i = 0 ; i < 4 ; ++i ){ d6up[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2178 | lcd.SetTextColor(LCD_COLOR_GREEN); |
emperord | 2:37a61db8b04b | 2179 | toucharrow = DrawArrow(380,150,2,2); |
emperord | 2:37a61db8b04b | 2180 | for( int i = 0 ; i < 4 ; ++i ){ d6down[ i ] = toucharrow[ i ]; } |
emperord | 2:37a61db8b04b | 2181 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2182 | sprintf((char*)nus_buffer, "%d", (int)d6count); |
emperord | 2:37a61db8b04b | 2183 | lcd.DisplayStringAt(380, 95, (uint8_t *)nus_buffer, LEFT_MODE); |
emperord | 2:37a61db8b04b | 2184 | |
emperord | 2:37a61db8b04b | 2185 | |
emperord | 2:37a61db8b04b | 2186 | |
emperord | 2:37a61db8b04b | 2187 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2188 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE); |
emperord | 2:37a61db8b04b | 2189 | ts.GetState(&TS_State); |
emperord | 2:37a61db8b04b | 2190 | if (TS_State.touchDetected) { |
emperord | 2:37a61db8b04b | 2191 | // Clear lines corresponding to old touches coordinates |
emperord | 2:37a61db8b04b | 2192 | if (TS_State.touchDetected < prev_nb_touches) { |
emperord | 2:37a61db8b04b | 2193 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
emperord | 2:37a61db8b04b | 2194 | lcd.ClearStringLine(idx); |
emperord | 2:37a61db8b04b | 2195 | } |
emperord | 2:37a61db8b04b | 2196 | } |
emperord | 2:37a61db8b04b | 2197 | prev_nb_touches = TS_State.touchDetected; |
emperord | 2:37a61db8b04b | 2198 | |
emperord | 2:37a61db8b04b | 2199 | cleared = 0; |
emperord | 2:37a61db8b04b | 2200 | |
emperord | 2:37a61db8b04b | 2201 | /* sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
emperord | 2:37a61db8b04b | 2202 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 2203 | |
emperord | 2:37a61db8b04b | 2204 | |
emperord | 2:37a61db8b04b | 2205 | |
emperord | 2:37a61db8b04b | 2206 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
emperord | 2:37a61db8b04b | 2207 | x = TS_State.touchX[idx]; |
emperord | 2:37a61db8b04b | 2208 | y = TS_State.touchY[idx]; |
emperord | 2:37a61db8b04b | 2209 | double touchsensativity = 0.075; //(0.055 originaly) |
emperord | 2:37a61db8b04b | 2210 | |
emperord | 2:37a61db8b04b | 2211 | |
emperord | 2:37a61db8b04b | 2212 | |
emperord | 2:37a61db8b04b | 2213 | |
emperord | 2:37a61db8b04b | 2214 | if (( x >= screenmode[0] && x <= screenmode[1] ) && (y >= screenmode[2] && y <= screenmode[3])){ |
emperord | 2:37a61db8b04b | 2215 | screenstate = screenstate + 1; |
emperord | 2:37a61db8b04b | 2216 | if (screenstate > 2){ screenstate = 0; } |
emperord | 2:37a61db8b04b | 2217 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 2218 | EE_WriteVariable(VirtAddVarTab[7], (uint16_t)screenstate); |
emperord | 2:37a61db8b04b | 2219 | screencycle(); |
emperord | 2:37a61db8b04b | 2220 | return; |
emperord | 2:37a61db8b04b | 2221 | } |
emperord | 2:37a61db8b04b | 2222 | |
emperord | 2:37a61db8b04b | 2223 | if (( x >= savedate[0] && x <= savedate[1] ) && (y >= savedate[2] && y <= savedate[3])){ setdatetime(); } |
emperord | 2:37a61db8b04b | 2224 | |
emperord | 2:37a61db8b04b | 2225 | //Month |
emperord | 2:37a61db8b04b | 2226 | if (( x >= d1up[0] && x <= d1up[1] ) && (y >= d1up[2] && y <= d1up[3])){ |
emperord | 2:37a61db8b04b | 2227 | d1count = d1count + touchsensativity; |
emperord | 2:37a61db8b04b | 2228 | } |
emperord | 2:37a61db8b04b | 2229 | if (( x >= d1down[0] && x <= d1down[1] ) && (y >= d1down[2] && y <= d1down[3])){ |
emperord | 2:37a61db8b04b | 2230 | d1count = d1count - touchsensativity; |
emperord | 2:37a61db8b04b | 2231 | } |
emperord | 2:37a61db8b04b | 2232 | |
emperord | 2:37a61db8b04b | 2233 | //Day |
emperord | 2:37a61db8b04b | 2234 | if (( x >= d2up[0] && x <= d2up[1] ) && (y >= d2up[2] && y <= d2up[3])){ |
emperord | 2:37a61db8b04b | 2235 | d2count = d2count + touchsensativity; |
emperord | 2:37a61db8b04b | 2236 | |
emperord | 2:37a61db8b04b | 2237 | } |
emperord | 2:37a61db8b04b | 2238 | if (( x >= d2down[0] && x <= d2down[1] ) && (y >= d2down[2] && y <= d2down[3])){ |
emperord | 2:37a61db8b04b | 2239 | d2count = d2count - touchsensativity; |
emperord | 2:37a61db8b04b | 2240 | |
emperord | 2:37a61db8b04b | 2241 | } |
emperord | 2:37a61db8b04b | 2242 | |
emperord | 2:37a61db8b04b | 2243 | //year |
emperord | 2:37a61db8b04b | 2244 | if (( x >= d3up[0] && x <= d3up[1] ) && (y >= d3up[2] && y <= d3up[3])){ |
emperord | 2:37a61db8b04b | 2245 | d3count = d3count + touchsensativity; |
emperord | 2:37a61db8b04b | 2246 | |
emperord | 2:37a61db8b04b | 2247 | } |
emperord | 2:37a61db8b04b | 2248 | if (( x >= d3down[0] && x <= d3down[1] ) && (y >= d3down[2] && y <= d3down[3])){ |
emperord | 2:37a61db8b04b | 2249 | d3count = d3count - touchsensativity; |
emperord | 2:37a61db8b04b | 2250 | } |
emperord | 2:37a61db8b04b | 2251 | |
emperord | 2:37a61db8b04b | 2252 | //hour |
emperord | 2:37a61db8b04b | 2253 | if (( x >= d4up[0] && x <= d4up[1] ) && (y >= d4up[2] && y <= d4up[3])){ |
emperord | 2:37a61db8b04b | 2254 | d4count = d4count + touchsensativity; |
emperord | 2:37a61db8b04b | 2255 | |
emperord | 2:37a61db8b04b | 2256 | } |
emperord | 2:37a61db8b04b | 2257 | if (( x >= d4down[0] && x <= d4down[1] ) && (y >= d4down[2] && y <= d4down[3])){ |
emperord | 2:37a61db8b04b | 2258 | d4count = d4count - touchsensativity; |
emperord | 2:37a61db8b04b | 2259 | } |
emperord | 2:37a61db8b04b | 2260 | |
emperord | 2:37a61db8b04b | 2261 | //Min |
emperord | 2:37a61db8b04b | 2262 | if (( x >= d5up[0] && x <= d5up[1] ) && (y >= d5up[2] && y <= d5up[3])){ |
emperord | 2:37a61db8b04b | 2263 | d5count = d5count + touchsensativity; |
emperord | 2:37a61db8b04b | 2264 | } |
emperord | 2:37a61db8b04b | 2265 | if (( x >= d5down[0] && x <= d5down[1] ) && (y >= d5down[2] && y <= d5down[3])){ |
emperord | 2:37a61db8b04b | 2266 | d5count = d5count - touchsensativity; |
emperord | 2:37a61db8b04b | 2267 | } |
emperord | 2:37a61db8b04b | 2268 | |
emperord | 2:37a61db8b04b | 2269 | //Interval |
emperord | 2:37a61db8b04b | 2270 | if (( x >= d6up[0] && x <= d6up[1] ) && (y >= d6up[2] && y <= d6up[3])){ |
emperord | 2:37a61db8b04b | 2271 | d6count = d6count + touchsensativity; |
emperord | 2:37a61db8b04b | 2272 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 2273 | EE_WriteVariable(VirtAddVarTab[8], (uint16_t)d6count); |
emperord | 2:37a61db8b04b | 2274 | } |
emperord | 2:37a61db8b04b | 2275 | if (( x >= d6down[0] && x <= d6down[1] ) && (y >= d6down[2] && y <= d6down[3])){ |
emperord | 2:37a61db8b04b | 2276 | d6count = d6count - touchsensativity; |
emperord | 2:37a61db8b04b | 2277 | Thread::wait(2); |
emperord | 2:37a61db8b04b | 2278 | EE_WriteVariable(VirtAddVarTab[8], (uint16_t)d6count); |
emperord | 2:37a61db8b04b | 2279 | } |
emperord | 2:37a61db8b04b | 2280 | |
emperord | 2:37a61db8b04b | 2281 | |
emperord | 2:37a61db8b04b | 2282 | /* sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y); |
emperord | 2:37a61db8b04b | 2283 | lcd.DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 2284 | } |
emperord | 2:37a61db8b04b | 2285 | lcd.DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE); |
emperord | 2:37a61db8b04b | 2286 | } else { |
emperord | 2:37a61db8b04b | 2287 | if (!cleared) { |
emperord | 2:37a61db8b04b | 2288 | lcd.Clear(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2289 | /* sprintf((char*)text, "Touches: 0"); |
emperord | 2:37a61db8b04b | 2290 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); */ |
emperord | 2:37a61db8b04b | 2291 | cleared = 1; |
emperord | 2:37a61db8b04b | 2292 | } |
emperord | 2:37a61db8b04b | 2293 | } |
emperord | 2:37a61db8b04b | 2294 | |
emperord | 2:37a61db8b04b | 2295 | } |
emperord | 2:37a61db8b04b | 2296 | } |
emperord | 2:37a61db8b04b | 2297 | |
emperord | 2:37a61db8b04b | 2298 | |
emperord | 2:37a61db8b04b | 2299 | |
emperord | 2:37a61db8b04b | 2300 | void screencycle() { |
emperord | 2:37a61db8b04b | 2301 | if (screenstate == 1) {screen();} |
emperord | 2:37a61db8b04b | 2302 | if (screenstate == 0) {screen2();} |
emperord | 2:37a61db8b04b | 2303 | if (screenstate == 2) {screen3();} |
emperord | 2:37a61db8b04b | 2304 | } |
emperord | 2:37a61db8b04b | 2305 | ///////////// |
emperord | 2:37a61db8b04b | 2306 | |
emperord | 2:37a61db8b04b | 2307 | int main() |
emperord | 2:37a61db8b04b | 2308 | { |
emperord | 2:37a61db8b04b | 2309 | i2c.frequency(100000); |
emperord | 2:37a61db8b04b | 2310 | set_ch(1); |
emperord | 2:37a61db8b04b | 2311 | pc.baud(9600); |
emperord | 2:37a61db8b04b | 2312 | LED515.write(0.0); |
emperord | 2:37a61db8b04b | 2313 | LED480.write(0.0); |
emperord | 2:37a61db8b04b | 2314 | /* sd.mount(); |
emperord | 2:37a61db8b04b | 2315 | FILE *fp = fopen("/sd/Readings.txt", "w"); |
emperord | 2:37a61db8b04b | 2316 | if (fp == NULL) |
emperord | 2:37a61db8b04b | 2317 | { |
emperord | 2:37a61db8b04b | 2318 | fprintf(stderr, "Open error for writing!!\r\n"); |
emperord | 2:37a61db8b04b | 2319 | while (true) {} |
emperord | 2:37a61db8b04b | 2320 | } |
emperord | 2:37a61db8b04b | 2321 | fprintf(fp, "Hello!\n"); |
emperord | 2:37a61db8b04b | 2322 | fprintf(fp, "Example of writing and reading of text file.\n"); |
emperord | 2:37a61db8b04b | 2323 | fclose(fp); */ |
emperord | 2:37a61db8b04b | 2324 | //Setup LED515 |
emperord | 2:37a61db8b04b | 2325 | //LED515.period(-1.0f); // 4 second period |
emperord | 2:37a61db8b04b | 2326 | //LED515.write(0); // 50% duty cycle, relative to period |
emperord | 2:37a61db8b04b | 2327 | HAL_FLASH_Unlock(); |
emperord | 2:37a61db8b04b | 2328 | EE_Init(); |
emperord | 2:37a61db8b04b | 2329 | //pump1 |
emperord | 2:37a61db8b04b | 2330 | EE_ReadVariable(VirtAddVarTab[0], &VarDataTab[0]); |
emperord | 2:37a61db8b04b | 2331 | p1count = (double)VarDataTab[0]; |
emperord | 2:37a61db8b04b | 2332 | //pump2 |
emperord | 2:37a61db8b04b | 2333 | EE_ReadVariable(VirtAddVarTab[1], &VarDataTab[1]); |
emperord | 2:37a61db8b04b | 2334 | p2count = (double)VarDataTab[1]; |
emperord | 2:37a61db8b04b | 2335 | //pump3 |
emperord | 2:37a61db8b04b | 2336 | EE_ReadVariable(VirtAddVarTab[2], &VarDataTab[2]); |
emperord | 2:37a61db8b04b | 2337 | p3count = (double)VarDataTab[2]; |
emperord | 2:37a61db8b04b | 2338 | //pump4 |
emperord | 2:37a61db8b04b | 2339 | EE_ReadVariable(VirtAddVarTab[3], &VarDataTab[3]); |
emperord | 2:37a61db8b04b | 2340 | p4count = (double)VarDataTab[3]; |
emperord | 2:37a61db8b04b | 2341 | //Sole5 |
emperord | 2:37a61db8b04b | 2342 | EE_ReadVariable(VirtAddVarTab[4], &VarDataTab[4]); |
emperord | 2:37a61db8b04b | 2343 | p5count = (double)VarDataTab[4]; |
emperord | 2:37a61db8b04b | 2344 | //Pump6 |
emperord | 2:37a61db8b04b | 2345 | EE_ReadVariable(VirtAddVarTab[5], &VarDataTab[5]); |
emperord | 2:37a61db8b04b | 2346 | p6count = (double)VarDataTab[5]; |
emperord | 2:37a61db8b04b | 2347 | //Pump7 |
emperord | 2:37a61db8b04b | 2348 | EE_ReadVariable(VirtAddVarTab[6], &VarDataTab[6]); |
emperord | 2:37a61db8b04b | 2349 | p7count = (double)VarDataTab[6]; |
emperord | 2:37a61db8b04b | 2350 | //Screen |
emperord | 2:37a61db8b04b | 2351 | EE_ReadVariable(VirtAddVarTab[7], &VarDataTab[7]); |
emperord | 2:37a61db8b04b | 2352 | screenstate = (int)VarDataTab[7]; |
emperord | 2:37a61db8b04b | 2353 | //Interval |
emperord | 2:37a61db8b04b | 2354 | EE_ReadVariable(VirtAddVarTab[8], &VarDataTab[8]); |
emperord | 2:37a61db8b04b | 2355 | d6count = (int)VarDataTab[8]; |
emperord | 2:37a61db8b04b | 2356 | |
emperord | 2:37a61db8b04b | 2357 | //Draw WolfMan |
emperord | 2:37a61db8b04b | 2358 | /* lcd.Clear(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 2359 | lcd.SetTextColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2360 | lcd.SetBackColor(LCD_COLOR_RED); |
emperord | 2:37a61db8b04b | 2361 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)"WolfMan", RIGHT_MODE); |
emperord | 2:37a61db8b04b | 2362 | lcd.SetTextColor(LCD_COLOR_LIGHTBLUE);*/ |
emperord | 2:37a61db8b04b | 2363 | lcd.Clear(LCD_COLOR_WHITE); |
emperord | 2:37a61db8b04b | 2364 | lcd.SetBackColor(LCD_COLOR_WHITE); |
emperord | 2:37a61db8b04b | 2365 | lcd.DrawBitmap(150,25,(uint8_t *)hfl); |
emperord | 2:37a61db8b04b | 2366 | |
emperord | 2:37a61db8b04b | 2367 | //motors[1]->reset_device(); |
emperord | 2:37a61db8b04b | 2368 | wait(2); |
emperord | 2:37a61db8b04b | 2369 | |
emperord | 2:37a61db8b04b | 2370 | FATFS_LinkDriver(&SD_Driver, SDPath); |
emperord | 2:37a61db8b04b | 2371 | ress = f_mount(&SDFatFs, (TCHAR const*)SDPath, 0); |
emperord | 2:37a61db8b04b | 2372 | Thread::wait(200); |
emperord | 2:37a61db8b04b | 2373 | if(ress!= FR_OK){ pc.printf("Failed to mount SD\n"); } |
emperord | 2:37a61db8b04b | 2374 | |
emperord | 2:37a61db8b04b | 2375 | saveit(); |
emperord | 2:37a61db8b04b | 2376 | ts.Init(lcd.GetXSize(), lcd.GetYSize()); |
emperord | 2:37a61db8b04b | 2377 | lcd.SetFont(&Font12); |
emperord | 2:37a61db8b04b | 2378 | lcd.SetBackColor(LCD_COLOR_BLACK); |
emperord | 2:37a61db8b04b | 2379 | lcd.SetTextColor(LCD_COLOR_WHITE); |
emperord | 2:37a61db8b04b | 2380 | thread.start(screencycle); |
emperord | 2:37a61db8b04b | 2381 | sprintf((char*)cyclestep, ""); |
emperord | 2:37a61db8b04b | 2382 | //reprime(); |
emperord | 2:37a61db8b04b | 2383 | LED515.period(1.0/10000); |
emperord | 2:37a61db8b04b | 2384 | LED480.period(1.0/10000); |
emperord | 2:37a61db8b04b | 2385 | thread3.start(takereading); |
emperord | 2:37a61db8b04b | 2386 | |
emperord | 2:37a61db8b04b | 2387 | |
emperord | 2:37a61db8b04b | 2388 | } |
emperord | 2:37a61db8b04b | 2389 |