mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-28 04:07:47 +00:00
Merge branch 'mega' of https://github.com/letscontrolit/ESPEasy into feature/p053-add-support-for-pms5003st-pms2003-pms3003
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
.. include:: ../Plugin/_plugin_substitutions_p10x.repl
|
||||
.. _P109_page:
|
||||
|
||||
|P109_typename|
|
||||
==================================================
|
||||
|
||||
|P109_shortinfo|
|
||||
|
||||
Plugin details
|
||||
--------------
|
||||
|
||||
Type: |P109_type|
|
||||
|
||||
Name: |P109_name|
|
||||
|
||||
Status: |P109_status|
|
||||
|
||||
GitHub: |P109_github|_
|
||||
|
||||
Maintainer: |P109_maintainer|
|
||||
|
||||
Used libraries: |P109_usedlibraries|
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
|
||||
|
||||
.. Events
|
||||
.. ~~~~~~
|
||||
|
||||
.. .. include:: P109_events.repl
|
||||
|
||||
|
||||
|
||||
Change log
|
||||
----------
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
...
|
||||
|
||||
|added| 2020-04-25
|
||||
@@ -134,6 +134,7 @@ There are different released versions of ESP Easy:
|
||||
":ref:`P106_page`","|P106_status|","P106"
|
||||
":ref:`P107_page`","|P107_status|","P107"
|
||||
":ref:`P108_page`","|P108_status|","P108"
|
||||
":ref:`P109_page`","|P109_status|","P109"
|
||||
":ref:`P110_page`","|P110_status|","P110"
|
||||
":ref:`P111_page`","|P111_status|","P111"
|
||||
":ref:`P113_page`","|P113_status|","P113"
|
||||
|
||||
@@ -119,3 +119,16 @@
|
||||
.. |P108_maintainer| replace:: TD-er
|
||||
.. |P108_compileinfo| replace:: `.`
|
||||
.. |P108_usedlibraries| replace:: `.`
|
||||
|
||||
.. |P109_name| replace:: :cyan:`ThermoOLED`
|
||||
.. |P109_type| replace:: :cyan:`UV`
|
||||
.. |P109_typename| replace:: :cyan:`Display - ThermoOLED`
|
||||
.. |P109_porttype| replace:: `.`
|
||||
.. |P109_status| replace:: :yellow:`TESTING`
|
||||
.. |P109_github| replace:: P109_ThermoOLED.ino
|
||||
.. _P109_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P109_ThermoOLED.ino
|
||||
.. |P109_usedby| replace:: `.`
|
||||
.. |P109_shortinfo| replace:: `.`
|
||||
.. |P109_maintainer| replace:: TD-er
|
||||
.. |P109_compileinfo| replace:: `.`
|
||||
.. |P109_usedlibraries| replace:: `.`
|
||||
|
||||
@@ -0,0 +1,464 @@
|
||||
#ifndef DIALOG_PLAIN_FONT18_H
|
||||
#define DIALOG_PLAIN_FONT18_H
|
||||
|
||||
// Created by http://oleddisplay.squix.ch/ Consider a donation
|
||||
// In case of problems make sure that you are using the font file with the correct version!
|
||||
const char Dialog_plain_18[] PROGMEM = {
|
||||
0x13, // Width: 19
|
||||
0x16, // Height: 22
|
||||
0x20, // First Char: 32
|
||||
0xE0, // Numbers of Chars: 224
|
||||
|
||||
// Jump Table:
|
||||
0xFF, 0xFF, 0x00, 0x06, // 32:65535
|
||||
0x00, 0x00, 0x0F, 0x07, // 33:0
|
||||
0x00, 0x0F, 0x14, 0x08, // 34:15
|
||||
0x00, 0x23, 0x26, 0x0F, // 35:35
|
||||
0x00, 0x49, 0x1D, 0x0B, // 36:73
|
||||
0x00, 0x66, 0x2F, 0x11, // 37:102
|
||||
0x00, 0x95, 0x27, 0x0D, // 38:149
|
||||
0x00, 0xBC, 0x08, 0x04, // 39:188
|
||||
0x00, 0xC4, 0x12, 0x07, // 40:196
|
||||
0x00, 0xD6, 0x0E, 0x07, // 41:214
|
||||
0x00, 0xE4, 0x17, 0x09, // 42:228
|
||||
0x00, 0xFB, 0x29, 0x0F, // 43:251
|
||||
0x01, 0x24, 0x0C, 0x06, // 44:292
|
||||
0x01, 0x30, 0x11, 0x07, // 45:304
|
||||
0x01, 0x41, 0x0C, 0x06, // 46:321
|
||||
0x01, 0x4D, 0x10, 0x06, // 47:333
|
||||
0x01, 0x5D, 0x1D, 0x0B, // 48:349
|
||||
0x01, 0x7A, 0x1E, 0x0B, // 49:378
|
||||
0x01, 0x98, 0x1B, 0x0B, // 50:408
|
||||
0x01, 0xB3, 0x1D, 0x0B, // 51:435
|
||||
0x01, 0xD0, 0x20, 0x0B, // 52:464
|
||||
0x01, 0xF0, 0x1A, 0x0B, // 53:496
|
||||
0x02, 0x0A, 0x1D, 0x0B, // 54:522
|
||||
0x02, 0x27, 0x19, 0x0B, // 55:551
|
||||
0x02, 0x40, 0x1D, 0x0B, // 56:576
|
||||
0x02, 0x5D, 0x1D, 0x0B, // 57:605
|
||||
0x02, 0x7A, 0x0C, 0x06, // 58:634
|
||||
0x02, 0x86, 0x0C, 0x06, // 59:646
|
||||
0x02, 0x92, 0x27, 0x0F, // 60:658
|
||||
0x02, 0xB9, 0x26, 0x0F, // 61:697
|
||||
0x02, 0xDF, 0x26, 0x0F, // 62:735
|
||||
0x03, 0x05, 0x17, 0x0A, // 63:773
|
||||
0x03, 0x1C, 0x32, 0x12, // 64:796
|
||||
0x03, 0x4E, 0x24, 0x0C, // 65:846
|
||||
0x03, 0x72, 0x20, 0x0C, // 66:882
|
||||
0x03, 0x92, 0x23, 0x0D, // 67:914
|
||||
0x03, 0xB5, 0x26, 0x0E, // 68:949
|
||||
0x03, 0xDB, 0x1E, 0x0B, // 69:987
|
||||
0x03, 0xF9, 0x1C, 0x0A, // 70:1017
|
||||
0x04, 0x15, 0x23, 0x0E, // 71:1045
|
||||
0x04, 0x38, 0x24, 0x0E, // 72:1080
|
||||
0x04, 0x5C, 0x0C, 0x06, // 73:1116
|
||||
0x04, 0x68, 0x0C, 0x06, // 74:1128
|
||||
0x04, 0x74, 0x24, 0x0C, // 75:1140
|
||||
0x04, 0x98, 0x1E, 0x0A, // 76:1176
|
||||
0x04, 0xB6, 0x2A, 0x10, // 77:1206
|
||||
0x04, 0xE0, 0x24, 0x0E, // 78:1248
|
||||
0x05, 0x04, 0x26, 0x0E, // 79:1284
|
||||
0x05, 0x2A, 0x1D, 0x0B, // 80:1322
|
||||
0x05, 0x47, 0x26, 0x0E, // 81:1351
|
||||
0x05, 0x6D, 0x24, 0x0D, // 82:1389
|
||||
0x05, 0x91, 0x1D, 0x0B, // 83:1425
|
||||
0x05, 0xAE, 0x22, 0x0C, // 84:1454
|
||||
0x05, 0xD0, 0x23, 0x0E, // 85:1488
|
||||
0x05, 0xF3, 0x22, 0x0C, // 86:1523
|
||||
0x06, 0x15, 0x34, 0x13, // 87:1557
|
||||
0x06, 0x49, 0x24, 0x0D, // 88:1609
|
||||
0x06, 0x6D, 0x22, 0x0C, // 89:1645
|
||||
0x06, 0x8F, 0x24, 0x0D, // 90:1679
|
||||
0x06, 0xB3, 0x0F, 0x07, // 91:1715
|
||||
0x06, 0xC2, 0x12, 0x06, // 92:1730
|
||||
0x06, 0xD4, 0x12, 0x07, // 93:1748
|
||||
0x06, 0xE6, 0x26, 0x0F, // 94:1766
|
||||
0x07, 0x0C, 0x1B, 0x09, // 95:1804
|
||||
0x07, 0x27, 0x10, 0x09, // 96:1831
|
||||
0x07, 0x37, 0x1B, 0x0A, // 97:1847
|
||||
0x07, 0x52, 0x20, 0x0B, // 98:1874
|
||||
0x07, 0x72, 0x1A, 0x09, // 99:1906
|
||||
0x07, 0x8C, 0x1E, 0x0B, // 100:1932
|
||||
0x07, 0xAA, 0x20, 0x0B, // 101:1962
|
||||
0x07, 0xCA, 0x11, 0x06, // 102:1994
|
||||
0x07, 0xDB, 0x1E, 0x0B, // 103:2011
|
||||
0x07, 0xF9, 0x1E, 0x0B, // 104:2041
|
||||
0x08, 0x17, 0x0C, 0x05, // 105:2071
|
||||
0x08, 0x23, 0x0C, 0x05, // 106:2083
|
||||
0x08, 0x2F, 0x1E, 0x0A, // 107:2095
|
||||
0x08, 0x4D, 0x0C, 0x05, // 108:2125
|
||||
0x08, 0x59, 0x30, 0x11, // 109:2137
|
||||
0x08, 0x89, 0x1E, 0x0B, // 110:2185
|
||||
0x08, 0xA7, 0x20, 0x0B, // 111:2215
|
||||
0x08, 0xC7, 0x20, 0x0B, // 112:2247
|
||||
0x08, 0xE7, 0x1E, 0x0B, // 113:2279
|
||||
0x09, 0x05, 0x17, 0x08, // 114:2309
|
||||
0x09, 0x1C, 0x17, 0x08, // 115:2332
|
||||
0x09, 0x33, 0x15, 0x07, // 116:2355
|
||||
0x09, 0x48, 0x1E, 0x0B, // 117:2376
|
||||
0x09, 0x66, 0x20, 0x0B, // 118:2406
|
||||
0x09, 0x86, 0x2C, 0x10, // 119:2438
|
||||
0x09, 0xB2, 0x21, 0x0B, // 120:2482
|
||||
0x09, 0xD3, 0x20, 0x0B, // 121:2515
|
||||
0x09, 0xF3, 0x1B, 0x09, // 122:2547
|
||||
0x0A, 0x0E, 0x1E, 0x0B, // 123:2574
|
||||
0x0A, 0x2C, 0x0C, 0x06, // 124:2604
|
||||
0x0A, 0x38, 0x1D, 0x0B, // 125:2616
|
||||
0x0A, 0x55, 0x26, 0x0F, // 126:2645
|
||||
0x0A, 0x7B, 0x1E, 0x0B, // 127:2683
|
||||
0x0A, 0x99, 0x1E, 0x0B, // 128:2713
|
||||
0x0A, 0xB7, 0x1E, 0x0B, // 129:2743
|
||||
0x0A, 0xD5, 0x1E, 0x0B, // 130:2773
|
||||
0x0A, 0xF3, 0x1E, 0x0B, // 131:2803
|
||||
0x0B, 0x11, 0x1E, 0x0B, // 132:2833
|
||||
0x0B, 0x2F, 0x1E, 0x0B, // 133:2863
|
||||
0x0B, 0x4D, 0x1E, 0x0B, // 134:2893
|
||||
0x0B, 0x6B, 0x1E, 0x0B, // 135:2923
|
||||
0x0B, 0x89, 0x1E, 0x0B, // 136:2953
|
||||
0x0B, 0xA7, 0x1E, 0x0B, // 137:2983
|
||||
0x0B, 0xC5, 0x1E, 0x0B, // 138:3013
|
||||
0x0B, 0xE3, 0x1E, 0x0B, // 139:3043
|
||||
0x0C, 0x01, 0x1E, 0x0B, // 140:3073
|
||||
0x0C, 0x1F, 0x1E, 0x0B, // 141:3103
|
||||
0x0C, 0x3D, 0x1E, 0x0B, // 142:3133
|
||||
0x0C, 0x5B, 0x1E, 0x0B, // 143:3163
|
||||
0x0C, 0x79, 0x1E, 0x0B, // 144:3193
|
||||
0x0C, 0x97, 0x1E, 0x0B, // 145:3223
|
||||
0x0C, 0xB5, 0x1E, 0x0B, // 146:3253
|
||||
0x0C, 0xD3, 0x1E, 0x0B, // 147:3283
|
||||
0x0C, 0xF1, 0x1E, 0x0B, // 148:3313
|
||||
0x0D, 0x0F, 0x1E, 0x0B, // 149:3343
|
||||
0x0D, 0x2D, 0x1E, 0x0B, // 150:3373
|
||||
0x0D, 0x4B, 0x1E, 0x0B, // 151:3403
|
||||
0x0D, 0x69, 0x1E, 0x0B, // 152:3433
|
||||
0x0D, 0x87, 0x1E, 0x0B, // 153:3463
|
||||
0x0D, 0xA5, 0x1E, 0x0B, // 154:3493
|
||||
0x0D, 0xC3, 0x1E, 0x0B, // 155:3523
|
||||
0x0D, 0xE1, 0x1E, 0x0B, // 156:3553
|
||||
0x0D, 0xFF, 0x1E, 0x0B, // 157:3583
|
||||
0x0E, 0x1D, 0x1E, 0x0B, // 158:3613
|
||||
0x0E, 0x3B, 0x1E, 0x0B, // 159:3643
|
||||
0xFF, 0xFF, 0x00, 0x06, // 160:65535
|
||||
0x0E, 0x59, 0x0F, 0x07, // 161:3673
|
||||
0x0E, 0x68, 0x1D, 0x0B, // 162:3688
|
||||
0x0E, 0x85, 0x1E, 0x0B, // 163:3717
|
||||
0x0E, 0xA3, 0x1D, 0x0B, // 164:3747
|
||||
0x0E, 0xC0, 0x20, 0x0B, // 165:3776
|
||||
0x0E, 0xE0, 0x0C, 0x06, // 166:3808
|
||||
0x0E, 0xEC, 0x17, 0x09, // 167:3820
|
||||
0x0F, 0x03, 0x16, 0x09, // 168:3843
|
||||
0x0F, 0x19, 0x2C, 0x12, // 169:3865
|
||||
0x0F, 0x45, 0x17, 0x08, // 170:3909
|
||||
0x0F, 0x5C, 0x1A, 0x0B, // 171:3932
|
||||
0x0F, 0x76, 0x26, 0x0F, // 172:3958
|
||||
0x0F, 0x9C, 0x11, 0x07, // 173:3996
|
||||
0x0F, 0xAD, 0x2C, 0x12, // 174:4013
|
||||
0x0F, 0xD9, 0x13, 0x09, // 175:4057
|
||||
0x0F, 0xEC, 0x17, 0x09, // 176:4076
|
||||
0x10, 0x03, 0x2A, 0x0F, // 177:4099
|
||||
0x10, 0x2D, 0x11, 0x07, // 178:4141
|
||||
0x10, 0x3E, 0x11, 0x07, // 179:4158
|
||||
0x10, 0x4F, 0x13, 0x09, // 180:4175
|
||||
0x10, 0x62, 0x21, 0x0B, // 181:4194
|
||||
0x10, 0x83, 0x1B, 0x0B, // 182:4227
|
||||
0x10, 0x9E, 0x0B, 0x06, // 183:4254
|
||||
0x10, 0xA9, 0x15, 0x09, // 184:4265
|
||||
0x10, 0xBE, 0x11, 0x07, // 185:4286
|
||||
0x10, 0xCF, 0x17, 0x08, // 186:4303
|
||||
0x10, 0xE6, 0x1D, 0x0B, // 187:4326
|
||||
0x11, 0x03, 0x32, 0x11, // 188:4355
|
||||
0x11, 0x35, 0x30, 0x11, // 189:4405
|
||||
0x11, 0x65, 0x32, 0x11, // 190:4453
|
||||
0x11, 0x97, 0x1B, 0x0A, // 191:4503
|
||||
0x11, 0xB2, 0x24, 0x0C, // 192:4530
|
||||
0x11, 0xD6, 0x24, 0x0C, // 193:4566
|
||||
0x11, 0xFA, 0x24, 0x0C, // 194:4602
|
||||
0x12, 0x1E, 0x24, 0x0C, // 195:4638
|
||||
0x12, 0x42, 0x24, 0x0C, // 196:4674
|
||||
0x12, 0x66, 0x24, 0x0C, // 197:4710
|
||||
0x12, 0x8A, 0x30, 0x11, // 198:4746
|
||||
0x12, 0xBA, 0x23, 0x0D, // 199:4794
|
||||
0x12, 0xDD, 0x1E, 0x0B, // 200:4829
|
||||
0x12, 0xFB, 0x1E, 0x0B, // 201:4859
|
||||
0x13, 0x19, 0x1E, 0x0B, // 202:4889
|
||||
0x13, 0x37, 0x1E, 0x0B, // 203:4919
|
||||
0x13, 0x55, 0x0C, 0x06, // 204:4949
|
||||
0x13, 0x61, 0x0C, 0x06, // 205:4961
|
||||
0x13, 0x6D, 0x0D, 0x06, // 206:4973
|
||||
0x13, 0x7A, 0x10, 0x06, // 207:4986
|
||||
0x13, 0x8A, 0x26, 0x0E, // 208:5002
|
||||
0x13, 0xB0, 0x24, 0x0E, // 209:5040
|
||||
0x13, 0xD4, 0x26, 0x0E, // 210:5076
|
||||
0x13, 0xFA, 0x26, 0x0E, // 211:5114
|
||||
0x14, 0x20, 0x26, 0x0E, // 212:5152
|
||||
0x14, 0x46, 0x26, 0x0E, // 213:5190
|
||||
0x14, 0x6C, 0x26, 0x0E, // 214:5228
|
||||
0x14, 0x92, 0x23, 0x0F, // 215:5266
|
||||
0x14, 0xB5, 0x26, 0x0E, // 216:5301
|
||||
0x14, 0xDB, 0x23, 0x0E, // 217:5339
|
||||
0x14, 0xFE, 0x23, 0x0E, // 218:5374
|
||||
0x15, 0x21, 0x23, 0x0E, // 219:5409
|
||||
0x15, 0x44, 0x23, 0x0E, // 220:5444
|
||||
0x15, 0x67, 0x22, 0x0C, // 221:5479
|
||||
0x15, 0x89, 0x1D, 0x0B, // 222:5513
|
||||
0x15, 0xA6, 0x20, 0x0B, // 223:5542
|
||||
0x15, 0xC6, 0x1B, 0x0A, // 224:5574
|
||||
0x15, 0xE1, 0x1B, 0x0A, // 225:5601
|
||||
0x15, 0xFC, 0x1B, 0x0A, // 226:5628
|
||||
0x16, 0x17, 0x1B, 0x0A, // 227:5655
|
||||
0x16, 0x32, 0x1B, 0x0A, // 228:5682
|
||||
0x16, 0x4D, 0x1B, 0x0A, // 229:5709
|
||||
0x16, 0x68, 0x2F, 0x11, // 230:5736
|
||||
0x16, 0x97, 0x1A, 0x09, // 231:5783
|
||||
0x16, 0xB1, 0x20, 0x0B, // 232:5809
|
||||
0x16, 0xD1, 0x20, 0x0B, // 233:5841
|
||||
0x16, 0xF1, 0x20, 0x0B, // 234:5873
|
||||
0x17, 0x11, 0x20, 0x0B, // 235:5905
|
||||
0x17, 0x31, 0x0C, 0x05, // 236:5937
|
||||
0x17, 0x3D, 0x0D, 0x05, // 237:5949
|
||||
0x17, 0x4A, 0x0D, 0x05, // 238:5962
|
||||
0x17, 0x57, 0x0D, 0x05, // 239:5975
|
||||
0x17, 0x64, 0x20, 0x0B, // 240:5988
|
||||
0x17, 0x84, 0x1E, 0x0B, // 241:6020
|
||||
0x17, 0xA2, 0x20, 0x0B, // 242:6050
|
||||
0x17, 0xC2, 0x20, 0x0B, // 243:6082
|
||||
0x17, 0xE2, 0x20, 0x0B, // 244:6114
|
||||
0x18, 0x02, 0x20, 0x0B, // 245:6146
|
||||
0x18, 0x22, 0x20, 0x0B, // 246:6178
|
||||
0x18, 0x42, 0x29, 0x0F, // 247:6210
|
||||
0x18, 0x6B, 0x20, 0x0B, // 248:6251
|
||||
0x18, 0x8B, 0x1E, 0x0B, // 249:6283
|
||||
0x18, 0xA9, 0x1E, 0x0B, // 250:6313
|
||||
0x18, 0xC7, 0x1E, 0x0B, // 251:6343
|
||||
0x18, 0xE5, 0x1E, 0x0B, // 252:6373
|
||||
0x19, 0x03, 0x20, 0x0B, // 253:6403
|
||||
0x19, 0x23, 0x20, 0x0B, // 254:6435
|
||||
0x19, 0x43, 0x20, 0x0B, // 255:6467
|
||||
|
||||
// Font Data:
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x9F,0x01,0xF0,0x9F,0x01, // 33
|
||||
0x00,0x00,0x00,0xF0,0x01,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0xF0,0x01, // 34
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x80,0x19,0x00,0x80,0xD9,0x01,0x80,0xFD,0x00,0xE0,0x1F,0x00,0xF8,0x19,0x00,0x80,0xF9,0x01,0x80,0x7F,0x00,0xE0,0x1B,0x00,0xB8,0x19,0x00,0x80,0x19,0x00,0x80,0x01, // 35
|
||||
0x00,0x00,0x00,0x80,0xC3,0x00,0xC0,0x87,0x01,0xE0,0x86,0x01,0x60,0x8E,0x01,0xF8,0xFF,0x0F,0x60,0x8C,0x01,0x60,0xCC,0x01,0xC0,0xF8,0x00,0x00,0x70, // 36
|
||||
0x00,0x00,0x00,0xE0,0x03,0x00,0xF0,0x07,0x00,0x10,0x04,0x00,0x10,0x04,0x01,0xF0,0xC7,0x00,0xE0,0x63,0x00,0x00,0x18,0x00,0x00,0x04,0x00,0x00,0x03,0x00,0xC0,0xF8,0x00,0x60,0xFC,0x01,0x10,0x04,0x01,0x00,0x04,0x01,0x00,0xFC,0x01,0x00,0xF8, // 37
|
||||
0x00,0x00,0x00,0x00,0x78,0x00,0x00,0xFC,0x00,0xC0,0xC7,0x01,0xE0,0x83,0x01,0x30,0x87,0x01,0x30,0x8E,0x01,0x30,0x9C,0x01,0x30,0xF8,0x00,0x60,0xF0,0x00,0x00,0xDC,0x01,0x00,0x8C,0x01,0x00,0x00,0x01, // 38
|
||||
0x00,0x00,0x00,0xF0,0x01,0x00,0xF0,0x01, // 39
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0xE0,0xFF,0x01,0x78,0x80,0x07,0x08,0x00,0x04, // 40
|
||||
0x00,0x00,0x00,0x08,0x00,0x04,0x78,0x80,0x07,0xE0,0xFF,0x01,0x00,0x3F, // 41
|
||||
0x00,0x00,0x00,0x20,0x04,0x00,0x40,0x02,0x00,0x80,0x01,0x00,0xF0,0x0F,0x00,0x80,0x01,0x00,0x40,0x02,0x00,0x20,0x04, // 42
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0xE0,0xFF,0x01,0xE0,0xFF,0x01,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 43
|
||||
0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x80,0x03,0x00,0x80,0x01, // 44
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18, // 45
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x01, // 46
|
||||
0x00,0x00,0x06,0x00,0xE0,0x07,0x00,0xFE,0x01,0xC0,0x3F,0x00,0xF0,0x03,0x00,0x30, // 47
|
||||
0x00,0x00,0x00,0x80,0x3F,0x00,0xE0,0xFF,0x00,0x70,0xC0,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x70,0xC0,0x01,0xE0,0xFF,0x00,0x80,0x3F, // 48
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x01,0x60,0x80,0x01,0x30,0x80,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01, // 49
|
||||
0x00,0x00,0x00,0x60,0x80,0x01,0x30,0xC0,0x01,0x30,0xE0,0x01,0x30,0xB0,0x01,0x30,0x98,0x01,0x70,0x8E,0x01,0xE0,0x87,0x01,0xC0,0x83,0x01, // 50
|
||||
0x00,0x00,0x00,0x60,0xC0,0x00,0x30,0x80,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x70,0xCF,0x01,0xE0,0xFF,0x00,0xC0,0x79, // 51
|
||||
0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x36,0x00,0x80,0x31,0x00,0xC0,0x30,0x00,0x30,0x30,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x00,0x30,0x00,0x00,0x30, // 52
|
||||
0x00,0x00,0x00,0x00,0xC0,0x00,0xF0,0x87,0x01,0xF0,0x83,0x01,0x30,0x83,0x01,0x30,0x83,0x01,0x30,0xC7,0x01,0x30,0xFE,0x00,0x00,0x7C, // 53
|
||||
0x00,0x00,0x00,0x80,0x3F,0x00,0xC0,0xFF,0x00,0xE0,0xCC,0x01,0x70,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0xCE,0x01,0x60,0xFC,0x00,0x00,0x78, // 54
|
||||
0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x80,0x01,0x30,0xF0,0x01,0x30,0xFE,0x00,0xF0,0x1F,0x00,0xF0,0x03,0x00,0x30, // 55
|
||||
0x00,0x00,0x00,0xC0,0x79,0x00,0xE0,0xFF,0x00,0x70,0xCF,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x70,0xCF,0x01,0xE0,0xFF,0x00,0xC0,0x79, // 56
|
||||
0x00,0x00,0x00,0xC0,0x03,0x00,0xE0,0xC7,0x00,0x70,0x8E,0x01,0x30,0x8C,0x01,0x30,0x8C,0x01,0x30,0xCC,0x01,0x70,0xE6,0x00,0xE0,0x7F,0x00,0x80,0x3F, // 57
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x01,0x00,0x83,0x01, // 58
|
||||
0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x83,0x03,0x00,0x83,0x01, // 59
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0xC3,0x00,0x00,0xC3,0x00,0x00,0xC3,0x00,0x80,0x81,0x01, // 60
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33,0x00,0x00,0x33, // 61
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x81,0x01,0x00,0xC3,0x00,0x00,0xC3,0x00,0x00,0xC3,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x18,0x00,0x00,0x18, // 62
|
||||
0x00,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x30,0xB8,0x01,0x30,0xBC,0x01,0x30,0x06,0x00,0xE0,0x03,0x00,0xE0,0x01, // 63
|
||||
0x00,0x00,0x00,0x00,0x7E,0x00,0x80,0xFF,0x01,0xC0,0xC3,0x03,0xE0,0x00,0x07,0x60,0x00,0x06,0x70,0x3C,0x0C,0x30,0x7E,0x0C,0x30,0x66,0x0C,0x30,0x24,0x0C,0x30,0x7E,0x0C,0x30,0x7E,0x04,0x60,0x60,0x06,0x60,0x20,0x00,0xC0,0x30,0x00,0x80,0x1F,0x00,0x00,0x0F, // 64
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xC0,0x37,0x00,0xF0,0x30,0x00,0xF0,0x30,0x00,0xC0,0x37,0x00,0x00,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 65
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0xF0,0xCF,0x01,0xE0,0xF9,0x00,0x00,0x70, // 66
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x60,0xC0,0x00,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x60,0xC0, // 67
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x60,0xC0,0x00,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x80,0x3F, // 68
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01, // 69
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x06,0x00,0x30,0x06,0x00,0x30,0x06,0x00,0x30,0x06,0x00,0x30,0x06,0x00,0x30, // 70
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x60,0xC0,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0xFE,0x00,0x60,0x7E, // 71
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01, // 72
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01, // 73
|
||||
0x00,0x00,0x18,0x00,0x00,0x1C,0xF0,0xFF,0x0F,0xF0,0xFF,0x07, // 74
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x00,0x06,0x00,0x00,0x0F,0x00,0x80,0x19,0x00,0xC0,0x30,0x00,0x60,0x60,0x00,0x30,0xC0,0x00,0x10,0x80,0x01,0x00,0x00,0x01, // 75
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01, // 76
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x70,0x00,0x00,0xE0,0x03,0x00,0x80,0x0F,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0xE0,0x03,0x00,0x70,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01, // 77
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0x00,0x00,0xC0,0x03,0x00,0x00,0x07,0x00,0x00,0x1C,0x00,0x00,0x78,0x00,0x00,0xE0,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01, // 78
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x70,0xC0,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x70,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 79
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x0C,0x00,0x30,0x0C,0x00,0x30,0x0C,0x00,0x70,0x0E,0x00,0xE0,0x07,0x00,0xC0,0x03, // 80
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x70,0xC0,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x03,0x70,0xC0,0x07,0xE0,0xE0,0x04,0xC0,0x7F,0x00,0x00,0x1F, // 81
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x0C,0x00,0x30,0x0C,0x00,0x30,0x0C,0x00,0x70,0x1E,0x00,0xE0,0x77,0x00,0xC0,0xE3,0x01,0x00,0x80,0x01,0x00,0x00,0x01, // 82
|
||||
0x00,0x00,0x00,0xC0,0xC1,0x00,0xE0,0x83,0x01,0x70,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0xCC,0x01,0x60,0xFC,0x00,0x00,0x78, // 83
|
||||
0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 84
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0xC0,0x01,0xF0,0xFF,0x00,0xF0,0x3F, // 85
|
||||
0x10,0x00,0x00,0xF0,0x00,0x00,0xE0,0x03,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0xE0,0x01,0x00,0xE0,0x01,0x00,0x7C,0x00,0x00,0x1F,0x00,0xE0,0x03,0x00,0xF0,0x00,0x00,0x10, // 86
|
||||
0x00,0x00,0x00,0x30,0x00,0x00,0xF0,0x03,0x00,0xC0,0x3F,0x00,0x00,0xFC,0x01,0x00,0xC0,0x01,0x00,0xFC,0x01,0xC0,0x3F,0x00,0xF0,0x03,0x00,0x30,0x00,0x00,0xF0,0x03,0x00,0xC0,0x3F,0x00,0x00,0xFC,0x01,0x00,0xC0,0x01,0x00,0xFC,0x01,0xC0,0x3F,0x00,0xF0,0x03,0x00,0x30, // 87
|
||||
0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x80,0x01,0x70,0xE0,0x01,0xF0,0x70,0x00,0xC0,0x3F,0x00,0x00,0x0F,0x00,0x80,0x1F,0x00,0xC0,0x79,0x00,0xF0,0xE0,0x01,0x30,0xC0,0x01,0x10,0x00,0x01, // 88
|
||||
0x10,0x00,0x00,0x30,0x00,0x00,0x70,0x00,0x00,0xC0,0x01,0x00,0x80,0x03,0x00,0x00,0xFE,0x01,0x00,0xFE,0x01,0x80,0x03,0x00,0xC0,0x01,0x00,0x70,0x00,0x00,0x30,0x00,0x00,0x10, // 89
|
||||
0x00,0x00,0x00,0x30,0x80,0x01,0x30,0xC0,0x01,0x30,0xE0,0x01,0x30,0xF8,0x01,0x30,0x9C,0x01,0x30,0x8E,0x01,0xB0,0x87,0x01,0xF0,0x83,0x01,0xF0,0x80,0x01,0x70,0x80,0x01,0x30,0x80,0x01, // 90
|
||||
0x00,0x00,0x00,0xF8,0xFF,0x07,0xF8,0xFF,0x07,0x18,0x00,0x06,0x18,0x00,0x06, // 91
|
||||
0x30,0x00,0x00,0xF0,0x03,0x00,0xC0,0x3F,0x00,0x00,0xFE,0x01,0x00,0xE0,0x07,0x00,0x00,0x06, // 92
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x06,0x18,0x00,0x06,0xF8,0xFF,0x07,0xF8,0xFF,0x07, // 93
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x01,0x00,0xC0,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x60,0x00,0x00,0xC0,0x00,0x00,0x80,0x01,0x00,0x00,0x01, // 94
|
||||
0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18, // 95
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x00,0x30,0x00,0x00,0x20, // 96
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF3,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0xDB,0x00,0x00,0xFF,0x01,0x00,0xFE,0x01, // 97
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0xC3,0x01,0x00,0xFF,0x00,0x00,0x7E, // 98
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3, // 99
|
||||
0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0x00,0x80,0xC3,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01, // 100
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xDB,0x00,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 101
|
||||
0x80,0x01,0x00,0x80,0x01,0x00,0xF0,0xFF,0x01,0xF8,0xFF,0x01,0x98,0x01,0x00,0x98,0x01, // 102
|
||||
0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0x0C,0x80,0xC3,0x19,0x80,0x81,0x19,0x80,0x81,0x19,0x80,0x81,0x19,0x00,0xC3,0x1C,0x80,0xFF,0x0F,0x80,0xFF,0x03, // 103
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0x00,0x03,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x03,0x00,0x80,0xFF,0x01,0x00,0xFE,0x01, // 104
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x98,0xFF,0x01,0x98,0xFF,0x01, // 105
|
||||
0x00,0x00,0x18,0x00,0x00,0x18,0x98,0xFF,0x1F,0x98,0xFF,0x0F, // 106
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x00,0x01, // 107
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x01,0xF8,0xFF,0x01, // 108
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01,0x00,0x03,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0xFF,0x01,0x00,0xFE,0x01,0x00,0x03,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0xFF,0x01,0x00,0xFE,0x01, // 109
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01,0x00,0x03,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x03,0x00,0x80,0xFF,0x01,0x00,0xFE,0x01, // 110
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 111
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x1F,0x80,0xFF,0x1F,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0xC3,0x01,0x00,0xFF,0x00,0x00,0x7E, // 112
|
||||
0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0x00,0x80,0xC3,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0x80,0xFF,0x1F,0x80,0xFF,0x1F, // 113
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01,0x00,0x03,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01, // 114
|
||||
0x00,0x00,0x00,0x00,0xC7,0x00,0x80,0x8F,0x01,0x80,0x8D,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0xF9,0x01,0x00,0xF3, // 115
|
||||
0x00,0x00,0x00,0x80,0x01,0x00,0xF0,0xFF,0x00,0xF0,0xFF,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01, // 116
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x80,0xFF,0x01,0x00,0xC0,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0xC0,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01, // 117
|
||||
0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x07,0x00,0x00,0x3E,0x00,0x00,0xF8,0x00,0x00,0xC0,0x01,0x00,0xC0,0x01,0x00,0xF8,0x00,0x00,0x3E,0x00,0x80,0x07,0x00,0x80,0x01, // 118
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x80,0x3F,0x00,0x00,0xFC,0x01,0x00,0xC0,0x01,0x00,0xFC,0x01,0x80,0x1F,0x00,0x80,0x01,0x00,0x80,0x1F,0x00,0x00,0xFC,0x01,0x00,0xC0,0x01,0x00,0xFC,0x01,0x80,0x3F,0x00,0x80,0x03, // 119
|
||||
0x00,0x00,0x00,0x80,0x00,0x01,0x80,0x81,0x01,0x80,0xE7,0x01,0x00,0x7E,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x7E,0x00,0x80,0xE7,0x01,0x80,0x81,0x01,0x80,0x00,0x01, // 120
|
||||
0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x07,0x18,0x00,0x1E,0x18,0x00,0x78,0x1C,0x00,0xE0,0x0F,0x00,0xE0,0x03,0x00,0x78,0x00,0x00,0x1E,0x00,0x80,0x07,0x00,0x80,0x01, // 121
|
||||
0x00,0x00,0x00,0x80,0x81,0x01,0x80,0xC1,0x01,0x80,0xF1,0x01,0x80,0xF9,0x01,0x80,0x9D,0x01,0x80,0x8F,0x01,0x80,0x83,0x01,0x80,0x81,0x01, // 122
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x1C,0x00,0xF0,0xFF,0x07,0xF8,0xF3,0x0F,0x18,0x00,0x0C,0x18,0x00,0x0C,0x18,0x00,0x0C, // 123
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x1F,0xF8,0xFF,0x1F, // 124
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x0C,0x18,0x00,0x0C,0x18,0x00,0x0C,0xF8,0xF3,0x0F,0xF0,0xFF,0x07,0x00,0x1C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 125
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06, // 126
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 127
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 128
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 129
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 130
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 131
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 132
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 133
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 134
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 135
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 136
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 137
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 138
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 139
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 140
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 141
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 142
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 143
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 144
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 145
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 146
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 147
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 148
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 149
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 150
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 151
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 152
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 153
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 154
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 155
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 156
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 157
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 158
|
||||
0x00,0x00,0x00,0xF0,0xFF,0x0F,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0xF0,0xFF,0x0F, // 159
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF9,0x0F,0x80,0xF9,0x0F, // 161
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0xF0,0xFF,0x0F,0x80,0x81,0x01,0x00,0xC3, // 162
|
||||
0x00,0x00,0x00,0x00,0x8C,0x01,0x00,0x8C,0x01,0xC0,0xFF,0x01,0xE0,0xFF,0x01,0x70,0x8C,0x01,0x30,0x8C,0x01,0x30,0x8C,0x01,0x30,0x80,0x01,0x60,0x80,0x01, // 163
|
||||
0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x6B,0x00,0x00,0x7F,0x00,0x00,0x22,0x00,0x00,0x63,0x00,0x00,0x22,0x00,0x00,0x7F,0x00,0x00,0x6B,0x00,0x80,0x80, // 164
|
||||
0x00,0x00,0x00,0x10,0x12,0x00,0x70,0x12,0x00,0xE0,0x13,0x00,0x80,0x17,0x00,0x00,0xFE,0x01,0x00,0xFE,0x01,0x80,0x17,0x00,0xE0,0x13,0x00,0x70,0x12,0x00,0x10,0x12, // 165
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xE7,0x0F,0xF0,0xE7,0x0F, // 166
|
||||
0x00,0x00,0x00,0x00,0x0C,0x00,0xE0,0x1E,0x06,0xF0,0x33,0x06,0x30,0x63,0x06,0x30,0xE6,0x07,0x30,0xBC,0x03,0x00,0x1C, // 167
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18, // 168
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x60,0x00,0x60,0xC0,0x00,0x20,0x8E,0x00,0x10,0x11,0x01,0x90,0x20,0x01,0x90,0x20,0x01,0x90,0x20,0x01,0x90,0x10,0x01,0x20,0x80,0x00,0x60,0xC0,0x00,0xC0,0x60,0x00,0x00,0x1F, // 169
|
||||
0x00,0x00,0x00,0x80,0x13,0x00,0xD0,0x14,0x00,0x50,0x14,0x00,0x50,0x14,0x00,0x50,0x14,0x00,0x50,0x12,0x00,0xE0,0x17, // 170
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0xC3,0x00,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0xC3, // 171
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x3E,0x00,0x00,0x3E, // 172
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18, // 173
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x60,0x00,0x60,0xC0,0x00,0x20,0x80,0x00,0x90,0x3F,0x01,0x90,0x04,0x01,0x90,0x04,0x01,0x90,0x0C,0x01,0x10,0x33,0x01,0x20,0xA0,0x00,0x60,0xC0,0x00,0xC0,0x60,0x00,0x00,0x1F, // 174
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 175
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0x30,0x03,0x00,0x10,0x02,0x00,0x10,0x02,0x00,0x30,0x03,0x00,0xE0,0x01, // 176
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0xC0,0xBF,0x01,0xC0,0xBF,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01,0x00,0x86,0x01, // 177
|
||||
0x00,0x00,0x00,0x20,0x04,0x00,0x10,0x06,0x00,0x10,0x05,0x00,0x90,0x04,0x00,0x60,0x04, // 178
|
||||
0x00,0x00,0x00,0x10,0x04,0x00,0x50,0x04,0x00,0x50,0x04,0x00,0x50,0x04,0x00,0xB0,0x03, // 179
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x18,0x00,0x00,0x08, // 180
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x1F,0x80,0xFF,0x1F,0x00,0xC0,0x00,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0xC0,0x00,0x80,0xFF,0x00,0x80,0xFF,0x01,0x00,0x80,0x01, // 181
|
||||
0x00,0x00,0x00,0xC0,0x03,0x00,0xE0,0x07,0x00,0xF0,0x07,0x00,0xF0,0x07,0x00,0xF0,0xFF,0x07,0x10,0x00,0x00,0x10,0x00,0x00,0xF0,0xFF,0x07, // 182
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x0C, // 183
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x0E,0x00,0x00,0x0C, // 184
|
||||
0x00,0x00,0x00,0x10,0x04,0x00,0x10,0x04,0x00,0xF0,0x07,0x00,0x00,0x04,0x00,0x00,0x04, // 185
|
||||
0x00,0x00,0x00,0xC0,0x13,0x00,0x20,0x12,0x00,0x10,0x14,0x00,0x10,0x14,0x00,0x10,0x14,0x00,0x30,0x16,0x00,0xE0,0x13, // 186
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC3,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x18,0x00,0x00,0xC3,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x18, // 187
|
||||
0x00,0x00,0x00,0x10,0x04,0x00,0x10,0x04,0x00,0xF0,0x07,0x00,0x00,0x04,0x01,0x00,0x84,0x01,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x80,0x01,0x00,0xC0,0x60,0x00,0x30,0x50,0x00,0x10,0x48,0x00,0x00,0x44,0x00,0x00,0xFC,0x01,0x00,0x40, // 188
|
||||
0x00,0x00,0x00,0x10,0x04,0x00,0x10,0x04,0x00,0xF0,0x07,0x00,0x00,0x04,0x01,0x00,0x84,0x01,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x80,0x01,0x00,0xC0,0x08,0x01,0x30,0x84,0x01,0x10,0x44,0x01,0x00,0x24,0x01,0x00,0x18,0x01, // 189
|
||||
0x00,0x00,0x00,0x10,0x04,0x00,0x50,0x04,0x00,0x50,0x04,0x00,0x50,0x04,0x01,0xB0,0x83,0x01,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x80,0x01,0x00,0xC0,0x60,0x00,0x30,0x50,0x00,0x10,0x48,0x00,0x00,0x44,0x00,0x00,0xFC,0x01,0x00,0x40, // 190
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x80,0x0F,0x00,0xE0,0x1C,0x80,0x7D,0x18,0x80,0x3D,0x18,0x00,0x00,0x18,0x00,0x00,0x0C, // 191
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xC0,0x37,0x00,0xF2,0x30,0x00,0xF6,0x30,0x00,0xC4,0x37,0x00,0x00,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 192
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xC0,0x37,0x00,0xF4,0x30,0x00,0xF6,0x30,0x00,0xC2,0x37,0x00,0x00,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 193
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xC4,0x37,0x00,0xF2,0x30,0x00,0xF2,0x30,0x00,0xC4,0x37,0x00,0x00,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 194
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x04,0x3F,0x00,0xC2,0x37,0x00,0xF2,0x30,0x00,0xF4,0x30,0x00,0xC4,0x37,0x00,0x02,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 195
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x06,0x3F,0x00,0xC6,0x37,0x00,0xF0,0x30,0x00,0xF0,0x30,0x00,0xC6,0x37,0x00,0x06,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 196
|
||||
0x00,0x00,0x01,0x00,0xE0,0x01,0x00,0xF8,0x00,0x00,0x3F,0x00,0xCE,0x37,0x00,0xF1,0x30,0x00,0xF1,0x30,0x00,0xCE,0x37,0x00,0x00,0x3F,0x00,0x00,0xF8,0x00,0x00,0xE0,0x01,0x00,0x00,0x01, // 197
|
||||
0x00,0x00,0x01,0x00,0xC0,0x01,0x00,0xF8,0x00,0x00,0x3E,0x00,0x80,0x37,0x00,0xF0,0x31,0x00,0x70,0x30,0x00,0x30,0x30,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01, // 198
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x60,0xC0,0x00,0x30,0x80,0x01,0x30,0x80,0x09,0x30,0x80,0x09,0x30,0x80,0x0F,0x30,0x80,0x0D,0x30,0x80,0x01,0x60,0xC0, // 199
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x32,0x86,0x01,0x36,0x86,0x01,0x34,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01, // 200
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x34,0x86,0x01,0x36,0x86,0x01,0x32,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01, // 201
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF4,0xFF,0x01,0x36,0x86,0x01,0x32,0x86,0x01,0x36,0x86,0x01,0x34,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01, // 202
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF6,0xFF,0x01,0x36,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x36,0x86,0x01,0x36,0x86,0x01,0x30,0x86,0x01, // 203
|
||||
0x00,0x00,0x00,0x02,0x00,0x00,0xF6,0xFF,0x01,0xF4,0xFF,0x01, // 204
|
||||
0x00,0x00,0x00,0x04,0x00,0x00,0xF6,0xFF,0x01,0xF2,0xFF,0x01, // 205
|
||||
0x00,0x00,0x00,0x04,0x00,0x00,0xF2,0xFF,0x01,0xF2,0xFF,0x01,0x04, // 206
|
||||
0x06,0x00,0x00,0x06,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x06,0x00,0x00,0x06, // 207
|
||||
0x00,0x06,0x00,0x00,0x06,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x86,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x60,0xC0,0x00,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x80,0x3F, // 208
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF4,0x00,0x00,0xC2,0x03,0x00,0x02,0x07,0x00,0x04,0x1C,0x00,0x04,0x78,0x00,0x02,0xE0,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01, // 209
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x70,0xC0,0x01,0x30,0x80,0x01,0x32,0x80,0x01,0x36,0x80,0x01,0x34,0x80,0x01,0x70,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 210
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x70,0xC0,0x01,0x30,0x80,0x01,0x34,0x80,0x01,0x36,0x80,0x01,0x32,0x80,0x01,0x70,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 211
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x70,0xC0,0x01,0x34,0x80,0x01,0x32,0x80,0x01,0x32,0x80,0x01,0x34,0x80,0x01,0x70,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 212
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x74,0xC0,0x01,0x32,0x80,0x01,0x32,0x80,0x01,0x34,0x80,0x01,0x34,0x80,0x01,0x72,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 213
|
||||
0x00,0x00,0x00,0x00,0x1F,0x00,0xC0,0x7F,0x00,0xE0,0xE0,0x00,0x76,0xC0,0x01,0x36,0x80,0x01,0x30,0x80,0x01,0x30,0x80,0x01,0x36,0x80,0x01,0x76,0xC0,0x01,0xE0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x1F, // 214
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x00,0xC0,0xE1,0x00,0x80,0x73,0x00,0x00,0x3F,0x00,0x00,0x1E,0x00,0x00,0x1E,0x00,0x00,0x3F,0x00,0x80,0x73,0x00,0xC0,0xE1,0x00,0x80,0x40, // 215
|
||||
0x00,0x00,0x00,0x80,0x1F,0x01,0xC0,0xFF,0x00,0xE0,0x60,0x00,0x70,0xF0,0x00,0x30,0x98,0x01,0x30,0x8C,0x01,0x30,0x86,0x01,0x30,0x83,0x01,0xE0,0xC1,0x01,0xC0,0xE0,0x00,0xE0,0x7F,0x00,0x10,0x3F, // 216
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x01,0x02,0x80,0x01,0x06,0x80,0x01,0x04,0x80,0x01,0x00,0x80,0x01,0x00,0xC0,0x01,0xF0,0xFF,0x00,0xF0,0x3F, // 217
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x01,0x04,0x80,0x01,0x06,0x80,0x01,0x02,0x80,0x01,0x00,0x80,0x01,0x00,0xC0,0x01,0xF0,0xFF,0x00,0xF0,0x3F, // 218
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x01,0x04,0x80,0x01,0x02,0x80,0x01,0x02,0x80,0x01,0x04,0x80,0x01,0x00,0xC0,0x01,0xF0,0xFF,0x00,0xF0,0x3F, // 219
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0xF0,0xFF,0x00,0x06,0xC0,0x01,0x06,0x80,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x06,0x80,0x01,0x06,0xC0,0x01,0xF0,0xFF,0x00,0xF0,0x3F, // 220
|
||||
0x10,0x00,0x00,0x30,0x00,0x00,0x70,0x00,0x00,0xC0,0x01,0x00,0x84,0x03,0x00,0x06,0xFE,0x01,0x02,0xFE,0x01,0x80,0x03,0x00,0xC0,0x01,0x00,0x70,0x00,0x00,0x30,0x00,0x00,0x10, // 221
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xC0,0x30,0x00,0xC0,0x30,0x00,0xC0,0x30,0x00,0xC0,0x39,0x00,0x80,0x1F,0x00,0x00,0x0F, // 222
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x01,0xF0,0xFF,0x01,0x38,0x00,0x00,0x18,0xC0,0x00,0x98,0x83,0x01,0x98,0x87,0x01,0xF0,0x8C,0x01,0x60,0xF8,0x01,0x00,0xF0, // 223
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF3,0x01,0x88,0x99,0x01,0x98,0x99,0x01,0xB0,0x99,0x01,0xA0,0xDB,0x00,0x00,0xFF,0x01,0x00,0xFE,0x01, // 224
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF3,0x01,0x80,0x99,0x01,0xA0,0x99,0x01,0xB0,0x99,0x01,0x98,0xDB,0x00,0x08,0xFF,0x01,0x00,0xFE,0x01, // 225
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x20,0xF3,0x01,0xB0,0x99,0x01,0x98,0x99,0x01,0x98,0x99,0x01,0xB0,0xDB,0x00,0x20,0xFF,0x01,0x00,0xFE,0x01, // 226
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x18,0xF3,0x01,0x88,0x99,0x01,0x88,0x99,0x01,0x90,0x99,0x01,0x90,0xDB,0x00,0x18,0xFF,0x01,0x00,0xFE,0x01, // 227
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x18,0xF3,0x01,0x98,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x98,0xDB,0x00,0x18,0xFF,0x01,0x00,0xFE,0x01, // 228
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF3,0x01,0x9C,0x99,0x01,0xA2,0x99,0x01,0xA2,0x99,0x01,0xA2,0xDB,0x00,0x1C,0xFF,0x01,0x00,0xFE,0x01, // 229
|
||||
0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF3,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0xDB,0x00,0x00,0x7F,0x00,0x00,0xFE,0x00,0x00,0xDB,0x00,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x80,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 230
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xC3,0x00,0x80,0x81,0x09,0x80,0x81,0x09,0x80,0x81,0x0F,0x80,0x81,0x0D,0x00,0xC3, // 231
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x08,0xDB,0x00,0x98,0x99,0x01,0xB0,0x99,0x01,0xA0,0x99,0x01,0x80,0x99,0x01,0x80,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 232
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xDB,0x00,0xA0,0x99,0x01,0xB0,0x99,0x01,0x98,0x99,0x01,0x88,0x99,0x01,0x80,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 233
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x20,0xDB,0x00,0xB0,0x99,0x01,0x98,0x99,0x01,0x98,0x99,0x01,0xB0,0x99,0x01,0xA0,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 234
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x18,0xDB,0x00,0x98,0x99,0x01,0x80,0x99,0x01,0x80,0x99,0x01,0x98,0x99,0x01,0x98,0x9B,0x01,0x00,0x9F,0x01,0x00,0xDE, // 235
|
||||
0x08,0x00,0x00,0x18,0x00,0x00,0xB0,0xFF,0x01,0xA0,0xFF,0x01, // 236
|
||||
0x00,0x00,0x00,0x20,0x00,0x00,0xB0,0xFF,0x01,0x98,0xFF,0x01,0x08, // 237
|
||||
0x20,0x00,0x00,0x30,0x00,0x00,0x98,0xFF,0x01,0x98,0xFF,0x01,0x30, // 238
|
||||
0x18,0x00,0x00,0x18,0x00,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01,0x18, // 239
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x20,0xFF,0x00,0x20,0xC3,0x00,0xB8,0x81,0x01,0xB0,0x81,0x01,0xF0,0x81,0x01,0xD0,0x81,0x01,0x90,0xC3,0x00,0x08,0xFF,0x00,0x00,0x3E, // 240
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x98,0xFF,0x01,0x08,0x03,0x00,0x88,0x01,0x00,0x90,0x01,0x00,0x90,0x03,0x00,0x98,0xFF,0x01,0x00,0xFE,0x01, // 241
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x08,0xC3,0x00,0x98,0x81,0x01,0xB0,0x81,0x01,0xA0,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 242
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x00,0xC3,0x00,0xA0,0x81,0x01,0xB0,0x81,0x01,0x98,0x81,0x01,0x88,0x81,0x01,0x00,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 243
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x20,0xC3,0x00,0xB0,0x81,0x01,0x98,0x81,0x01,0x98,0x81,0x01,0xB0,0x81,0x01,0x20,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 244
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x18,0xC3,0x00,0x88,0x81,0x01,0x88,0x81,0x01,0x90,0x81,0x01,0x90,0x81,0x01,0x18,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 245
|
||||
0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0xFF,0x00,0x18,0xC3,0x00,0x98,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x98,0x81,0x01,0x18,0xC3,0x00,0x00,0xFF,0x00,0x00,0x3C, // 246
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x80,0x6D,0x00,0x80,0x6D,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 247
|
||||
0x00,0x00,0x00,0x00,0x3C,0x03,0x00,0xFF,0x00,0x00,0xC3,0x00,0x80,0xA1,0x01,0x80,0x91,0x01,0x80,0x89,0x01,0x80,0x85,0x01,0x00,0xC3,0x00,0x00,0xFF,0x00,0xC0,0x3C, // 248
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x88,0xFF,0x01,0x18,0xC0,0x01,0x30,0x80,0x01,0x20,0x80,0x01,0x00,0xC0,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01, // 249
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x80,0xFF,0x01,0x20,0xC0,0x01,0x30,0x80,0x01,0x18,0x80,0x01,0x08,0xC0,0x00,0x80,0xFF,0x01,0x80,0xFF,0x01, // 250
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0xA0,0xFF,0x01,0x30,0xC0,0x01,0x18,0x80,0x01,0x18,0x80,0x01,0x30,0xC0,0x00,0xA0,0xFF,0x01,0x80,0xFF,0x01, // 251
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x98,0xFF,0x01,0x18,0xC0,0x01,0x00,0x80,0x01,0x00,0x80,0x01,0x18,0xC0,0x00,0x98,0xFF,0x01,0x80,0xFF,0x01, // 252
|
||||
0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x07,0x18,0x00,0x1E,0x18,0x20,0x78,0x1C,0x30,0xE0,0x0F,0x18,0xE0,0x03,0x08,0x78,0x00,0x00,0x1E,0x00,0x80,0x07,0x00,0x80,0x01, // 253
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x1F,0xF8,0xFF,0x1F,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0xC3,0x01,0x00,0xFF,0x00,0x00,0x7E, // 254
|
||||
0x00,0x00,0x00,0x80,0x01,0x00,0x80,0x07,0x18,0x18,0x1E,0x18,0x18,0x78,0x1C,0x00,0xE0,0x0F,0x18,0xE0,0x03,0x18,0x78,0x00,0x00,0x1E,0x00,0x80,0x07,0x00,0x80,0x01 // 255
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -367,6 +367,7 @@ static const char DATA_ESPEASY_DEFAULT_MIN_CSS[] PROGMEM = {
|
||||
// #define USES_P105 // Atlas_EZO_ORP
|
||||
// #define USES_P106 // BME680
|
||||
// #define USES_P107 // Si1145
|
||||
// #define USES_P109 // ThermoOLED
|
||||
// #define USES_P110 // VL53L0X Time of Flight sensor
|
||||
// #define USES_P111 // RF522 RFID reader
|
||||
// #define USES_P113 // VL53L1X ToF
|
||||
|
||||
@@ -0,0 +1,938 @@
|
||||
#include "_Plugin_Helper.h"
|
||||
#ifdef USES_P109
|
||||
|
||||
# include "src/Globals/ESPEasyWiFiEvent.h"
|
||||
|
||||
/*##########################################################################################
|
||||
##################### Plugin 109: OLED SSD1306 display for Thermostat ####################
|
||||
##########################################################################################
|
||||
|
||||
This is a modification to Plugin_036 with graphics library provided from squix78 github
|
||||
https://github.com/squix78/esp8266-oled-ssd1306
|
||||
|
||||
Features :
|
||||
- Displays and use current temperature from specified Device/Value (can be a Dummy for example)
|
||||
- Displays and maintains setpoint value
|
||||
- on power down/up this plugin maintains and reloads RELAY and SETPOINT values from SPIFFS
|
||||
- Supports 3 buttons, LEFT, RIGHT and MODE selection (MODE button cycles modes below,
|
||||
LEFT/RIGHT increases-decreases setpoint OR timeout (Mode sensitive)
|
||||
- one output relay need to be specified, currently only HIGH level active supported
|
||||
- 3 mode is available:
|
||||
- 0 or X: set relay permanently off no matter what
|
||||
- 1 or A: set relay ON if current temperature below setpoint, and set OFF when
|
||||
temperature+hysteresis reached - comparison made at setted Plugin interval (AUTO MODE)
|
||||
- 2 or M: set relay ON for specified time in minutes (MANUAL ON MODE), after timeout, mode switch to "A"
|
||||
|
||||
List of commands :
|
||||
- oledframedcmd,[OLED_STATUS] Inherited command from P036 status can be:
|
||||
[off/on/low/med/high]
|
||||
- thermo,setpoint,[target_temperature] Target setpoint, only used in Mode "A"
|
||||
- thermo,heating,[RELAY_STATUS] Manually forcing relay status [off/on]
|
||||
- thermo,mode,[MODE],[TIMEOUT] Set to either mode X/A/M, if M selected,
|
||||
then TIMEOUT can be specified in minutes
|
||||
|
||||
Command Examples :
|
||||
- /control?cmd=thermo,setpoint,23 Set target setpoint to 23 Celsius
|
||||
- /control?cmd=thermo,mode,1 Set mode to AUTOMATIC so it starts to maintain setpoint temperature
|
||||
- /control?cmd=thermo,mode,2,5 Starts pre-heat for 5 minute, does not care about TEMP, then go to AUTO mode after timeout
|
||||
- /control?cmd=thermo,mode,0 Switch heating off, absolutely do nothing until further notice
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
Copyleft Nagy Sándor 2018 - https://bitekmindenhol.blog.hu/
|
||||
------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# define PLUGIN_109
|
||||
# define PLUGIN_ID_109 109
|
||||
# define PLUGIN_NAME_109 "Display - OLED SSD1306/SH1106 Thermo"
|
||||
# define PLUGIN_VALUENAME1_109 "setpoint"
|
||||
# define PLUGIN_VALUENAME2_109 "heating"
|
||||
# define PLUGIN_VALUENAME3_109 "mode"
|
||||
# define PLUGIN_VALUENAME4_109 "timeout"
|
||||
|
||||
# define P109_Nlines 1
|
||||
# define P109_Nchars 32
|
||||
|
||||
# define P109_CONTRAST_OFF 1
|
||||
# define P109_CONTRAST_LOW 64
|
||||
# define P109_CONTRAST_MED 0xCF
|
||||
# define P109_CONTRAST_HIGH 0xFF
|
||||
|
||||
# include "SSD1306.h"
|
||||
# include "SH1106Wire.h"
|
||||
# include "Dialog_Plain_12_font.h"
|
||||
# include "Dialog_Plain_18_font.h"
|
||||
|
||||
const char flameimg[] PROGMEM = {
|
||||
0x00, 0x20, 0x00,
|
||||
0x00, 0x70, 0x00,
|
||||
0x00, 0x78, 0x00,
|
||||
0x00, 0x7c, 0x00,
|
||||
0x00, 0x7c, 0x00,
|
||||
0x80, 0x7f, 0x00,
|
||||
0xc0, 0xff, 0x00,
|
||||
0xc0, 0xff, 0x00,
|
||||
0xe0, 0xff, 0x04,
|
||||
0xe0, 0xff, 0x05,
|
||||
0xf0, 0xff, 0x0f,
|
||||
0xf0, 0xff, 0x0f,
|
||||
0xf8, 0xff, 0x0f,
|
||||
0xf8, 0xff, 0x1f,
|
||||
0xf8, 0xff, 0x1f,
|
||||
0xf8, 0xff, 0x3f,
|
||||
0xf8, 0xff, 0x3f,
|
||||
0xf8, 0xf3, 0x3f,
|
||||
0xf8, 0xf1, 0x3f,
|
||||
0xf8, 0xf1, 0x3f,
|
||||
0xf8, 0xe1, 0x3f,
|
||||
0xf0, 0x21, 0x3f,
|
||||
0xf0, 0x01, 0x1f,
|
||||
0xe0, 0x01, 0x0f,
|
||||
0xc0, 0x01, 0x0f,
|
||||
0x80, 0x01, 0x07,
|
||||
0x00, 0x03, 0x01
|
||||
};
|
||||
|
||||
# define P109_WIFI_STATE_UNSET -2
|
||||
# define P109_WIFI_STATE_NOT_CONNECTED -1
|
||||
|
||||
float Plugin_109_prev_temp = 99;
|
||||
float Plugin_109_prev_setpoint;
|
||||
float Plugin_109_prev_timeout;
|
||||
byte Plugin_109_prev_heating;
|
||||
byte Plugin_109_prev_mode;
|
||||
|
||||
byte Plugin_109_taskindex;
|
||||
byte Plugin_109_varindex;
|
||||
byte Plugin_109_changed;
|
||||
boolean Plugin_109_init = false;
|
||||
unsigned long Plugin_109_lastsavetime = 0;
|
||||
byte Plugin_109_saveneeded = 0;
|
||||
|
||||
static unsigned long Plugin_109_buttons[3];
|
||||
|
||||
static int8_t P109_lastWiFiState = P109_WIFI_STATE_UNSET;
|
||||
|
||||
// Instantiate display here - does not work to do this within the INIT call
|
||||
|
||||
OLEDDisplay *P109_display = NULL;
|
||||
|
||||
char P109_deviceTemplate[P109_Nlines][P109_Nchars];
|
||||
|
||||
boolean Plugin_109(byte function, struct EventStruct *event, String& string)
|
||||
{
|
||||
boolean success = false;
|
||||
|
||||
switch (function)
|
||||
{
|
||||
case PLUGIN_DEVICE_ADD:
|
||||
{
|
||||
Device[++deviceCount].Number = PLUGIN_ID_109;
|
||||
Device[deviceCount].Type = DEVICE_TYPE_I2C;
|
||||
Device[deviceCount].VType = Sensor_VType::SENSOR_TYPE_QUAD;
|
||||
Device[deviceCount].Ports = 0;
|
||||
Device[deviceCount].PullUpOption = false;
|
||||
Device[deviceCount].InverseLogicOption = false;
|
||||
Device[deviceCount].FormulaOption = true;
|
||||
Device[deviceCount].ValueCount = 4;
|
||||
Device[deviceCount].SendDataOption = true;
|
||||
Device[deviceCount].TimerOption = true;
|
||||
Device[deviceCount].TimerOptional = false;
|
||||
Device[deviceCount].GlobalSyncOption = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_GET_DEVICENAME:
|
||||
{
|
||||
string = F(PLUGIN_NAME_109);
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_GET_DEVICEVALUENAMES:
|
||||
{
|
||||
strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[0], PSTR(PLUGIN_VALUENAME1_109));
|
||||
strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[1], PSTR(PLUGIN_VALUENAME2_109));
|
||||
strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[2], PSTR(PLUGIN_VALUENAME3_109));
|
||||
strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[3], PSTR(PLUGIN_VALUENAME4_109));
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_WEBFORM_LOAD:
|
||||
{
|
||||
byte choice5 = Settings.TaskDevicePluginConfig[event->TaskIndex][2];
|
||||
String options5[2];
|
||||
options5[0] = F("SSD1306");
|
||||
options5[1] = F("SH1106");
|
||||
int optionValues5[2] = { 1, 2 };
|
||||
addFormSelector(F("Controller"), F("plugin_109_controler"), 2, options5, optionValues5, choice5);
|
||||
|
||||
byte choice0 = Settings.TaskDevicePluginConfig[event->TaskIndex][0];
|
||||
int optionValues0[2];
|
||||
optionValues0[0] = 0x3C;
|
||||
optionValues0[1] = 0x3D;
|
||||
addFormSelectorI2C(F("plugin_109_adr"), 2, optionValues0, choice0);
|
||||
|
||||
byte choice1 = Settings.TaskDevicePluginConfig[event->TaskIndex][1];
|
||||
String options1[2];
|
||||
options1[0] = F("Normal");
|
||||
options1[1] = F("Rotated");
|
||||
int optionValues1[2] = { 1, 2 };
|
||||
addFormSelector(F("Rotation"), F("plugin_109_rotate"), 2, options1, optionValues1, choice1);
|
||||
|
||||
LoadCustomTaskSettings(event->TaskIndex, (byte *)&P109_deviceTemplate, sizeof(P109_deviceTemplate));
|
||||
|
||||
for (byte varNr = 0; varNr < P109_Nlines; varNr++)
|
||||
{
|
||||
if (varNr == 0) {
|
||||
addFormTextBox(String(F("Temperature source ")),
|
||||
String(F("Plugin_109_template")) + (varNr + 1),
|
||||
P109_deviceTemplate[varNr],
|
||||
P109_Nchars);
|
||||
} else {
|
||||
addFormTextBox(String(F("Line ")) + (varNr + 1),
|
||||
String(F("Plugin_109_template")) + (varNr + 1),
|
||||
P109_deviceTemplate[varNr],
|
||||
P109_Nchars);
|
||||
}
|
||||
}
|
||||
|
||||
addFormPinSelect(F("Button left"), F("taskdevicepin1"), Settings.TaskDevicePin1[event->TaskIndex]);
|
||||
addFormPinSelect(F("Button right"), F("taskdevicepin2"), Settings.TaskDevicePin2[event->TaskIndex]);
|
||||
addFormPinSelect(F("Button mode"), F("taskdevicepin3"), Settings.TaskDevicePin3[event->TaskIndex]);
|
||||
|
||||
addFormPinSelect(F("Relay"), F("heatrelay"), Settings.TaskDevicePluginConfig[event->TaskIndex][4]);
|
||||
|
||||
byte choice6 = Settings.TaskDevicePluginConfig[event->TaskIndex][3];
|
||||
|
||||
if (choice6 == 0) { choice6 = P109_CONTRAST_HIGH; }
|
||||
String options6[3];
|
||||
options6[0] = F("Low");
|
||||
options6[1] = F("Medium");
|
||||
options6[2] = F("High");
|
||||
int optionValues6[3];
|
||||
optionValues6[0] = P109_CONTRAST_LOW;
|
||||
optionValues6[1] = P109_CONTRAST_MED;
|
||||
optionValues6[2] = P109_CONTRAST_HIGH;
|
||||
addFormSelector(F("Contrast"), F("plugin_109_contrast"), 3, options6, optionValues6, choice6);
|
||||
|
||||
byte choice4 = (Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0] * 10);
|
||||
String options4[3];
|
||||
options4[0] = F("0.2");
|
||||
options4[1] = F("0.5");
|
||||
options4[2] = F("1");
|
||||
int optionValues4[3];
|
||||
optionValues4[0] = 2;
|
||||
optionValues4[1] = 5;
|
||||
optionValues4[2] = 10;
|
||||
addFormSelector(F("Hysteresis"), F("plugin_109_hyst"), 3, options4, optionValues4, choice4);
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_WEBFORM_SAVE:
|
||||
{
|
||||
Settings.TaskDevicePluginConfig[event->TaskIndex][0] = getFormItemInt(F("plugin_109_adr"));
|
||||
Settings.TaskDevicePluginConfig[event->TaskIndex][1] = getFormItemInt(F("plugin_109_rotate"));
|
||||
Settings.TaskDevicePluginConfig[event->TaskIndex][2] = getFormItemInt(F("plugin_109_controler"));
|
||||
Settings.TaskDevicePluginConfig[event->TaskIndex][3] = getFormItemInt(F("plugin_109_contrast"));
|
||||
Settings.TaskDevicePluginConfig[event->TaskIndex][4] = getFormItemInt(F("heatrelay"));
|
||||
Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0] = (getFormItemInt(F("plugin_109_hyst")) / 10.0);
|
||||
|
||||
String argName;
|
||||
|
||||
for (byte varNr = 0; varNr < P109_Nlines; varNr++)
|
||||
{
|
||||
argName = F("Plugin_109_template");
|
||||
argName += varNr + 1;
|
||||
strncpy(P109_deviceTemplate[varNr], web_server.arg(argName).c_str(), sizeof(P109_deviceTemplate[varNr]));
|
||||
}
|
||||
|
||||
SaveCustomTaskSettings(event->TaskIndex, (byte *)&P109_deviceTemplate, sizeof(P109_deviceTemplate));
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_INIT:
|
||||
{
|
||||
P109_lastWiFiState = P109_WIFI_STATE_UNSET;
|
||||
|
||||
// Load the custom settings from flash
|
||||
LoadCustomTaskSettings(event->TaskIndex, (byte *)&P109_deviceTemplate, sizeof(P109_deviceTemplate));
|
||||
|
||||
// Init the display and turn it on
|
||||
if (P109_display)
|
||||
{
|
||||
P109_display->end();
|
||||
delete P109_display;
|
||||
}
|
||||
Plugin_109_taskindex = event->TaskIndex;
|
||||
Plugin_109_varindex = event->BaseVarIndex;
|
||||
|
||||
uint8_t OLED_address = Settings.TaskDevicePluginConfig[event->TaskIndex][0];
|
||||
|
||||
if (Settings.TaskDevicePluginConfig[event->TaskIndex][2] == 1) {
|
||||
P109_display = new SSD1306Wire(OLED_address, Settings.Pin_i2c_sda, Settings.Pin_i2c_scl);
|
||||
} else {
|
||||
P109_display = new SH1106Wire(OLED_address, Settings.Pin_i2c_sda, Settings.Pin_i2c_scl);
|
||||
}
|
||||
P109_display->init(); // call to local override of init function
|
||||
P109_display->displayOn();
|
||||
|
||||
uint8_t OLED_contrast = Settings.TaskDevicePluginConfig[event->TaskIndex][3];
|
||||
P109_setContrast(OLED_contrast);
|
||||
|
||||
String logstr = F("Thermo : Btn L:");
|
||||
logstr += Settings.TaskDevicePin1[event->TaskIndex];
|
||||
logstr += F("R:");
|
||||
logstr += Settings.TaskDevicePin2[event->TaskIndex];
|
||||
logstr += F("M:");
|
||||
logstr += Settings.TaskDevicePin3[event->TaskIndex];
|
||||
addLog(LOG_LEVEL_INFO, logstr);
|
||||
|
||||
if (Settings.TaskDevicePin1[event->TaskIndex] != -1)
|
||||
{
|
||||
pinMode(Settings.TaskDevicePin1[event->TaskIndex], INPUT_PULLUP);
|
||||
}
|
||||
|
||||
if (Settings.TaskDevicePin2[event->TaskIndex] != -1)
|
||||
{
|
||||
pinMode(Settings.TaskDevicePin2[event->TaskIndex], INPUT_PULLUP);
|
||||
}
|
||||
|
||||
if (Settings.TaskDevicePin3[event->TaskIndex] != -1)
|
||||
{
|
||||
pinMode(Settings.TaskDevicePin3[event->TaskIndex], INPUT_PULLUP);
|
||||
}
|
||||
|
||||
Plugin_109_prev_temp = 99;
|
||||
|
||||
fs::File f = tryOpenFile(F("thermo.dat"), F("r"));
|
||||
|
||||
if (f)
|
||||
{
|
||||
f.read(((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16);
|
||||
f.close();
|
||||
}
|
||||
Plugin_109_lastsavetime = millis();
|
||||
|
||||
if (UserVar[event->BaseVarIndex] < 1) {
|
||||
UserVar[event->BaseVarIndex] = 19; // setpoint
|
||||
UserVar[event->BaseVarIndex + 2] = 1; // mode (X=0,A=1,M=2)
|
||||
}
|
||||
|
||||
// UserVar[event->BaseVarIndex + 1] = 0; // heating (0=off,1=heating in progress)
|
||||
// UserVar[event->BaseVarIndex + 3] = 0; // timeout (manual on for minutes)
|
||||
if (Settings.TaskDevicePluginConfig[event->TaskIndex][4] != -1)
|
||||
{
|
||||
// pinMode(Settings.TaskDevicePluginConfig[event->TaskIndex][4], OUTPUT);
|
||||
P109_setHeatRelay(byte(UserVar[event->BaseVarIndex + 1]));
|
||||
}
|
||||
|
||||
logstr = F("Thermo : Starting status S:");
|
||||
logstr += String(UserVar[event->BaseVarIndex]);
|
||||
logstr += F(", R:");
|
||||
logstr += String(UserVar[event->BaseVarIndex + 1]);
|
||||
addLog(LOG_LEVEL_INFO, logstr);
|
||||
|
||||
Plugin_109_changed = 1;
|
||||
Plugin_109_buttons[0] = 0; Plugin_109_buttons[1] = 0; Plugin_109_buttons[2] = 0;
|
||||
|
||||
// flip screen if required
|
||||
if (Settings.TaskDevicePluginConfig[event->TaskIndex][1] == 2) { P109_display->flipScreenVertically(); }
|
||||
|
||||
// Display the device name, logo, time and wifi
|
||||
P109_display_header();
|
||||
P109_display_page();
|
||||
P109_display->display();
|
||||
Plugin_109_init = true;
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_EXIT:
|
||||
{
|
||||
if (P109_display)
|
||||
{
|
||||
P109_display->end();
|
||||
delete P109_display;
|
||||
P109_display = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_TEN_PER_SECOND:
|
||||
{
|
||||
unsigned long current_time;
|
||||
|
||||
if (Plugin_109_init) {
|
||||
if (Settings.TaskDevicePin1[event->TaskIndex] != -1)
|
||||
{
|
||||
if (!digitalRead(Settings.TaskDevicePin1[event->TaskIndex]))
|
||||
{
|
||||
current_time = millis();
|
||||
|
||||
if (Plugin_109_buttons[0] + 300 < current_time) {
|
||||
Plugin_109_buttons[0] = current_time;
|
||||
|
||||
switch (int(UserVar[event->BaseVarIndex + 2])) {
|
||||
case 0: { // off mode, no func
|
||||
break;
|
||||
}
|
||||
case 1: { // auto mode, setpoint dec
|
||||
P109_setSetpoint(F("-0.5"));
|
||||
break;
|
||||
}
|
||||
case 2: { // manual on mode, timer dec
|
||||
UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 300;
|
||||
|
||||
if (UserVar[event->BaseVarIndex + 3] < 0) {
|
||||
UserVar[event->BaseVarIndex + 3] = 5400;
|
||||
}
|
||||
Plugin_109_prev_timeout = 32768;
|
||||
Plugin_109_changed = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Settings.TaskDevicePin2[event->TaskIndex] != -1)
|
||||
{
|
||||
if (!digitalRead(Settings.TaskDevicePin2[event->TaskIndex]))
|
||||
{
|
||||
current_time = millis();
|
||||
|
||||
if (Plugin_109_buttons[1] + 300 < current_time) {
|
||||
Plugin_109_buttons[1] = current_time;
|
||||
|
||||
switch (int(UserVar[event->BaseVarIndex + 2])) {
|
||||
case 0: { // off mode, no func
|
||||
break;
|
||||
}
|
||||
case 1: { // auto mode, setpoint inc
|
||||
P109_setSetpoint(F("+0.5"));
|
||||
break;
|
||||
}
|
||||
case 2: { // manual on mode, timer dec
|
||||
UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] + 300;
|
||||
|
||||
if (UserVar[event->BaseVarIndex + 3] > 5400) {
|
||||
UserVar[event->BaseVarIndex + 3] = 60;
|
||||
}
|
||||
Plugin_109_prev_timeout = 32768;
|
||||
Plugin_109_changed = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Settings.TaskDevicePin3[event->TaskIndex] != -1)
|
||||
{
|
||||
if (!digitalRead(Settings.TaskDevicePin3[event->TaskIndex]))
|
||||
{
|
||||
current_time = millis();
|
||||
|
||||
if (Plugin_109_buttons[2] + 300 < current_time) {
|
||||
Plugin_109_buttons[2] = current_time;
|
||||
|
||||
switch (int(UserVar[event->BaseVarIndex + 2])) {
|
||||
case 0: { // off mode, next
|
||||
P109_setMode(F("a"), F("0"));
|
||||
break;
|
||||
}
|
||||
case 1: { // auto mode, next
|
||||
P109_setMode(F("m"), F("5"));
|
||||
break;
|
||||
}
|
||||
case 2: { // manual on mode, next
|
||||
P109_setMode(F("x"), F("0"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Switch off display after displayTimer seconds
|
||||
case PLUGIN_ONCE_A_SECOND:
|
||||
{
|
||||
if (Plugin_109_init) {
|
||||
if (P109_display && P109_display_wifibars()) {
|
||||
// WiFi symbol was updated.
|
||||
P109_display->display();
|
||||
}
|
||||
|
||||
if (UserVar[event->BaseVarIndex + 2] == 2) { // manual timeout
|
||||
if (UserVar[event->BaseVarIndex + 3] > 0) {
|
||||
UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 1;
|
||||
P109_display_timeout();
|
||||
} else {
|
||||
UserVar[event->BaseVarIndex + 3] = 0;
|
||||
P109_setMode(F("a"), F("0")); // heater to auto
|
||||
P109_display_setpoint_temp(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (Plugin_109_changed == 1) {
|
||||
sendData(event);
|
||||
Plugin_109_saveneeded = 1;
|
||||
Plugin_109_changed = 0;
|
||||
}
|
||||
|
||||
if (Plugin_109_saveneeded == 1) {
|
||||
if ((Plugin_109_lastsavetime + 30000) < millis()) {
|
||||
Plugin_109_saveneeded = 0;
|
||||
Plugin_109_lastsavetime = millis();
|
||||
fs::File f = tryOpenFile(F("thermo.dat"), F("w"));
|
||||
|
||||
if (f)
|
||||
{
|
||||
f.write(((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16);
|
||||
f.close();
|
||||
flashCount();
|
||||
}
|
||||
String logstr = F("Thermo : Save UserVars to SPIFFS");
|
||||
addLog(LOG_LEVEL_INFO, logstr);
|
||||
}
|
||||
}
|
||||
success = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_READ:
|
||||
{
|
||||
if (Plugin_109_init) {
|
||||
// Update display
|
||||
P109_display_header();
|
||||
|
||||
if (UserVar[event->BaseVarIndex + 2] == 1) {
|
||||
String atempstr2 = P109_deviceTemplate[0];
|
||||
String atempstr = parseTemplate(atempstr2, 20);
|
||||
atempstr.trim();
|
||||
|
||||
if ((atempstr.length() > 0) && (Plugin_109_prev_temp != 99)) { // do not switch until the first temperature data arrives
|
||||
float atemp = atempstr.toFloat();
|
||||
|
||||
if (atemp != 0.0) {
|
||||
if ((UserVar[event->BaseVarIndex] > atemp) && (UserVar[event->BaseVarIndex + 1] < 1))
|
||||
{
|
||||
P109_setHeater(F("1"));
|
||||
Plugin_109_changed = 1;
|
||||
} else if (((((float)atemp - (float)Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0]) >=
|
||||
(float)UserVar[event->BaseVarIndex])) && (UserVar[event->BaseVarIndex + 1] > 0)) {
|
||||
P109_setHeater(F("0"));
|
||||
Plugin_109_changed = 1;
|
||||
} else {
|
||||
P109_display_heat();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
P109_display_heat();
|
||||
}
|
||||
}
|
||||
|
||||
P109_display_current_temp();
|
||||
P109_display_timeout();
|
||||
|
||||
P109_display->display();
|
||||
|
||||
success = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case PLUGIN_WRITE:
|
||||
{
|
||||
String command = parseString(string, 1);
|
||||
String subcommand = parseString(string, 2);
|
||||
String logstr;
|
||||
|
||||
if (Plugin_109_init) {
|
||||
if (command == F("oledframedcmd"))
|
||||
{
|
||||
success = true;
|
||||
|
||||
if (subcommand == F("off")) {
|
||||
P109_setContrast(P109_CONTRAST_OFF);
|
||||
}
|
||||
else if (subcommand == F("on")) {
|
||||
P109_display->displayOn();
|
||||
}
|
||||
else if (subcommand == F("low")) {
|
||||
P109_setContrast(P109_CONTRAST_LOW);
|
||||
}
|
||||
else if (subcommand == F("med")) {
|
||||
P109_setContrast(P109_CONTRAST_MED);
|
||||
}
|
||||
else if (subcommand == F("high")) {
|
||||
P109_setContrast(P109_CONTRAST_HIGH);
|
||||
}
|
||||
logstr = F("\nOk");
|
||||
SendStatus(event, logstr);
|
||||
}
|
||||
|
||||
if (command == F("thermo"))
|
||||
{
|
||||
success = true;
|
||||
String par1 = parseString(string, 3);
|
||||
|
||||
if (subcommand == F("setpoint")) {
|
||||
P109_setSetpoint(par1);
|
||||
}
|
||||
else if (subcommand == F("heating")) {
|
||||
P109_setHeater(par1); Plugin_109_changed = 1;
|
||||
}
|
||||
else if (subcommand == F("mode")) {
|
||||
P109_setMode(par1, parseString(string, 4));
|
||||
}
|
||||
logstr = F("\nOk");
|
||||
SendStatus(event, logstr);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
// Set the display contrast
|
||||
// really low brightness & contrast: contrast = 10, precharge = 5, comdetect = 0
|
||||
// normal brightness & contrast: contrast = 100
|
||||
void P109_setContrast(uint8_t OLED_contrast) {
|
||||
char contrast = 100;
|
||||
char precharge = 241;
|
||||
char comdetect = 64;
|
||||
|
||||
switch (OLED_contrast) {
|
||||
case P109_CONTRAST_OFF:
|
||||
|
||||
if (P109_display) {
|
||||
P109_display->displayOff();
|
||||
}
|
||||
return;
|
||||
case P109_CONTRAST_LOW:
|
||||
contrast = 10; precharge = 5; comdetect = 0;
|
||||
break;
|
||||
case P109_CONTRAST_MED:
|
||||
contrast = P109_CONTRAST_MED; precharge = 0x1F; comdetect = 64;
|
||||
break;
|
||||
case P109_CONTRAST_HIGH:
|
||||
default:
|
||||
contrast = P109_CONTRAST_HIGH; precharge = 241; comdetect = 64;
|
||||
break;
|
||||
}
|
||||
|
||||
if (P109_display) {
|
||||
P109_display->displayOn();
|
||||
P109_display->setContrast(contrast, precharge, comdetect);
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_header() {
|
||||
static boolean showWiFiName = true;
|
||||
|
||||
if (showWiFiName && (WiFiEventData.WiFiServicesInitialized())) {
|
||||
String newString = WiFi.SSID();
|
||||
newString.trim();
|
||||
P109_display_title(newString);
|
||||
} else {
|
||||
String dtime = "%sysname%";
|
||||
String newString = parseTemplate(dtime, 10);
|
||||
newString.trim();
|
||||
P109_display_title(newString);
|
||||
}
|
||||
showWiFiName = !showWiFiName;
|
||||
|
||||
// Display time and wifibars both clear area below, so paint them after the title.
|
||||
P109_display_time();
|
||||
P109_display_wifibars();
|
||||
}
|
||||
|
||||
void P109_display_time() {
|
||||
String dtime = "%systime%";
|
||||
String newString = parseTemplate(dtime, 10);
|
||||
|
||||
P109_display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||
P109_display->setFont(Dialog_plain_12);
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(0, 0, 28, 13);
|
||||
P109_display->setColor(WHITE);
|
||||
P109_display->drawString(0, 0, newString.substring(0, 5));
|
||||
}
|
||||
|
||||
void P109_display_title(String& title) {
|
||||
P109_display->setTextAlignment(TEXT_ALIGN_CENTER);
|
||||
P109_display->setFont(Dialog_plain_12);
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(0, 0, 128, 15); // Underscores use a extra lines, clear also.
|
||||
P109_display->setColor(WHITE);
|
||||
P109_display->drawString(64, 0, title);
|
||||
}
|
||||
|
||||
// Draw Signal Strength Bars, return true when there was an update.
|
||||
bool P109_display_wifibars() {
|
||||
const bool connected = WiFiEventData.WiFiServicesInitialized();
|
||||
const int nbars_filled = (WiFi.RSSI() + 100) / 8;
|
||||
const int newState = connected ? nbars_filled : P109_WIFI_STATE_UNSET;
|
||||
|
||||
if (newState == P109_lastWiFiState) {
|
||||
return false; // nothing to do.
|
||||
}
|
||||
int x = 105;
|
||||
int y = 0;
|
||||
int size_x = 15;
|
||||
int size_y = 10;
|
||||
int nbars = 5;
|
||||
int16_t width = (size_x / nbars);
|
||||
|
||||
size_x = width * nbars - 1; // Correct for round errors.
|
||||
|
||||
// x,y are the x,y locations
|
||||
// sizex,sizey are the sizes (should be a multiple of the number of bars)
|
||||
// nbars is the number of bars and nbars_filled is the number of filled bars.
|
||||
|
||||
// We leave a 1 pixel gap between bars
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(x, y, size_x, size_y);
|
||||
P109_display->setColor(WHITE);
|
||||
|
||||
if (WiFiEventData.WiFiServicesInitialized()) {
|
||||
for (byte ibar = 0; ibar < nbars; ibar++) {
|
||||
int16_t height = size_y * (ibar + 1) / nbars;
|
||||
int16_t xpos = x + ibar * width;
|
||||
int16_t ypos = y + size_y - height;
|
||||
|
||||
if (ibar <= nbars_filled) {
|
||||
// Fill complete bar
|
||||
P109_display->fillRect(xpos, ypos, width - 1, height);
|
||||
} else {
|
||||
// Only draw top and bottom.
|
||||
P109_display->fillRect(xpos, ypos, width - 1, 1);
|
||||
P109_display->fillRect(xpos, y + size_y - 1, width - 1, 1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Draw a not connected sign.
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void P109_display_current_temp() {
|
||||
String tmpString = P109_deviceTemplate[0];
|
||||
String atempstr = parseTemplate(tmpString, 20);
|
||||
|
||||
atempstr.trim();
|
||||
|
||||
if (atempstr.length() > 0) {
|
||||
float atemp = atempstr.toFloat();
|
||||
atemp = (round(atemp * 10)) / 10.0;
|
||||
|
||||
if (Plugin_109_prev_temp != atemp) {
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(3, 19, 47, 25);
|
||||
P109_display->setColor(WHITE);
|
||||
tmpString = toString(atemp, 1);
|
||||
P109_display->setFont(ArialMT_Plain_24);
|
||||
P109_display->drawString(3, 19, tmpString.substring(0, 5));
|
||||
Plugin_109_prev_temp = atemp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_setpoint_temp(byte force) {
|
||||
if (UserVar[Plugin_109_varindex + 2] == 1) {
|
||||
float stemp = (round(UserVar[Plugin_109_varindex] * 10)) / 10.0;
|
||||
|
||||
if ((Plugin_109_prev_setpoint != stemp) || (force == 1)) {
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(86, 35, 41, 21);
|
||||
P109_display->setColor(WHITE);
|
||||
String tmpString = toString(stemp, 1);
|
||||
P109_display->setFont(Dialog_plain_18);
|
||||
P109_display->drawString(86, 35, tmpString.substring(0, 5));
|
||||
Plugin_109_prev_setpoint = stemp;
|
||||
Plugin_109_changed = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_timeout() {
|
||||
if (UserVar[Plugin_109_varindex + 2] == 2) {
|
||||
if (Plugin_109_prev_timeout >= (UserVar[Plugin_109_varindex + 3] + 60)) {
|
||||
float timeinmin = UserVar[Plugin_109_varindex + 3] / 60;
|
||||
String thour = toString(((int)(timeinmin / 60)), 0);
|
||||
thour += F(":");
|
||||
String thour2 = toString(((int)timeinmin % 60), 0);
|
||||
|
||||
if (thour2.length() < 2) {
|
||||
thour += "0" + thour2;
|
||||
} else {
|
||||
thour += thour2;
|
||||
}
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(86, 35, 41, 21);
|
||||
P109_display->setColor(WHITE);
|
||||
P109_display->setFont(Dialog_plain_18);
|
||||
P109_display->drawString(86, 35, thour.substring(0, 5));
|
||||
Plugin_109_prev_timeout = UserVar[Plugin_109_varindex + 3];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_mode() {
|
||||
if (Plugin_109_prev_mode != UserVar[Plugin_109_varindex + 2]) {
|
||||
String tmpString;
|
||||
|
||||
switch (int(UserVar[Plugin_109_varindex + 2]))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
tmpString = F("X");
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
tmpString = F("A");
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
tmpString = F("M");
|
||||
break;
|
||||
}
|
||||
}
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(61, 49, 12, 17);
|
||||
P109_display->setColor(WHITE);
|
||||
P109_display->setFont(ArialMT_Plain_16);
|
||||
P109_display->drawString(61, 49, tmpString.substring(0, 5));
|
||||
Plugin_109_prev_mode = UserVar[Plugin_109_varindex + 2];
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_heat() {
|
||||
if (Plugin_109_prev_heating != UserVar[Plugin_109_varindex + 1]) {
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(54, 19, 24, 27);
|
||||
P109_display->setColor(WHITE);
|
||||
|
||||
if (UserVar[Plugin_109_varindex + 1] == 1) {
|
||||
P109_display->drawXbm(54, 19, 24, 27, flameimg);
|
||||
}
|
||||
Plugin_109_prev_heating = UserVar[Plugin_109_varindex + 1];
|
||||
}
|
||||
}
|
||||
|
||||
void P109_display_page() {
|
||||
// init with full clear
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(0, 15, 128, 49);
|
||||
P109_display->setColor(WHITE);
|
||||
|
||||
Plugin_109_prev_temp = 99;
|
||||
Plugin_109_prev_setpoint = 0;
|
||||
Plugin_109_prev_heating = 255;
|
||||
Plugin_109_prev_mode = 255;
|
||||
Plugin_109_prev_timeout = 32768;
|
||||
|
||||
P109_display->setFont(Dialog_plain_12);
|
||||
P109_display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||
String tstr = F("{D}C");
|
||||
String newString = parseTemplate(tstr, 10);
|
||||
|
||||
P109_display->drawString(18, 46, newString.substring(0, 5));
|
||||
|
||||
P109_display_heat();
|
||||
|
||||
P109_display->drawHorizontalLine(0, 15, 128);
|
||||
P109_display->drawVerticalLine(52, 14, 49);
|
||||
|
||||
P109_display->drawCircle(109, 47, 26);
|
||||
P109_display->drawHorizontalLine(78, 47, 8);
|
||||
P109_display->drawVerticalLine(109, 19, 10);
|
||||
|
||||
P109_display_mode();
|
||||
P109_display_setpoint_temp(0);
|
||||
P109_display_current_temp();
|
||||
}
|
||||
|
||||
void P109_setSetpoint(String sptemp) {
|
||||
float stemp = (round(UserVar[Plugin_109_varindex] * 10)) / 10.0;
|
||||
|
||||
if ((sptemp.charAt(0) == '+') || (sptemp.charAt(0) == 'p')) {
|
||||
stemp = stemp + sptemp.substring(1).toFloat();
|
||||
} else if ((sptemp.charAt(0) == '-') || (sptemp.charAt(0) == 'm')) {
|
||||
stemp = stemp - sptemp.substring(1).toFloat();
|
||||
} else {
|
||||
stemp = sptemp.toFloat();
|
||||
}
|
||||
UserVar[Plugin_109_varindex] = stemp;
|
||||
P109_display_setpoint_temp(0);
|
||||
}
|
||||
|
||||
void P109_setHeatRelay(byte state) {
|
||||
uint8_t relaypin = Settings.TaskDevicePluginConfig[Plugin_109_taskindex][4];
|
||||
String logstr = F("Thermo : Set Relay");
|
||||
|
||||
logstr += relaypin;
|
||||
logstr += F("=");
|
||||
logstr += state;
|
||||
addLog(LOG_LEVEL_INFO, logstr);
|
||||
|
||||
if (relaypin != -1) {
|
||||
pinMode(relaypin, OUTPUT);
|
||||
digitalWrite(relaypin, state);
|
||||
}
|
||||
}
|
||||
|
||||
void P109_setHeater(String heater) {
|
||||
if ((heater == F("1")) || (heater == F("on"))) {
|
||||
UserVar[Plugin_109_varindex + 1] = 1;
|
||||
P109_setHeatRelay(HIGH);
|
||||
} else if ((heater == F("0")) || (heater == F("off"))) {
|
||||
UserVar[Plugin_109_varindex + 1] = 0;
|
||||
P109_setHeatRelay(LOW);
|
||||
} else if (UserVar[Plugin_109_varindex + 1] == 0) {
|
||||
UserVar[Plugin_109_varindex + 1] = 1;
|
||||
P109_setHeatRelay(HIGH);
|
||||
} else {
|
||||
UserVar[Plugin_109_varindex + 1] = 0;
|
||||
P109_setHeatRelay(LOW);
|
||||
}
|
||||
P109_display_heat();
|
||||
}
|
||||
|
||||
void P109_setMode(String amode, String atimeout) {
|
||||
if ((amode == F("0")) || (amode == F("x"))) {
|
||||
UserVar[Plugin_109_varindex + 2] = 0;
|
||||
P109_setHeater(F("0"));
|
||||
P109_display->setColor(BLACK);
|
||||
P109_display->fillRect(86, 35, 41, 21);
|
||||
Plugin_109_prev_setpoint = 0;
|
||||
} else if ((amode == F("1")) || (amode == F("a"))) {
|
||||
UserVar[Plugin_109_varindex + 2] = 1;
|
||||
P109_display_setpoint_temp(1);
|
||||
} else if ((amode == F("2")) || (amode == F("m"))) {
|
||||
UserVar[Plugin_109_varindex + 2] = 2;
|
||||
UserVar[Plugin_109_varindex + 3] = (atimeout.toFloat() * 60);
|
||||
Plugin_109_prev_timeout = 32768;
|
||||
P109_display_timeout();
|
||||
P109_setHeater(F("1"));
|
||||
} else {
|
||||
UserVar[Plugin_109_varindex + 2] = 0;
|
||||
}
|
||||
Plugin_109_changed = 1;
|
||||
P109_display_mode();
|
||||
}
|
||||
|
||||
#endif // ifdef USES_P109
|
||||
@@ -1094,7 +1094,8 @@ To create/register a plugin, you have to :
|
||||
#define USES_P106 // BME680
|
||||
#define USES_P107 // SI1145 UV index
|
||||
#define USES_P108 // DDS238-x ZN MODBUS energy meter (was P224 in the Playground)
|
||||
|
||||
// FIXME TD-er: Disabled due to build size
|
||||
//#define USES_P109 // ThermoOLED
|
||||
#define USES_P110 // VL53L0X Time of Flight sensor
|
||||
#define USES_P113 // VL53L1X ToF
|
||||
#endif
|
||||
@@ -1190,6 +1191,10 @@ To create/register a plugin, you have to :
|
||||
#ifndef USES_P099
|
||||
#define USES_P099 // XPT2046 Touchscreen
|
||||
#endif
|
||||
#ifndef USES_P109
|
||||
// FIXME TD-er: Disabled for now, due to build size.
|
||||
//#define USES_P109 // ThermoOLED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user