Condensation Monitor Measure the current environment condition at outside and inside and make caution or warnings related to condensation. Support UART over BLE. It works with nRF Toolbox. 結露モニタ 屋内外の環境情報を計測し、結露に関する警告あるいは注意を出力します。 nRF Toolboxと一緒に動作し、UART機能でBLE経由でメッセージを出力します。 ドキュメント https://developer.mbed.org/users/takafuminaka/notebook/information-about-my-condensation-monitor-for-mbed/
Dependencies: AQM0802 BME280 HDC1000 VaporCondition mbed BLE_API nRF51822 BLE_Condensation_Monitor
Dependents: BLE_Condensation_Monitor
Fork of Condensation_Monitor by
main.cpp@9:75b78697edc6, 2015-07-20 (annotated)
- Committer:
- takafuminaka
- Date:
- Mon Jul 20 10:42:49 2015 +0000
- Revision:
- 9:75b78697edc6
- Parent:
- 8:f2b32f6b161c
Added header comment in main.cpp
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takafuminaka | 9:75b78697edc6 | 1 | // BLE Condensation Monitor |
takafuminaka | 9:75b78697edc6 | 2 | // https://developer.mbed.org/users/takafuminaka/code/BLE_Condensation_Monitor/ |
takafuminaka | 9:75b78697edc6 | 3 | // T.Naka |
takafuminaka | 9:75b78697edc6 | 4 | |
yasuyuki | 0:6434ef883399 | 5 | #include "mbed.h" |
yasuyuki | 0:6434ef883399 | 6 | #include "HDC1000.h" |
takafuminaka | 1:1cf4309871b7 | 7 | #include "BME280.h" |
takafuminaka | 4:3075954b341c | 8 | #include "AQM0802.h" |
takafuminaka | 4:3075954b341c | 9 | |
takafuminaka | 1:1cf4309871b7 | 10 | #include "VaporCondition.h" |
takafuminaka | 1:1cf4309871b7 | 11 | |
takafuminaka | 1:1cf4309871b7 | 12 | #define NEED_CONSOLE_OUTPUT 1 |
takafuminaka | 5:06d988a47721 | 13 | #define NEED_BLE_CONSOLE 1 |
takafuminaka | 4:3075954b341c | 14 | #define NEED_LCD_OUTPUT 1 |
takafuminaka | 1:1cf4309871b7 | 15 | |
takafuminaka | 7:7cecec859fe1 | 16 | #define TYPE_HDC1000 1 |
takafuminaka | 7:7cecec859fe1 | 17 | #define TYPE_BME280 2 |
takafuminaka | 7:7cecec859fe1 | 18 | |
takafuminaka | 7:7cecec859fe1 | 19 | // #define INSIDE_SENSOR TYPE_HDC1000 |
takafuminaka | 7:7cecec859fe1 | 20 | #define INSIDE_SENSOR TYPE_BME280 |
takafuminaka | 7:7cecec859fe1 | 21 | |
takafuminaka | 1:1cf4309871b7 | 22 | #if NEED_CONSOLE_OUTPUT |
takafuminaka | 1:1cf4309871b7 | 23 | Serial pc(USBTX, USBRX); |
takafuminaka | 1:1cf4309871b7 | 24 | #define PC(...) { pc.printf(__VA_ARGS__); } |
takafuminaka | 1:1cf4309871b7 | 25 | #else |
takafuminaka | 1:1cf4309871b7 | 26 | #define PC(...) /* nothing */ |
takafuminaka | 1:1cf4309871b7 | 27 | #endif /* #if NEED_CONSOLE_OUTPUT */ |
takafuminaka | 1:1cf4309871b7 | 28 | |
takafuminaka | 5:06d988a47721 | 29 | #if NEED_BLE_CONSOLE |
takafuminaka | 5:06d988a47721 | 30 | #include "BLEDevice.h" |
takafuminaka | 5:06d988a47721 | 31 | #include "UARTService.h" |
takafuminaka | 5:06d988a47721 | 32 | #define BLEC(...) { char __blecstr[32]; sprintf(__blecstr,__VA_ARGS__); if (uart) uart->write(__blecstr, strlen(__blecstr)); } |
takafuminaka | 5:06d988a47721 | 33 | #else |
takafuminaka | 5:06d988a47721 | 34 | #define BLEC(...) /* nothing */ |
takafuminaka | 5:06d988a47721 | 35 | #endif /* #if NEED_BLE_CONSOLE */ |
yasuyuki | 0:6434ef883399 | 36 | |
yasuyuki | 0:6434ef883399 | 37 | #if defined(TARGET_LPC1768) |
takafuminaka | 6:3c2404870d39 | 38 | I2C i2c(p28, p27); |
takafuminaka | 6:3c2404870d39 | 39 | // BME280 sensor(p28, p27, 0x76 << 1); |
takafuminaka | 1:1cf4309871b7 | 40 | #else |
takafuminaka | 6:3c2404870d39 | 41 | I2C i2c(I2C_SDA0, I2C_SCL0); |
takafuminaka | 6:3c2404870d39 | 42 | // BME280 sensor(I2C_SDA0, I2C_SCL0, 0x76 << 1); |
yasuyuki | 0:6434ef883399 | 43 | #endif |
yasuyuki | 0:6434ef883399 | 44 | |
takafuminaka | 7:7cecec859fe1 | 45 | BME280 sensor_out(I2C_SDA0, I2C_SCL0, 0x76 << 1); |
takafuminaka | 7:7cecec859fe1 | 46 | |
takafuminaka | 7:7cecec859fe1 | 47 | #if INSIDE_SENSOR == TYPE_HDC1000 |
takafuminaka | 7:7cecec859fe1 | 48 | HDC1000 sensor_in(i2c); |
takafuminaka | 7:7cecec859fe1 | 49 | #elif INSIDE_SENSOR == TYPE_BME280 |
takafuminaka | 7:7cecec859fe1 | 50 | BME280 sensor_in(I2C_SDA0, I2C_SCL0, 0x77 << 1); |
takafuminaka | 7:7cecec859fe1 | 51 | #endif |
takafuminaka | 7:7cecec859fe1 | 52 | |
takafuminaka | 4:3075954b341c | 53 | #if NEED_LCD_OUTPUT |
takafuminaka | 6:3c2404870d39 | 54 | AQM0802 lcd(i2c); |
takafuminaka | 4:3075954b341c | 55 | #endif |
yasuyuki | 0:6434ef883399 | 56 | |
takafuminaka | 1:1cf4309871b7 | 57 | DigitalOut led1(LED1); |
takafuminaka | 1:1cf4309871b7 | 58 | DigitalOut led2(LED2); |
takafuminaka | 1:1cf4309871b7 | 59 | |
takafuminaka | 5:06d988a47721 | 60 | #if NEED_BLE_CONSOLE |
takafuminaka | 5:06d988a47721 | 61 | BLEDevice ble; |
takafuminaka | 5:06d988a47721 | 62 | UARTService *uart; |
takafuminaka | 5:06d988a47721 | 63 | |
takafuminaka | 5:06d988a47721 | 64 | void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) |
takafuminaka | 5:06d988a47721 | 65 | { |
takafuminaka | 5:06d988a47721 | 66 | PC("Disconnected!\n\r"); |
takafuminaka | 5:06d988a47721 | 67 | PC("Restarting the advertising process\n\r"); |
takafuminaka | 5:06d988a47721 | 68 | ble.startAdvertising(); |
takafuminaka | 5:06d988a47721 | 69 | } |
takafuminaka | 5:06d988a47721 | 70 | |
takafuminaka | 5:06d988a47721 | 71 | #endif /* #if NEED_BLE_CONSOLE */ |
takafuminaka | 4:3075954b341c | 72 | |
takafuminaka | 6:3c2404870d39 | 73 | int main() |
takafuminaka | 6:3c2404870d39 | 74 | { |
takafuminaka | 4:3075954b341c | 75 | float Tdp_o =0.; |
takafuminaka | 4:3075954b341c | 76 | float Tdp_i =0.; |
takafuminaka | 4:3075954b341c | 77 | int cautions = 0; |
takafuminaka | 4:3075954b341c | 78 | int warnings = 0; |
takafuminaka | 1:1cf4309871b7 | 79 | int warn_wid = 20; |
takafuminaka | 7:7cecec859fe1 | 80 | char msg1[10],msg2[10]; |
takafuminaka | 4:3075954b341c | 81 | int mode=0; |
takafuminaka | 4:3075954b341c | 82 | int skip=0; |
takafuminaka | 7:7cecec859fe1 | 83 | char msg[4][2][10]; |
takafuminaka | 5:06d988a47721 | 84 | char bmsg[4][20]; |
takafuminaka | 4:3075954b341c | 85 | int skipf[4]; |
takafuminaka | 6:3c2404870d39 | 86 | |
takafuminaka | 4:3075954b341c | 87 | float Tcur; |
takafuminaka | 4:3075954b341c | 88 | float Tdp; |
takafuminaka | 4:3075954b341c | 89 | char *sTcur; |
takafuminaka | 4:3075954b341c | 90 | char *sWin; |
takafuminaka | 4:3075954b341c | 91 | char *ssTcur; |
takafuminaka | 4:3075954b341c | 92 | char *ssWin; |
takafuminaka | 5:06d988a47721 | 93 | char *bsTcur; |
takafuminaka | 5:06d988a47721 | 94 | char *bsWin; |
takafuminaka | 5:06d988a47721 | 95 | |
takafuminaka | 6:3c2404870d39 | 96 | int skipped = 0; |
takafuminaka | 6:3c2404870d39 | 97 | |
takafuminaka | 1:1cf4309871b7 | 98 | VaporCondition Inside; |
takafuminaka | 1:1cf4309871b7 | 99 | VaporCondition Outside; |
takafuminaka | 1:1cf4309871b7 | 100 | |
takafuminaka | 6:3c2404870d39 | 101 | // LED Check |
takafuminaka | 1:1cf4309871b7 | 102 | led1 = 1; |
takafuminaka | 1:1cf4309871b7 | 103 | led2 = 1; |
takafuminaka | 4:3075954b341c | 104 | wait(3); |
takafuminaka | 1:1cf4309871b7 | 105 | |
takafuminaka | 1:1cf4309871b7 | 106 | led1 = 0; |
takafuminaka | 1:1cf4309871b7 | 107 | led2 = 0; |
takafuminaka | 6:3c2404870d39 | 108 | |
takafuminaka | 7:7cecec859fe1 | 109 | i2c.frequency(100000); |
takafuminaka | 6:3c2404870d39 | 110 | |
takafuminaka | 5:06d988a47721 | 111 | #if NEED_BLE_CONSOLE |
takafuminaka | 6:3c2404870d39 | 112 | // Setup BLE // |
takafuminaka | 5:06d988a47721 | 113 | ble.init(); |
takafuminaka | 5:06d988a47721 | 114 | ble.onDisconnection(disconnectionCallback); |
takafuminaka | 6:3c2404870d39 | 115 | |
takafuminaka | 5:06d988a47721 | 116 | uart = new UARTService(ble); |
takafuminaka | 5:06d988a47721 | 117 | |
takafuminaka | 5:06d988a47721 | 118 | /* setup advertising */ |
takafuminaka | 5:06d988a47721 | 119 | ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); |
takafuminaka | 5:06d988a47721 | 120 | ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
takafuminaka | 5:06d988a47721 | 121 | ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, |
takafuminaka | 5:06d988a47721 | 122 | (const uint8_t *)"BLE Condensation Monitor", sizeof("BLE Condensation Monitor") - 1); |
takafuminaka | 5:06d988a47721 | 123 | ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, |
takafuminaka | 5:06d988a47721 | 124 | (const uint8_t *)UARTServiceUUID_reversed, sizeof(UARTServiceUUID_reversed)); |
takafuminaka | 5:06d988a47721 | 125 | |
takafuminaka | 5:06d988a47721 | 126 | ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ |
takafuminaka | 5:06d988a47721 | 127 | ble.startAdvertising(); |
takafuminaka | 5:06d988a47721 | 128 | #endif /* #if NEED_BLE_CONSOLE */ |
takafuminaka | 6:3c2404870d39 | 129 | |
yasuyuki | 0:6434ef883399 | 130 | while(1) { |
takafuminaka | 6:3c2404870d39 | 131 | if ( skipped == 0 ) { |
takafuminaka | 6:3c2404870d39 | 132 | // Get data |
takafuminaka | 6:3c2404870d39 | 133 | |
takafuminaka | 7:7cecec859fe1 | 134 | Outside.t = sensor_out.getTemperature(); |
takafuminaka | 7:7cecec859fe1 | 135 | Outside.h = sensor_out.getHumidity(); |
takafuminaka | 6:3c2404870d39 | 136 | |
takafuminaka | 7:7cecec859fe1 | 137 | Outside.p = sensor_out.getPressure(); |
yasuyuki | 0:6434ef883399 | 138 | |
takafuminaka | 7:7cecec859fe1 | 139 | #if INSIDE_SENSOR == TYPE_HDC1000 |
takafuminaka | 7:7cecec859fe1 | 140 | Inside.p = sensor_out.getPressure(); // Usually Pressures are same between inside and outside. |
takafuminaka | 7:7cecec859fe1 | 141 | Inside.t = float(sensor_in.temperature())/0x10000*165-40; |
takafuminaka | 7:7cecec859fe1 | 142 | Inside.h = float(sensor_in.humidity())/0x10000*100; |
takafuminaka | 7:7cecec859fe1 | 143 | PC("In: %2.2f degC, %2.2f %%\r\n", Inside.t, Inside.h); |
takafuminaka | 7:7cecec859fe1 | 144 | #elif INSIDE_SENSOR == TYPE_BME280 |
takafuminaka | 7:7cecec859fe1 | 145 | Inside.t = sensor_in.getTemperature(); |
takafuminaka | 7:7cecec859fe1 | 146 | Inside.h = sensor_in.getHumidity(); |
takafuminaka | 7:7cecec859fe1 | 147 | Inside.p = sensor_in.getPressure(); |
takafuminaka | 7:7cecec859fe1 | 148 | PC("In: %2.2f degC, %2.2f %%, %04.2f hPa\r\n", Inside.t, Inside.h, Inside.p); |
takafuminaka | 7:7cecec859fe1 | 149 | #endif |
takafuminaka | 6:3c2404870d39 | 150 | |
takafuminaka | 7:7cecec859fe1 | 151 | PC("Out: %2.2f degC, %2.2f %%, %04.2f hPa\r\n", Outside.t, Outside.h, Outside.p); |
takafuminaka | 1:1cf4309871b7 | 152 | |
takafuminaka | 6:3c2404870d39 | 153 | PC("Humidity Ratio [g/kg] : In %2.2f Out %2.2f \r\n", Inside.Rh(), Outside.Rh()); |
takafuminaka | 6:3c2404870d39 | 154 | Tdp_o = Outside.Tdp(); |
takafuminaka | 6:3c2404870d39 | 155 | Tdp_i = Inside.Tdp(); |
takafuminaka | 8:f2b32f6b161c | 156 | PC("Due Point Temperature [degC] : In %2.2f Out %2.2f \r\n", Tdp_i, Tdp_o); |
yasuyuki | 0:6434ef883399 | 157 | |
takafuminaka | 6:3c2404870d39 | 158 | // print catuions and warnings // |
takafuminaka | 6:3c2404870d39 | 159 | cautions = 0; |
takafuminaka | 6:3c2404870d39 | 160 | warnings = 0; |
takafuminaka | 3:8f886f74f9bb | 161 | |
takafuminaka | 6:3c2404870d39 | 162 | for(int ii=0; ii<4; ii++) { |
takafuminaka | 6:3c2404870d39 | 163 | if ( (ii % 2) == 1 ) { |
takafuminaka | 6:3c2404870d39 | 164 | Tcur = Outside.t; // 1 and 3 |
takafuminaka | 6:3c2404870d39 | 165 | sTcur = "Outside"; |
takafuminaka | 6:3c2404870d39 | 166 | ssTcur = "Out"; |
takafuminaka | 6:3c2404870d39 | 167 | bsTcur = "Out"; |
takafuminaka | 6:3c2404870d39 | 168 | } else { |
takafuminaka | 6:3c2404870d39 | 169 | Tcur = Inside.t; // 0 and 2 |
takafuminaka | 6:3c2404870d39 | 170 | sTcur = "Inside"; |
takafuminaka | 6:3c2404870d39 | 171 | ssTcur = "In"; |
takafuminaka | 6:3c2404870d39 | 172 | bsTcur = "In"; |
takafuminaka | 6:3c2404870d39 | 173 | } |
takafuminaka | 4:3075954b341c | 174 | |
takafuminaka | 6:3c2404870d39 | 175 | if ( ii / 2 ) { |
takafuminaka | 6:3c2404870d39 | 176 | sWin = " Window"; // 2 and 3 |
takafuminaka | 6:3c2404870d39 | 177 | ssWin = "@Win"; |
takafuminaka | 6:3c2404870d39 | 178 | bsWin = "Wind."; |
takafuminaka | 6:3c2404870d39 | 179 | } else { |
takafuminaka | 6:3c2404870d39 | 180 | sWin = ""; // 0 and 1 |
takafuminaka | 6:3c2404870d39 | 181 | ssWin = ""; |
takafuminaka | 6:3c2404870d39 | 182 | bsWin = ""; |
takafuminaka | 6:3c2404870d39 | 183 | } |
takafuminaka | 4:3075954b341c | 184 | |
takafuminaka | 6:3c2404870d39 | 185 | if ( ii / 2 == ii %2 ) { |
takafuminaka | 6:3c2404870d39 | 186 | Tdp = Tdp_i; // 0 and 3 |
takafuminaka | 6:3c2404870d39 | 187 | } else { |
takafuminaka | 6:3c2404870d39 | 188 | Tdp = Tdp_o; // 1 and 1 |
takafuminaka | 6:3c2404870d39 | 189 | } |
takafuminaka | 6:3c2404870d39 | 190 | |
takafuminaka | 6:3c2404870d39 | 191 | if ( Tdp >= Tcur - warn_wid ) { |
takafuminaka | 6:3c2404870d39 | 192 | skipf[ii] = 0; |
takafuminaka | 6:3c2404870d39 | 193 | if ( Tdp >= Tcur ) { |
takafuminaka | 7:7cecec859fe1 | 194 | PC("Condensation at %s %s\r\n",sTcur,sWin); |
takafuminaka | 6:3c2404870d39 | 195 | sprintf(msg[ii][0],"Condns!!"); |
takafuminaka | 6:3c2404870d39 | 196 | sprintf(msg[ii][1],"%s%s",ssTcur,ssWin); |
takafuminaka | 8:f2b32f6b161c | 197 | sprintf(bmsg[ii],"Cond. at %s%s",bsTcur,bsWin); |
takafuminaka | 6:3c2404870d39 | 198 | cautions ++; |
takafuminaka | 6:3c2404870d39 | 199 | } else { |
takafuminaka | 6:3c2404870d39 | 200 | PC("%4.1f degC to Condensation at %s%s\r\n", Tcur - Tdp, sTcur, sWin); |
takafuminaka | 6:3c2404870d39 | 201 | sprintf(msg[ii][0],"Cto%4.1fC",Tcur-Tdp); |
takafuminaka | 6:3c2404870d39 | 202 | sprintf(msg[ii][1],"%s%s\0",ssTcur,ssWin); |
takafuminaka | 6:3c2404870d39 | 203 | sprintf(bmsg[ii],"%4.1ftoC.at%s%s",Tcur - Tdp, bsTcur, bsWin); |
takafuminaka | 6:3c2404870d39 | 204 | warnings ++; |
takafuminaka | 6:3c2404870d39 | 205 | } |
takafuminaka | 6:3c2404870d39 | 206 | } else { |
takafuminaka | 6:3c2404870d39 | 207 | skipf[ii] = 1; |
takafuminaka | 6:3c2404870d39 | 208 | } |
takafuminaka | 4:3075954b341c | 209 | } |
takafuminaka | 4:3075954b341c | 210 | |
takafuminaka | 6:3c2404870d39 | 211 | PC("\r\n"); |
takafuminaka | 6:3c2404870d39 | 212 | |
takafuminaka | 6:3c2404870d39 | 213 | if ( cautions > 0 ) { |
takafuminaka | 6:3c2404870d39 | 214 | led2 = 1; |
takafuminaka | 4:3075954b341c | 215 | } else { |
takafuminaka | 6:3c2404870d39 | 216 | led2 = 0; |
takafuminaka | 4:3075954b341c | 217 | } |
takafuminaka | 4:3075954b341c | 218 | |
takafuminaka | 6:3c2404870d39 | 219 | if ( warnings > 0 ) { |
takafuminaka | 6:3c2404870d39 | 220 | led1 = 1; |
takafuminaka | 4:3075954b341c | 221 | } else { |
takafuminaka | 6:3c2404870d39 | 222 | led1 = 0; |
takafuminaka | 4:3075954b341c | 223 | } |
takafuminaka | 4:3075954b341c | 224 | |
takafuminaka | 1:1cf4309871b7 | 225 | } |
takafuminaka | 4:3075954b341c | 226 | // LCD print |
takafuminaka | 4:3075954b341c | 227 | switch(mode) { |
takafuminaka | 4:3075954b341c | 228 | case (0): |
takafuminaka | 4:3075954b341c | 229 | skip = 1; |
takafuminaka | 4:3075954b341c | 230 | break; |
takafuminaka | 6:3c2404870d39 | 231 | |
takafuminaka | 4:3075954b341c | 232 | case (1): |
takafuminaka | 4:3075954b341c | 233 | sprintf(msg1,"Ti %4.1fC",Inside.t); |
takafuminaka | 4:3075954b341c | 234 | sprintf(msg2,"To %4.1fC",Outside.t); |
takafuminaka | 5:06d988a47721 | 235 | BLEC("Temp.In%4.1f Out%4.1f\n",Inside.t, Outside.t); |
takafuminaka | 4:3075954b341c | 236 | break; |
takafuminaka | 6:3c2404870d39 | 237 | |
takafuminaka | 4:3075954b341c | 238 | case (2): |
takafuminaka | 4:3075954b341c | 239 | sprintf(msg1,"Hi %4.1f%%",Inside.h); |
takafuminaka | 4:3075954b341c | 240 | sprintf(msg2,"Ho %4.1f%%",Outside.h); |
takafuminaka | 5:06d988a47721 | 241 | BLEC("Hum.In%2.0f%% Out%2.0f%%\n",Inside.h, Outside.h); |
takafuminaka | 4:3075954b341c | 242 | break; |
takafuminaka | 6:3c2404870d39 | 243 | |
takafuminaka | 4:3075954b341c | 244 | case (3): |
takafuminaka | 8:f2b32f6b161c | 245 | sprintf(msg1,"Po%6.1f",Outside.p); |
takafuminaka | 4:3075954b341c | 246 | sprintf(msg2," [hPa]"); |
takafuminaka | 8:f2b32f6b161c | 247 | BLEC("Prs.Out%6.1fhPa\n",Outside.p); |
takafuminaka | 4:3075954b341c | 248 | break; |
takafuminaka | 6:3c2404870d39 | 249 | |
takafuminaka | 4:3075954b341c | 250 | case (4): |
takafuminaka | 7:7cecec859fe1 | 251 | #if INSIDE_SENSOR == TYPE_BME280 |
takafuminaka | 8:f2b32f6b161c | 252 | sprintf(msg1,"Pi%6.1f",Inside.p); |
takafuminaka | 7:7cecec859fe1 | 253 | sprintf(msg2," [hPa]"); |
takafuminaka | 8:f2b32f6b161c | 254 | BLEC("Prs.In %6.1fhPa\n",Inside.p); |
takafuminaka | 7:7cecec859fe1 | 255 | #elif INSIDE_SENSOR == TYPE_HDC1000 |
takafuminaka | 7:7cecec859fe1 | 256 | skip = 1; |
takafuminaka | 7:7cecec859fe1 | 257 | #endif |
takafuminaka | 7:7cecec859fe1 | 258 | break; |
takafuminaka | 7:7cecec859fe1 | 259 | |
takafuminaka | 7:7cecec859fe1 | 260 | case (5): |
takafuminaka | 4:3075954b341c | 261 | sprintf(msg1,"Dpi%4.1fC",Tdp_i); |
takafuminaka | 4:3075954b341c | 262 | sprintf(msg2,"Dpo%4.1fC",Tdp_o); |
takafuminaka | 5:06d988a47721 | 263 | BLEC("DP. In%4.1f Out%4.1f\n",Tdp_i, Tdp_o); |
takafuminaka | 4:3075954b341c | 264 | break; |
takafuminaka | 6:3c2404870d39 | 265 | |
takafuminaka | 4:3075954b341c | 266 | case (6): |
takafuminaka | 4:3075954b341c | 267 | case (7): |
takafuminaka | 4:3075954b341c | 268 | case (8): |
takafuminaka | 7:7cecec859fe1 | 269 | case (9): |
takafuminaka | 7:7cecec859fe1 | 270 | int ii = mode - 6; |
takafuminaka | 4:3075954b341c | 271 | skip = skipf[ii]; |
takafuminaka | 4:3075954b341c | 272 | sprintf(msg1,"%8s",msg[ii][0]); |
takafuminaka | 4:3075954b341c | 273 | sprintf(msg2,"%8s",msg[ii][1]); |
takafuminaka | 5:06d988a47721 | 274 | BLEC("%s\n",bmsg[ii]); |
takafuminaka | 4:3075954b341c | 275 | break; |
takafuminaka | 4:3075954b341c | 276 | } |
takafuminaka | 4:3075954b341c | 277 | mode++; |
takafuminaka | 7:7cecec859fe1 | 278 | if ( mode > 9 ) { |
takafuminaka | 6:3c2404870d39 | 279 | mode = 0; |
takafuminaka | 6:3c2404870d39 | 280 | } |
takafuminaka | 6:3c2404870d39 | 281 | |
takafuminaka | 4:3075954b341c | 282 | if ( skip == 0 ) { |
takafuminaka | 4:3075954b341c | 283 | #if NEED_LCD_OUTPUT |
takafuminaka | 4:3075954b341c | 284 | lcd.locate(0,0); |
takafuminaka | 4:3075954b341c | 285 | lcd.print(msg1); |
takafuminaka | 4:3075954b341c | 286 | lcd.locate(0,1); |
takafuminaka | 4:3075954b341c | 287 | lcd.print(msg2); |
takafuminaka | 6:3c2404870d39 | 288 | |
takafuminaka | 4:3075954b341c | 289 | #endif |
takafuminaka | 6:3c2404870d39 | 290 | skipped = 0; |
takafuminaka | 4:3075954b341c | 291 | wait(3); |
takafuminaka | 4:3075954b341c | 292 | } else { |
takafuminaka | 4:3075954b341c | 293 | skip = 0; |
takafuminaka | 6:3c2404870d39 | 294 | skipped = 1; |
takafuminaka | 4:3075954b341c | 295 | } |
yasuyuki | 0:6434ef883399 | 296 | } |
yasuyuki | 0:6434ef883399 | 297 | |
takafuminaka | 4:3075954b341c | 298 | } |