add custom font files, changes to the init procedure, add status infos, improved time sync reliability
This commit is contained in:
parent
8572c8e4dc
commit
9ebee4264d
638
FreeSans22pt7b.h
Normal file
638
FreeSans22pt7b.h
Normal file
@ -0,0 +1,638 @@
|
||||
const uint8_t FreeSans22pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x77, 0x76, 0x66,
|
||||
0x66, 0x00, 0x0F, 0xFF, 0xF0, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1F,
|
||||
0xE3, 0xB8, 0x77, 0x0E, 0xE1, 0xCC, 0x19, 0x82, 0x00, 0x00, 0xE0, 0xF0,
|
||||
0x03, 0x83, 0xC0, 0x1E, 0x0E, 0x00, 0x78, 0x38, 0x01, 0xC0, 0xE0, 0x07,
|
||||
0x03, 0x80, 0x1C, 0x1E, 0x00, 0x70, 0x70, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF,
|
||||
0xF7, 0xFF, 0xFF, 0xC0, 0xE0, 0xF0, 0x03, 0x83, 0xC0, 0x1E, 0x0E, 0x00,
|
||||
0x78, 0x38, 0x01, 0xC0, 0xE0, 0x07, 0x03, 0x80, 0x1C, 0x1E, 0x00, 0x70,
|
||||
0x78, 0x3F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xE0, 0xE0, 0xF0,
|
||||
0x03, 0x83, 0xC0, 0x1E, 0x0E, 0x00, 0x78, 0x38, 0x01, 0xC0, 0xE0, 0x07,
|
||||
0x03, 0x80, 0x1C, 0x1E, 0x00, 0x70, 0x78, 0x03, 0xC1, 0xC0, 0x00, 0x00,
|
||||
0x70, 0x00, 0x03, 0x80, 0x00, 0x7F, 0x80, 0x0F, 0xFF, 0x01, 0xFF, 0xFC,
|
||||
0x1F, 0xB9, 0xF0, 0xF1, 0xC7, 0x8F, 0x0E, 0x1E, 0x78, 0x70, 0x73, 0x83,
|
||||
0x83, 0x9C, 0x1C, 0x1C, 0xF0, 0xE0, 0x07, 0x87, 0x00, 0x3E, 0x38, 0x00,
|
||||
0xF9, 0xC0, 0x07, 0xFE, 0x00, 0x1F, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x7F,
|
||||
0xF0, 0x00, 0xFF, 0xE0, 0x07, 0x3F, 0x00, 0x38, 0x7C, 0x01, 0xC1, 0xE0,
|
||||
0x0E, 0x07, 0xF0, 0x70, 0x3F, 0x83, 0x81, 0xDC, 0x1C, 0x0E, 0xE0, 0xE0,
|
||||
0xF7, 0x87, 0x07, 0xBE, 0x38, 0x78, 0xF9, 0xCF, 0xC3, 0xFF, 0xFC, 0x0F,
|
||||
0xFF, 0x80, 0x0F, 0xF0, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00,
|
||||
0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x7C, 0x00, 0x0E, 0x00,
|
||||
0x1F, 0xF0, 0x00, 0xE0, 0x03, 0xFF, 0x80, 0x1C, 0x00, 0x7C, 0x3C, 0x01,
|
||||
0xC0, 0x07, 0x01, 0xC0, 0x38, 0x00, 0xF0, 0x1E, 0x03, 0x80, 0x0E, 0x00,
|
||||
0xE0, 0x70, 0x00, 0xE0, 0x0E, 0x07, 0x00, 0x0E, 0x00, 0xE0, 0xE0, 0x00,
|
||||
0xF0, 0x1E, 0x0C, 0x00, 0x07, 0x01, 0xC1, 0xC0, 0x00, 0x7C, 0x3C, 0x18,
|
||||
0x00, 0x03, 0xFF, 0x83, 0x80, 0x00, 0x1F, 0xF0, 0x30, 0x00, 0x00, 0x7C,
|
||||
0x07, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x0E, 0x03, 0xE0,
|
||||
0x00, 0x01, 0xC0, 0xFF, 0x80, 0x00, 0x1C, 0x1F, 0xFC, 0x00, 0x03, 0x83,
|
||||
0xE1, 0xE0, 0x00, 0x38, 0x38, 0x0E, 0x00, 0x07, 0x03, 0x80, 0x70, 0x00,
|
||||
0x70, 0x70, 0x07, 0x00, 0x0E, 0x07, 0x00, 0x70, 0x00, 0xE0, 0x70, 0x07,
|
||||
0x00, 0x1C, 0x03, 0x80, 0x70, 0x01, 0x80, 0x38, 0x0E, 0x00, 0x38, 0x03,
|
||||
0xE1, 0xE0, 0x03, 0x00, 0x1F, 0xFC, 0x00, 0x70, 0x00, 0xFF, 0x80, 0x0E,
|
||||
0x00, 0x03, 0xE0, 0x00, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0xE0,
|
||||
0x00, 0xF0, 0xF0, 0x00, 0xF0, 0x3C, 0x00, 0x70, 0x1E, 0x00, 0x38, 0x07,
|
||||
0x00, 0x1C, 0x03, 0x80, 0x0F, 0x03, 0xC0, 0x07, 0x81, 0xE0, 0x01, 0xE3,
|
||||
0xE0, 0x00, 0xFB, 0xE0, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x0F,
|
||||
0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xFC, 0x1E, 0x1F, 0x1F, 0x0F, 0x0F,
|
||||
0x07, 0x87, 0x0F, 0x01, 0xE3, 0x87, 0x00, 0x7B, 0xC7, 0x80, 0x3F, 0xE3,
|
||||
0xC0, 0x0F, 0xE1, 0xE0, 0x03, 0xF0, 0xF0, 0x00, 0xF0, 0x78, 0x00, 0xFC,
|
||||
0x1E, 0x00, 0xFF, 0x0F, 0x80, 0xFF, 0xC3, 0xF9, 0xF9, 0xE0, 0xFF, 0xF8,
|
||||
0x78, 0x3F, 0xF8, 0x3E, 0x07, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0x77, 0x76,
|
||||
0x60, 0x01, 0x80, 0xE0, 0x70, 0x1C, 0x0E, 0x03, 0x81, 0xC0, 0x70, 0x3C,
|
||||
0x0E, 0x03, 0x81, 0xE0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0xF0, 0x3C, 0x0F,
|
||||
0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xF0, 0x1C, 0x07, 0x01, 0xC0,
|
||||
0x78, 0x0E, 0x03, 0x80, 0xE0, 0x1C, 0x07, 0x01, 0xC0, 0x38, 0x06, 0x01,
|
||||
0xC0, 0x30, 0x0E, 0x01, 0xC0, 0xC0, 0x70, 0x1C, 0x06, 0x03, 0x81, 0xC0,
|
||||
0x70, 0x38, 0x0E, 0x07, 0x03, 0x81, 0xE0, 0x70, 0x38, 0x1C, 0x0F, 0x07,
|
||||
0x83, 0xC1, 0xE0, 0xF0, 0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xC0,
|
||||
0xE0, 0x70, 0x78, 0x38, 0x1C, 0x1C, 0x0E, 0x07, 0x07, 0x03, 0x83, 0x81,
|
||||
0x81, 0xC0, 0xC0, 0x00, 0x07, 0x00, 0x38, 0x01, 0x81, 0x0C, 0x2F, 0x6F,
|
||||
0x7F, 0xFC, 0xFF, 0x01, 0xE0, 0x1F, 0x81, 0xEE, 0x0E, 0x38, 0x61, 0x80,
|
||||
0x00, 0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07,
|
||||
0x00, 0x00, 0x38, 0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x07,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0x00, 0x00, 0x38,
|
||||
0x00, 0x01, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x70, 0x00, 0x03, 0x80, 0x00,
|
||||
0x1C, 0x00, 0x00, 0xE0, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0x33, 0x33,
|
||||
0x7E, 0x80, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF0, 0x00, 0x30, 0x07,
|
||||
0x00, 0x60, 0x06, 0x00, 0xE0, 0x0C, 0x00, 0xC0, 0x1C, 0x01, 0xC0, 0x18,
|
||||
0x01, 0x80, 0x38, 0x03, 0x00, 0x30, 0x07, 0x00, 0x60, 0x06, 0x00, 0xE0,
|
||||
0x0C, 0x00, 0xC0, 0x1C, 0x01, 0x80, 0x18, 0x03, 0x80, 0x30, 0x03, 0x00,
|
||||
0x70, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0x0C, 0x00, 0x01, 0xF8, 0x00,
|
||||
0x7F, 0xE0, 0x0F, 0xFF, 0x01, 0xF9, 0xF8, 0x3E, 0x07, 0xC3, 0xC0, 0x3C,
|
||||
0x78, 0x03, 0xC7, 0x80, 0x1E, 0x78, 0x01, 0xEF, 0x00, 0x1E, 0xF0, 0x00,
|
||||
0xEF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00,
|
||||
0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0,
|
||||
0x00, 0xFF, 0x00, 0x0E, 0xF0, 0x01, 0xE7, 0x00, 0x1E, 0x78, 0x01, 0xE7,
|
||||
0x80, 0x3C, 0x3C, 0x03, 0xC3, 0xC0, 0x7C, 0x1F, 0x0F, 0x80, 0xFF, 0xF0,
|
||||
0x07, 0xFE, 0x00, 0x1F, 0x80, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0xF0, 0x3E,
|
||||
0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03,
|
||||
0xC0, 0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0,
|
||||
0x78, 0x0F, 0x01, 0xE0, 0x3C, 0x07, 0x80, 0xF0, 0x1E, 0x03, 0xC0, 0x78,
|
||||
0x01, 0xFE, 0x00, 0x3F, 0xFC, 0x03, 0xFF, 0xF0, 0x3F, 0x9F, 0xC1, 0xE0,
|
||||
0x1F, 0x1E, 0x00, 0x78, 0xF0, 0x03, 0xEF, 0x00, 0x0F, 0x78, 0x00, 0x7B,
|
||||
0xC0, 0x03, 0xDE, 0x00, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x80, 0x03, 0xF8, 0x00,
|
||||
0x7F, 0x80, 0x07, 0xF0, 0x00, 0x7E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xF7, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x01, 0xFC,
|
||||
0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xF0, 0x3F, 0x1F, 0x83, 0xE0, 0x3E, 0x1E,
|
||||
0x00, 0xF1, 0xE0, 0x03, 0xCF, 0x00, 0x1E, 0x78, 0x00, 0xF3, 0xC0, 0x07,
|
||||
0x80, 0x00, 0x3C, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x07, 0xE0, 0x01,
|
||||
0xFE, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C,
|
||||
0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00,
|
||||
0x0F, 0x78, 0x00, 0x7B, 0xC0, 0x07, 0x9E, 0x00, 0x3C, 0x78, 0x03, 0xC3,
|
||||
0xFD, 0xFE, 0x0F, 0xFF, 0xE0, 0x3F, 0xFE, 0x00, 0x3F, 0x80, 0x00, 0x03,
|
||||
0x80, 0x00, 0x3C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x01, 0xF8, 0x00,
|
||||
0x1F, 0xC0, 0x01, 0xFE, 0x00, 0x0E, 0xF0, 0x00, 0xF7, 0x80, 0x0F, 0x3C,
|
||||
0x00, 0x71, 0xE0, 0x07, 0x8F, 0x00, 0x78, 0x78, 0x07, 0x83, 0xC0, 0x38,
|
||||
0x1E, 0x03, 0xC0, 0xF0, 0x3C, 0x07, 0x81, 0xC0, 0x3C, 0x1E, 0x01, 0xE1,
|
||||
0xE0, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00,
|
||||
0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E, 0x00, 0x0F, 0xFF, 0xF0, 0x7F,
|
||||
0xFF, 0x87, 0xFF, 0xFC, 0x3F, 0xFF, 0xE1, 0xE0, 0x00, 0x0F, 0x00, 0x00,
|
||||
0x70, 0x00, 0x03, 0x80, 0x00, 0x1C, 0x00, 0x01, 0xE0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x7B, 0xFC, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, 0xFC, 0x1F, 0x87,
|
||||
0x80, 0x3E, 0x38, 0x00, 0xF0, 0x00, 0x07, 0xC0, 0x00, 0x1E, 0x00, 0x00,
|
||||
0xF0, 0x00, 0x07, 0x80, 0x00, 0x3C, 0x00, 0x01, 0xFE, 0x00, 0x0F, 0x78,
|
||||
0x00, 0x7B, 0xC0, 0x07, 0x9F, 0x00, 0x3C, 0x7C, 0x07, 0xC3, 0xFC, 0xFE,
|
||||
0x0F, 0xFF, 0xE0, 0x1F, 0xFC, 0x00, 0x3F, 0x80, 0x00, 0xFC, 0x00, 0x7F,
|
||||
0xF0, 0x0F, 0xFF, 0x81, 0xFD, 0xFC, 0x3E, 0x03, 0xC3, 0xC0, 0x1E, 0x78,
|
||||
0x01, 0xE7, 0x80, 0x0E, 0x78, 0x00, 0x07, 0x00, 0x00, 0xF0, 0x00, 0x0F,
|
||||
0x00, 0x00, 0xF1, 0xFE, 0x0F, 0x7F, 0xF0, 0xFF, 0xFF, 0xCF, 0xF0, 0x7C,
|
||||
0xFC, 0x03, 0xEF, 0x80, 0x1E, 0xF8, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0x70, 0x00, 0xF7, 0x80,
|
||||
0x1E, 0x7C, 0x01, 0xE3, 0xE0, 0x3C, 0x1F, 0x9F, 0xC1, 0xFF, 0xF8, 0x07,
|
||||
0xFF, 0x00, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xC0, 0x00, 0x38,
|
||||
0x00, 0x07, 0x80, 0x00, 0x70, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x1C,
|
||||
0x00, 0x03, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x80, 0x00, 0x70, 0x00, 0x0F,
|
||||
0x00, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x1C, 0x00, 0x03,
|
||||
0xC0, 0x00, 0x3C, 0x00, 0x03, 0x80, 0x00, 0x78, 0x00, 0x07, 0x80, 0x00,
|
||||
0x78, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0x03, 0xF8,
|
||||
0x00, 0xFF, 0xE0, 0x1F, 0xFF, 0x83, 0xF9, 0xFC, 0x7C, 0x07, 0xC7, 0x80,
|
||||
0x3E, 0x78, 0x01, 0xE7, 0x80, 0x1E, 0x78, 0x01, 0xE7, 0x80, 0x1E, 0x78,
|
||||
0x01, 0xE7, 0xC0, 0x3C, 0x3E, 0x0F, 0x81, 0xFF, 0xF0, 0x07, 0xFE, 0x01,
|
||||
0xFF, 0xF8, 0x3F, 0x0F, 0xC7, 0xC0, 0x3E, 0xF8, 0x01, 0xEF, 0x00, 0x0F,
|
||||
0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0xFF, 0x00, 0x1F, 0xF8, 0x01, 0xE7, 0xC0, 0x3E, 0x3F, 0x9F, 0xC1, 0xFF,
|
||||
0xF8, 0x0F, 0xFF, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0xFF, 0xE0, 0x1F,
|
||||
0xFF, 0x03, 0xF1, 0xF8, 0x7C, 0x07, 0xC7, 0x80, 0x3C, 0xF0, 0x01, 0xEF,
|
||||
0x00, 0x1E, 0xF0, 0x00, 0xEF, 0x00, 0x0E, 0xF0, 0x00, 0xFF, 0x00, 0x0F,
|
||||
0xF0, 0x01, 0xFF, 0x00, 0x1F, 0xF8, 0x01, 0xF7, 0x80, 0x3F, 0x7E, 0x0F,
|
||||
0xF3, 0xFF, 0xFF, 0x1F, 0xFC, 0xF0, 0x7F, 0x8F, 0x00, 0x00, 0xF0, 0x00,
|
||||
0x0E, 0x00, 0x01, 0xE0, 0x00, 0x1E, 0xF0, 0x01, 0xE7, 0x80, 0x3C, 0x78,
|
||||
0x03, 0xC7, 0xC0, 0x78, 0x3F, 0x3F, 0x81, 0xFF, 0xF0, 0x0F, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE3, 0x18, 0xCE, 0x6F, 0x40,
|
||||
0x00, 0x00, 0x08, 0x00, 0x01, 0xC0, 0x00, 0x3E, 0x00, 0x0F, 0xF0, 0x01,
|
||||
0xFE, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFC, 0x00, 0x7F, 0x80, 0x07,
|
||||
0xF0, 0x00, 0x3C, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0,
|
||||
0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0,
|
||||
0x00, 0x7E, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x80,
|
||||
0x00, 0x07, 0x00, 0x00, 0x3F, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00,
|
||||
0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0x1F, 0xC0, 0x00, 0x1E, 0x00, 0x03, 0xF0, 0x00, 0x7F, 0x00, 0x1F, 0xE0,
|
||||
0x03, 0xFC, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x07, 0xF8, 0x00, 0x3F, 0x00,
|
||||
0x01, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x01, 0xFF, 0xC0,
|
||||
0x7F, 0xFE, 0x1F, 0x9F, 0xE7, 0xC0, 0x7C, 0xF0, 0x07, 0x9C, 0x00, 0x7F,
|
||||
0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3C, 0x00, 0x07, 0x80, 0x01, 0xE0,
|
||||
0x00, 0x7C, 0x00, 0x1F, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x7C, 0x00,
|
||||
0x1F, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00,
|
||||
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x00,
|
||||
0x00, 0x7F, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0x0F, 0xFF,
|
||||
0xFE, 0x00, 0x00, 0x3F, 0xE1, 0xFF, 0x80, 0x00, 0x7E, 0x00, 0x1F, 0xC0,
|
||||
0x01, 0xF8, 0x00, 0x07, 0xE0, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x07, 0xC0,
|
||||
0x00, 0x00, 0xF8, 0x07, 0x80, 0x00, 0x00, 0x7C, 0x0F, 0x00, 0x1E, 0x00,
|
||||
0x3C, 0x1E, 0x00, 0x7F, 0x8E, 0x1E, 0x1E, 0x01, 0xFF, 0xDE, 0x1E, 0x3C,
|
||||
0x03, 0xE1, 0xDC, 0x1F, 0x3C, 0x07, 0xC0, 0xFC, 0x0F, 0x78, 0x0F, 0x80,
|
||||
0x7C, 0x0F, 0x78, 0x0F, 0x00, 0x78, 0x0F, 0x78, 0x1E, 0x00, 0x78, 0x0F,
|
||||
0x70, 0x1E, 0x00, 0x78, 0x0F, 0x70, 0x1E, 0x00, 0x78, 0x0F, 0xF0, 0x3C,
|
||||
0x00, 0x70, 0x0F, 0xF0, 0x3C, 0x00, 0xF0, 0x1E, 0xF0, 0x3C, 0x00, 0xF0,
|
||||
0x1E, 0x70, 0x3C, 0x01, 0xE0, 0x3C, 0x78, 0x1E, 0x01, 0xE0, 0x3C, 0x78,
|
||||
0x1E, 0x03, 0xE0, 0x78, 0x78, 0x1F, 0x07, 0xE1, 0xF8, 0x3C, 0x0F, 0xFE,
|
||||
0xFF, 0xF0, 0x3C, 0x07, 0xFC, 0xFF, 0xC0, 0x1E, 0x01, 0xF0, 0x7F, 0x00,
|
||||
0x1F, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x08,
|
||||
0x00, 0x00, 0xFF, 0xC3, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00,
|
||||
0x0F, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x1F, 0x00,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07,
|
||||
0xFC, 0x00, 0x00, 0xF7, 0x80, 0x00, 0x3E, 0xF0, 0x00, 0x07, 0x9F, 0x00,
|
||||
0x00, 0xF1, 0xE0, 0x00, 0x3E, 0x3C, 0x00, 0x07, 0x87, 0xC0, 0x00, 0xF0,
|
||||
0x78, 0x00, 0x3C, 0x0F, 0x00, 0x07, 0x81, 0xF0, 0x00, 0xF0, 0x1E, 0x00,
|
||||
0x3C, 0x03, 0xE0, 0x07, 0x80, 0x7C, 0x00, 0xF0, 0x07, 0x80, 0x3C, 0x00,
|
||||
0xF8, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xE0, 0x3F, 0xFF, 0xFE, 0x07,
|
||||
0x80, 0x07, 0xC1, 0xF0, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0x87, 0x80, 0x00,
|
||||
0xF1, 0xF0, 0x00, 0x1E, 0x3C, 0x00, 0x03, 0xE7, 0x80, 0x00, 0x3D, 0xE0,
|
||||
0x00, 0x07, 0xFC, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xE0,
|
||||
0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x7C, 0xF0, 0x00, 0x3C,
|
||||
0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x3C,
|
||||
0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x3C, 0xF0, 0x00, 0x78, 0xFF, 0xFF, 0xF0,
|
||||
0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x7C,
|
||||
0xF0, 0x00, 0x3E, 0xF0, 0x00, 0x1E, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F,
|
||||
0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x1E,
|
||||
0xF0, 0x00, 0x3E, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0,
|
||||
0xFF, 0xFF, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xFF, 0x00, 0x0F, 0xFF,
|
||||
0xF0, 0x07, 0xFF, 0xFF, 0x00, 0xF8, 0x03, 0xF0, 0x3E, 0x00, 0x1F, 0x0F,
|
||||
0x80, 0x01, 0xE1, 0xE0, 0x00, 0x3C, 0x78, 0x00, 0x03, 0xCF, 0x00, 0x00,
|
||||
0x79, 0xE0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x01, 0xE0,
|
||||
0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0xF0, 0x00, 0x00,
|
||||
0x1E, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x01, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x1E,
|
||||
0x78, 0x00, 0x03, 0xC7, 0x80, 0x00, 0xF8, 0xF8, 0x00, 0x3E, 0x0F, 0x80,
|
||||
0x07, 0xC1, 0xFC, 0x03, 0xF0, 0x1F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00,
|
||||
0x0F, 0xFF, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF,
|
||||
0xF0, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x0F, 0x00, 0x0F, 0xC7, 0x80,
|
||||
0x01, 0xF3, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x1E, 0xF0, 0x00, 0x0F, 0x78,
|
||||
0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F,
|
||||
0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07,
|
||||
0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00,
|
||||
0x7F, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x3D, 0xE0, 0x00, 0x1E, 0xF0, 0x00,
|
||||
0x1E, 0x78, 0x00, 0x1F, 0x3C, 0x00, 0x3F, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF,
|
||||
0xFF, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFD, 0xFF,
|
||||
0xFF, 0xFB, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xEF, 0x00, 0x00, 0x1E, 0x00,
|
||||
0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00,
|
||||
0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1F, 0xFF, 0xFF,
|
||||
0xBF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0x03,
|
||||
0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C,
|
||||
0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0,
|
||||
0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00,
|
||||
0xF0, 0x00, 0x03, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0,
|
||||
0x00, 0x03, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF,
|
||||
0xE3, 0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03,
|
||||
0xC0, 0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0,
|
||||
0x00, 0x0F, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF0, 0x00, 0x03, 0xC0, 0x00,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x0F, 0xFF, 0xC0, 0x03,
|
||||
0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8, 0x0F, 0xC0, 0x1F, 0x81, 0xF0, 0x00,
|
||||
0x7C, 0x3E, 0x00, 0x03, 0xE3, 0xC0, 0x00, 0x1E, 0x7C, 0x00, 0x01, 0xF7,
|
||||
0x80, 0x00, 0x0F, 0x78, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00,
|
||||
0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x1F, 0xFF,
|
||||
0xF0, 0x01, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x00,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00,
|
||||
0xF7, 0x80, 0x00, 0x0F, 0x7C, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x1F, 0x3E,
|
||||
0x00, 0x03, 0xF1, 0xF0, 0x00, 0x7F, 0x0F, 0xC0, 0x1F, 0x70, 0x7F, 0xFF,
|
||||
0xE7, 0x03, 0xFF, 0xFC, 0x70, 0x0F, 0xFF, 0x03, 0x00, 0x3F, 0xC0, 0x00,
|
||||
0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00,
|
||||
0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00,
|
||||
0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00,
|
||||
0x00, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE,
|
||||
0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F,
|
||||
0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01,
|
||||
0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00,
|
||||
0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C,
|
||||
0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00,
|
||||
0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00,
|
||||
0xF0, 0x00, 0x3C, 0x00, 0x0F, 0x00, 0x03, 0xC0, 0x00, 0xF0, 0x00, 0x3C,
|
||||
0x00, 0x0F, 0x00, 0x03, 0xFE, 0x00, 0xFF, 0x80, 0x3F, 0xE0, 0x0F, 0x78,
|
||||
0x03, 0xDE, 0x00, 0xF7, 0x80, 0x7D, 0xF0, 0x1E, 0x3F, 0x9F, 0x87, 0xFF,
|
||||
0xC0, 0xFF, 0xE0, 0x0F, 0xE0, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x0F, 0xBC,
|
||||
0x00, 0x0F, 0x9E, 0x00, 0x0F, 0x8F, 0x00, 0x0F, 0x87, 0x80, 0x0F, 0x83,
|
||||
0xC0, 0x0F, 0x81, 0xE0, 0x0F, 0x80, 0xF0, 0x0F, 0x80, 0x78, 0x0F, 0x80,
|
||||
0x3C, 0x0F, 0x80, 0x1E, 0x0F, 0x80, 0x0F, 0x0F, 0x80, 0x07, 0x8F, 0xC0,
|
||||
0x03, 0xCF, 0xF0, 0x01, 0xEF, 0x78, 0x00, 0xFF, 0x1E, 0x00, 0x7F, 0x0F,
|
||||
0x80, 0x3F, 0x03, 0xE0, 0x1F, 0x00, 0xF0, 0x0F, 0x00, 0x7C, 0x07, 0x80,
|
||||
0x1F, 0x03, 0xC0, 0x07, 0x81, 0xE0, 0x03, 0xE0, 0xF0, 0x00, 0xF8, 0x78,
|
||||
0x00, 0x3E, 0x3C, 0x00, 0x1F, 0x1E, 0x00, 0x07, 0xCF, 0x00, 0x01, 0xF7,
|
||||
0x80, 0x00, 0x7B, 0xC0, 0x00, 0x3E, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0,
|
||||
0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F,
|
||||
0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00,
|
||||
0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00,
|
||||
0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0,
|
||||
0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
|
||||
0xFC, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xE0, 0x00, 0x0F, 0xFF,
|
||||
0x80, 0x00, 0x7F, 0xFF, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x07, 0xFF, 0x70,
|
||||
0x00, 0x3F, 0xFD, 0xE0, 0x00, 0xEF, 0xF7, 0x80, 0x03, 0xBF, 0xCE, 0x00,
|
||||
0x1E, 0xFF, 0x3C, 0x00, 0x73, 0xFC, 0xF0, 0x01, 0xCF, 0xF1, 0xC0, 0x0F,
|
||||
0x3F, 0xC7, 0x80, 0x38, 0xFF, 0x1E, 0x00, 0xE3, 0xFC, 0x38, 0x07, 0x8F,
|
||||
0xF0, 0xF0, 0x1C, 0x3F, 0xC3, 0xC0, 0x70, 0xFF, 0x07, 0x03, 0xC3, 0xFC,
|
||||
0x1E, 0x0E, 0x0F, 0xF0, 0x38, 0x78, 0x3F, 0xC0, 0xE1, 0xE0, 0xFF, 0x03,
|
||||
0xC7, 0x03, 0xFC, 0x07, 0x3C, 0x0F, 0xF0, 0x1C, 0xF0, 0x3F, 0xC0, 0x7B,
|
||||
0x80, 0xFF, 0x00, 0xFE, 0x03, 0xFC, 0x03, 0xF8, 0x0F, 0xF0, 0x0F, 0xC0,
|
||||
0x3F, 0xC0, 0x1F, 0x00, 0xFF, 0x00, 0x7C, 0x03, 0xC0, 0xF8, 0x00, 0x07,
|
||||
0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0xFF, 0xF0, 0x00,
|
||||
0x7F, 0xF8, 0x00, 0x3F, 0xDE, 0x00, 0x1F, 0xEF, 0x80, 0x0F, 0xF3, 0xC0,
|
||||
0x07, 0xF8, 0xF0, 0x03, 0xFC, 0x7C, 0x01, 0xFE, 0x1E, 0x00, 0xFF, 0x07,
|
||||
0x80, 0x7F, 0x83, 0xE0, 0x3F, 0xC0, 0xF0, 0x1F, 0xE0, 0x7C, 0x0F, 0xF0,
|
||||
0x1E, 0x07, 0xF8, 0x07, 0x83, 0xFC, 0x03, 0xE1, 0xFE, 0x00, 0xF0, 0xFF,
|
||||
0x00, 0x3C, 0x7F, 0x80, 0x1F, 0x3F, 0xC0, 0x07, 0x9F, 0xE0, 0x01, 0xEF,
|
||||
0xF0, 0x00, 0xFF, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFE, 0x00, 0x07,
|
||||
0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x3E, 0x00, 0x1F,
|
||||
0xE0, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0xE0, 0x01, 0xFF, 0xFF,
|
||||
0xE0, 0x0F, 0xC0, 0x1F, 0xC0, 0x7E, 0x00, 0x1F, 0x83, 0xE0, 0x00, 0x3E,
|
||||
0x0F, 0x00, 0x00, 0x7C, 0x7C, 0x00, 0x00, 0xF1, 0xE0, 0x00, 0x03, 0xE7,
|
||||
0x80, 0x00, 0x07, 0xBC, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x3F, 0xC0,
|
||||
0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00,
|
||||
0x0F, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x07,
|
||||
0x9E, 0x00, 0x00, 0x1E, 0x7C, 0x00, 0x00, 0xF0, 0xF0, 0x00, 0x07, 0xC3,
|
||||
0xE0, 0x00, 0x3E, 0x07, 0xE0, 0x01, 0xF8, 0x0F, 0xC0, 0x1F, 0xC0, 0x1F,
|
||||
0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x1F,
|
||||
0xE0, 0x00, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xE7, 0xFF,
|
||||
0xFF, 0xCF, 0x00, 0x07, 0xDE, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00,
|
||||
0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x01,
|
||||
0xFF, 0x00, 0x03, 0xFE, 0x00, 0x0F, 0xBF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFC,
|
||||
0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F,
|
||||
0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0,
|
||||
0x00, 0x01, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00,
|
||||
0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, 0xE0, 0x0F,
|
||||
0xC0, 0x1F, 0xC0, 0x7E, 0x00, 0x1F, 0x83, 0xE0, 0x00, 0x3E, 0x0F, 0x00,
|
||||
0x00, 0x7C, 0x7C, 0x00, 0x00, 0xF1, 0xE0, 0x00, 0x01, 0xE7, 0x80, 0x00,
|
||||
0x07, 0xBC, 0x00, 0x00, 0x1E, 0xF0, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00,
|
||||
0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x3F,
|
||||
0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xF0,
|
||||
0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xE7, 0x80, 0x00, 0x07, 0x9E, 0x00,
|
||||
0x00, 0x3E, 0x7C, 0x00, 0x30, 0xF0, 0xF0, 0x01, 0xF7, 0xC3, 0xE0, 0x03,
|
||||
0xFE, 0x07, 0xC0, 0x07, 0xF8, 0x0F, 0xC0, 0x1F, 0xC0, 0x1F, 0xFF, 0xFF,
|
||||
0x80, 0x3F, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0x3E, 0x00, 0x1F, 0xE0, 0x78,
|
||||
0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0x3F,
|
||||
0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0xF0, 0x00, 0x3F,
|
||||
0x3C, 0x00, 0x07, 0xCF, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x3C, 0xF0, 0x00,
|
||||
0x0F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0xF3, 0xC0, 0x00, 0x3C, 0xF0,
|
||||
0x00, 0x1E, 0x3C, 0x00, 0x1F, 0x8F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC0,
|
||||
0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x0F, 0x00, 0x03, 0xE3, 0xC0, 0x00,
|
||||
0x78, 0xF0, 0x00, 0x0F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0xF3, 0xC0,
|
||||
0x00, 0x3C, 0xF0, 0x00, 0x0F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0xF3,
|
||||
0xC0, 0x00, 0x3C, 0xF0, 0x00, 0x0F, 0x3C, 0x00, 0x03, 0xEF, 0x00, 0x00,
|
||||
0x7C, 0x00, 0xFF, 0x00, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x03, 0xFC,
|
||||
0xFF, 0x83, 0xE0, 0x07, 0xC1, 0xE0, 0x01, 0xF1, 0xF0, 0x00, 0x78, 0xF0,
|
||||
0x00, 0x3C, 0x78, 0x00, 0x0F, 0x3C, 0x00, 0x07, 0x9E, 0x00, 0x00, 0x0F,
|
||||
0x80, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x7F, 0xF0, 0x00,
|
||||
0x1F, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0xFF,
|
||||
0x80, 0x00, 0x0F, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7F, 0xC0, 0x00,
|
||||
0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x07, 0x9E, 0x00,
|
||||
0x03, 0xCF, 0x80, 0x03, 0xE3, 0xF0, 0x03, 0xE0, 0xFF, 0xFF, 0xE0, 0x3F,
|
||||
0xFF, 0xE0, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0xE0,
|
||||
0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x1E,
|
||||
0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, 0x01,
|
||||
0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, 0x00,
|
||||
0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00,
|
||||
0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00,
|
||||
0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0,
|
||||
0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0xF0, 0x00,
|
||||
0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00,
|
||||
0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0,
|
||||
0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF,
|
||||
0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F,
|
||||
0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00,
|
||||
0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1E, 0xF0, 0x00,
|
||||
0x1E, 0x78, 0x00, 0x0F, 0x3C, 0x00, 0x0F, 0x9F, 0x00, 0x07, 0x87, 0xE0,
|
||||
0x0F, 0xC1, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x01,
|
||||
0xFF, 0x00, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xF7, 0x80, 0x00, 0x79,
|
||||
0xE0, 0x00, 0x1E, 0x7C, 0x00, 0x0F, 0x8F, 0x00, 0x03, 0xC3, 0xC0, 0x00,
|
||||
0xF0, 0xF8, 0x00, 0x78, 0x1E, 0x00, 0x1E, 0x07, 0x80, 0x07, 0x81, 0xF0,
|
||||
0x03, 0xC0, 0x3C, 0x00, 0xF0, 0x0F, 0x00, 0x3C, 0x01, 0xE0, 0x1E, 0x00,
|
||||
0x78, 0x07, 0x80, 0x1E, 0x01, 0xE0, 0x03, 0xC0, 0xF0, 0x00, 0xF0, 0x3C,
|
||||
0x00, 0x3C, 0x0F, 0x00, 0x07, 0x87, 0x80, 0x01, 0xE1, 0xE0, 0x00, 0x7C,
|
||||
0x78, 0x00, 0x0F, 0x3C, 0x00, 0x03, 0xCF, 0x00, 0x00, 0x7B, 0xC0, 0x00,
|
||||
0x1F, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3F, 0x00,
|
||||
0x00, 0x0F, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3F,
|
||||
0xE0, 0x00, 0xF8, 0x00, 0x7B, 0xE0, 0x03, 0xF0, 0x00, 0xF3, 0xC0, 0x07,
|
||||
0xE0, 0x03, 0xE7, 0x80, 0x0F, 0xE0, 0x07, 0xCF, 0x00, 0x3F, 0xC0, 0x0F,
|
||||
0x1F, 0x00, 0x7F, 0x80, 0x1E, 0x1E, 0x00, 0xF7, 0x00, 0x3C, 0x3C, 0x01,
|
||||
0xCF, 0x00, 0xF8, 0x78, 0x07, 0x9E, 0x01, 0xE0, 0xF8, 0x0F, 0x1C, 0x03,
|
||||
0xC0, 0xF0, 0x1C, 0x3C, 0x07, 0x81, 0xE0, 0x38, 0x78, 0x1E, 0x03, 0xC0,
|
||||
0xF0, 0xF0, 0x3C, 0x07, 0xC1, 0xE0, 0xE0, 0x78, 0x07, 0x83, 0x81, 0xE0,
|
||||
0xF0, 0x0F, 0x0F, 0x03, 0xC3, 0xC0, 0x1E, 0x1E, 0x07, 0x87, 0x80, 0x3C,
|
||||
0x3C, 0x07, 0x8F, 0x00, 0x3C, 0x70, 0x0F, 0x1E, 0x00, 0x79, 0xE0, 0x1E,
|
||||
0x38, 0x00, 0xF3, 0xC0, 0x1C, 0xF0, 0x01, 0xE7, 0x00, 0x3D, 0xE0, 0x01,
|
||||
0xFE, 0x00, 0x7B, 0xC0, 0x03, 0xFC, 0x00, 0xF7, 0x00, 0x07, 0xF8, 0x00,
|
||||
0xFE, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x03, 0xF8, 0x00,
|
||||
0x1F, 0x80, 0x03, 0xE0, 0x00, 0x3F, 0x00, 0x07, 0xC0, 0x00, 0x3C, 0x00,
|
||||
0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xCF, 0x80, 0x01, 0xF0, 0xF8, 0x00,
|
||||
0x3C, 0x0F, 0x80, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x1F, 0x00, 0x78, 0x01,
|
||||
0xF0, 0x1F, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xE0, 0xF0, 0x00, 0x3E, 0x3C,
|
||||
0x00, 0x03, 0xCF, 0x80, 0x00, 0x7D, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x00,
|
||||
0x7F, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x3F, 0x80,
|
||||
0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x79, 0xF0, 0x00, 0x1F,
|
||||
0x1E, 0x00, 0x07, 0xC3, 0xE0, 0x00, 0xF0, 0x3E, 0x00, 0x3E, 0x03, 0xC0,
|
||||
0x0F, 0x80, 0x7C, 0x03, 0xE0, 0x07, 0xC0, 0x78, 0x00, 0x7C, 0x1F, 0x00,
|
||||
0x0F, 0x87, 0xC0, 0x00, 0xF8, 0xF0, 0x00, 0x0F, 0xBE, 0x00, 0x01, 0xF0,
|
||||
0xF8, 0x00, 0x03, 0xE7, 0xC0, 0x00, 0x3E, 0x7C, 0x00, 0x07, 0xC3, 0xE0,
|
||||
0x00, 0x78, 0x1E, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF0, 0x0F, 0x80, 0x1E,
|
||||
0x00, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x3C, 0x00, 0x3C, 0x07, 0xC0, 0x03,
|
||||
0xE0, 0x78, 0x00, 0x1F, 0x0F, 0x00, 0x00, 0xF1, 0xF0, 0x00, 0x0F, 0x9E,
|
||||
0x00, 0x00, 0x7B, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00,
|
||||
0x01, 0xF8, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F,
|
||||
0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00,
|
||||
0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
|
||||
0xF0, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xFF,
|
||||
0xFF, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x03, 0xE0, 0x00, 0x07,
|
||||
0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3E,
|
||||
0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00,
|
||||
0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
|
||||
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
|
||||
0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF,
|
||||
0xFF, 0xFF, 0xC0, 0x0E, 0x00, 0xE0, 0x06, 0x00, 0x60, 0x07, 0x00, 0x30,
|
||||
0x03, 0x00, 0x38, 0x01, 0x80, 0x18, 0x01, 0xC0, 0x0C, 0x00, 0xC0, 0x0E,
|
||||
0x00, 0x60, 0x06, 0x00, 0x70, 0x03, 0x00, 0x30, 0x03, 0x80, 0x38, 0x01,
|
||||
0x80, 0x1C, 0x01, 0xC0, 0x0C, 0x00, 0xC0, 0x0E, 0x00, 0x60, 0x06, 0x00,
|
||||
0x70, 0x03, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0xE0,
|
||||
0x07, 0xE0, 0x07, 0xE0, 0x0E, 0x70, 0x0E, 0x70, 0x1C, 0x38, 0x1C, 0x38,
|
||||
0x1C, 0x1C, 0x38, 0x1C, 0x38, 0x1C, 0x70, 0x0E, 0x70, 0x0E, 0x70, 0x07,
|
||||
0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF8, 0x3E, 0x0F,
|
||||
0x03, 0xC0, 0xF0, 0x38, 0x03, 0xFC, 0x00, 0x3F, 0xFC, 0x01, 0xFF, 0xFC,
|
||||
0x0F, 0xE3, 0xF0, 0x3C, 0x03, 0xE0, 0xE0, 0x07, 0x87, 0x80, 0x1E, 0x1E,
|
||||
0x00, 0x78, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x80, 0x01, 0xFE, 0x01, 0xFF,
|
||||
0xF8, 0x1F, 0xFF, 0xE0, 0xFF, 0x87, 0x87, 0xE0, 0x1E, 0x1E, 0x00, 0x78,
|
||||
0xF0, 0x01, 0xE3, 0xC0, 0x07, 0x8F, 0x00, 0x1E, 0x3C, 0x00, 0xF8, 0x78,
|
||||
0x07, 0xE1, 0xF0, 0x7F, 0x83, 0xFF, 0xDF, 0xC7, 0xFE, 0x3F, 0x07, 0xE0,
|
||||
0x7C, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0,
|
||||
0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x1F, 0x80, 0xE7, 0xFE, 0x0E,
|
||||
0xFF, 0xF0, 0xFF, 0x1F, 0x8F, 0xC0, 0x7C, 0xF8, 0x03, 0xCF, 0x00, 0x1E,
|
||||
0xF0, 0x01, 0xEF, 0x00, 0x1E, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00,
|
||||
0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0x00,
|
||||
0x1E, 0xF0, 0x01, 0xEF, 0x00, 0x1E, 0xF8, 0x03, 0xCF, 0xC0, 0x7C, 0xFF,
|
||||
0x1F, 0x8E, 0xFF, 0xF0, 0xE7, 0xFE, 0x00, 0x1F, 0x80, 0x01, 0xFC, 0x00,
|
||||
0x7F, 0xF0, 0x0F, 0xFF, 0x81, 0xF9, 0xFC, 0x3E, 0x03, 0xC3, 0xC0, 0x1E,
|
||||
0x78, 0x01, 0xE7, 0x80, 0x1E, 0x78, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00,
|
||||
0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x70, 0x00, 0xE7, 0x80, 0x0E, 0x78, 0x01, 0xE3, 0xC0, 0x1E, 0x3E,
|
||||
0x03, 0xC1, 0xF9, 0xFC, 0x0F, 0xFF, 0x80, 0x7F, 0xF0, 0x01, 0xFC, 0x00,
|
||||
0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00,
|
||||
0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x1F, 0x87, 0x07, 0xFE, 0x70, 0xFF,
|
||||
0xF7, 0x1F, 0xCF, 0xF3, 0xE0, 0x3F, 0x3C, 0x01, 0xF7, 0x80, 0x0F, 0x78,
|
||||
0x00, 0xF7, 0x80, 0x0F, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F,
|
||||
0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x77, 0x80, 0x0F,
|
||||
0x78, 0x00, 0xF7, 0x80, 0x0F, 0x3C, 0x01, 0xF3, 0xE0, 0x3F, 0x1F, 0x8F,
|
||||
0xF0, 0xFF, 0xF7, 0x07, 0xFE, 0x70, 0x1F, 0x80, 0x01, 0xFC, 0x00, 0x3F,
|
||||
0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0x1F, 0x83, 0xE0, 0x3E, 0x1E, 0x00, 0xF1,
|
||||
0xE0, 0x03, 0xCF, 0x00, 0x1E, 0x78, 0x00, 0xF3, 0x80, 0x03, 0xBC, 0x00,
|
||||
0x1D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x1E,
|
||||
0x00, 0x00, 0x70, 0x00, 0x03, 0xC0, 0x07, 0x9E, 0x00, 0x3C, 0x78, 0x03,
|
||||
0xC3, 0xE0, 0x3E, 0x0F, 0xC7, 0xE0, 0x3F, 0xFE, 0x00, 0xFF, 0xE0, 0x01,
|
||||
0xFC, 0x00, 0x03, 0xC3, 0xF1, 0xFC, 0x7C, 0x1E, 0x07, 0x01, 0xC0, 0x70,
|
||||
0x1C, 0x3F, 0xFF, 0xFF, 0xFF, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07,
|
||||
0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0,
|
||||
0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x01, 0xF8, 0x00, 0x7F, 0xCF, 0x0F,
|
||||
0xFE, 0x71, 0xF8, 0xF7, 0x3E, 0x03, 0xF3, 0xC0, 0x1F, 0x78, 0x01, 0xF7,
|
||||
0x80, 0x0F, 0x78, 0x00, 0xF7, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F,
|
||||
0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0x70, 0x00,
|
||||
0xF7, 0x80, 0x0F, 0x78, 0x01, 0xF3, 0xC0, 0x1F, 0x3E, 0x03, 0xF1, 0xF8,
|
||||
0xFF, 0x0F, 0xFE, 0xF0, 0x7F, 0xCF, 0x01, 0xF0, 0xF0, 0x00, 0x0F, 0x78,
|
||||
0x00, 0xF7, 0x80, 0x1E, 0x7C, 0x01, 0xE3, 0xE0, 0x7C, 0x1F, 0xFF, 0x80,
|
||||
0xFF, 0xF0, 0x03, 0xFC, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03,
|
||||
0x80, 0x00, 0xE0, 0x00, 0x38, 0x00, 0x0E, 0x00, 0x03, 0x87, 0xF0, 0xE7,
|
||||
0xFE, 0x3B, 0xFF, 0xCF, 0xE1, 0xFB, 0xF0, 0x1E, 0xF8, 0x07, 0xBC, 0x00,
|
||||
0xFF, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F,
|
||||
0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0,
|
||||
0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00,
|
||||
0xFE, 0x00, 0x3C, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF8, 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0x00, 0x00, 0x0E, 0x1C,
|
||||
0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87,
|
||||
0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x71, 0xFF,
|
||||
0xFF, 0x7C, 0xE0, 0x00, 0x1C, 0x00, 0x03, 0x80, 0x00, 0x70, 0x00, 0x0E,
|
||||
0x00, 0x01, 0xC0, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0xE0, 0x0F, 0x9C,
|
||||
0x03, 0xE3, 0x80, 0xF8, 0x70, 0x3E, 0x0E, 0x0F, 0x81, 0xC3, 0xE0, 0x38,
|
||||
0xF8, 0x07, 0x3E, 0x00, 0xEF, 0xC0, 0x1F, 0xF8, 0x03, 0xFF, 0x80, 0x7E,
|
||||
0xF8, 0x0F, 0x8F, 0x01, 0xE1, 0xF0, 0x38, 0x1F, 0x07, 0x01, 0xE0, 0xE0,
|
||||
0x3E, 0x1C, 0x03, 0xC3, 0x80, 0x7C, 0x70, 0x07, 0xCE, 0x00, 0x79, 0xC0,
|
||||
0x0F, 0xB8, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0xF8, 0x0F, 0xC7, 0x3F, 0xE1, 0xFF, 0xBB,
|
||||
0xFF, 0x9F, 0xFD, 0xFC, 0x7F, 0xE3, 0xFF, 0x80, 0xFC, 0x07, 0xF8, 0x07,
|
||||
0xC0, 0x3F, 0xC0, 0x1E, 0x00, 0xFC, 0x00, 0xF0, 0x07, 0xE0, 0x07, 0x00,
|
||||
0x3F, 0x00, 0x38, 0x01, 0xF8, 0x01, 0xC0, 0x0F, 0xC0, 0x0E, 0x00, 0x7E,
|
||||
0x00, 0x70, 0x03, 0xF0, 0x03, 0x80, 0x1F, 0x80, 0x1C, 0x00, 0xFC, 0x00,
|
||||
0xE0, 0x07, 0xE0, 0x07, 0x00, 0x3F, 0x00, 0x38, 0x01, 0xF8, 0x01, 0xC0,
|
||||
0x0F, 0xC0, 0x0E, 0x00, 0x7E, 0x00, 0x70, 0x03, 0xF0, 0x03, 0x80, 0x1F,
|
||||
0x80, 0x1C, 0x00, 0xFC, 0x00, 0xE0, 0x07, 0x00, 0xF8, 0x38, 0xFF, 0x8E,
|
||||
0x7F, 0xF3, 0xB8, 0x7E, 0xFC, 0x07, 0xBE, 0x01, 0xFF, 0x00, 0x3F, 0xC0,
|
||||
0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03,
|
||||
0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE,
|
||||
0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80,
|
||||
0x0F, 0x01, 0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0x1F, 0x83,
|
||||
0xE0, 0x3E, 0x1E, 0x00, 0xF1, 0xE0, 0x03, 0xCF, 0x00, 0x1E, 0x78, 0x00,
|
||||
0xF7, 0x80, 0x03, 0xBC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8,
|
||||
0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0x78, 0x00, 0xF3, 0xC0, 0x07,
|
||||
0x9E, 0x00, 0x3C, 0x78, 0x03, 0xC3, 0xE0, 0x3E, 0x0F, 0xC7, 0xE0, 0x3F,
|
||||
0xFE, 0x00, 0xFF, 0xE0, 0x01, 0xFC, 0x00, 0x00, 0xF8, 0x0E, 0x3F, 0xE0,
|
||||
0xEF, 0xFF, 0x0E, 0xF1, 0xF8, 0xFC, 0x07, 0xCF, 0x80, 0x3C, 0xF8, 0x01,
|
||||
0xEF, 0x00, 0x1E, 0xF0, 0x01, 0xEE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xF0,
|
||||
0x01, 0xEF, 0x00, 0x1E, 0xF0, 0x01, 0xEF, 0x80, 0x3C, 0xFC, 0x07, 0xCF,
|
||||
0xF1, 0xF8, 0xEF, 0xFF, 0x0E, 0x7F, 0xE0, 0xE1, 0xF8, 0x0E, 0x00, 0x00,
|
||||
0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00, 0x0E, 0x00, 0x00, 0xE0, 0x00,
|
||||
0x0E, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x7F, 0xE7, 0x0F,
|
||||
0xFF, 0x71, 0xFC, 0xFF, 0x3E, 0x03, 0xF3, 0xC0, 0x1F, 0x78, 0x00, 0xF7,
|
||||
0x80, 0x0F, 0x78, 0x00, 0xF7, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07,
|
||||
0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0x78, 0x00,
|
||||
0xF7, 0x80, 0x0F, 0x78, 0x00, 0xF3, 0xC0, 0x1F, 0x3E, 0x03, 0xF1, 0xF8,
|
||||
0xFF, 0x0F, 0xFF, 0x70, 0x7F, 0xE7, 0x01, 0xF8, 0x70, 0x00, 0x07, 0x00,
|
||||
0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x70,
|
||||
0x00, 0x07, 0x00, 0x00, 0x70, 0x01, 0xF9, 0xFE, 0xFF, 0xBF, 0xFE, 0x3E,
|
||||
0x0F, 0x03, 0xC0, 0xF0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03,
|
||||
0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0x03,
|
||||
0xF8, 0x01, 0xFF, 0xC0, 0x7F, 0xFC, 0x1F, 0x8F, 0xC7, 0xC0, 0x78, 0xF0,
|
||||
0x07, 0x9E, 0x00, 0xF3, 0xC0, 0x00, 0x78, 0x00, 0x0F, 0xC0, 0x00, 0xFF,
|
||||
0x00, 0x0F, 0xFE, 0x00, 0xFF, 0xF0, 0x03, 0xFF, 0x00, 0x07, 0xF0, 0x00,
|
||||
0x1E, 0x00, 0x01, 0xFE, 0x00, 0x3D, 0xE0, 0x07, 0xBC, 0x00, 0xF7, 0xC0,
|
||||
0x3C, 0xFE, 0x3F, 0x8F, 0xFF, 0xE0, 0xFF, 0xF8, 0x03, 0xF8, 0x00, 0x1C,
|
||||
0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x0F, 0xFF, 0xFF, 0xFF, 0xC7, 0x01,
|
||||
0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xC0, 0x70,
|
||||
0x1C, 0x07, 0x01, 0xC0, 0x70, 0x1C, 0x07, 0x81, 0xE0, 0x7F, 0x1F, 0xC1,
|
||||
0xF0, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03,
|
||||
0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE,
|
||||
0x00, 0x3F, 0x80, 0x0F, 0xE0, 0x03, 0xF8, 0x00, 0xFE, 0x00, 0x3F, 0x80,
|
||||
0x0F, 0xE0, 0x07, 0xF8, 0x01, 0xFF, 0x00, 0xFF, 0xC0, 0x7F, 0xFC, 0x3F,
|
||||
0xDF, 0xFE, 0xF3, 0xFF, 0x3C, 0x3F, 0x00, 0x78, 0x00, 0x7B, 0xC0, 0x07,
|
||||
0x9E, 0x00, 0x3C, 0x78, 0x01, 0xE3, 0xC0, 0x1E, 0x1E, 0x00, 0xF0, 0x78,
|
||||
0x07, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0x78, 0x1C, 0x03, 0xC1, 0xE0,
|
||||
0x1E, 0x0F, 0x00, 0x78, 0x70, 0x03, 0xC7, 0x80, 0x1E, 0x38, 0x00, 0x71,
|
||||
0xC0, 0x03, 0xDE, 0x00, 0x1E, 0xE0, 0x00, 0x77, 0x00, 0x03, 0xF8, 0x00,
|
||||
0x1F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x07, 0xC0, 0x3E,
|
||||
0xF0, 0x0F, 0x80, 0x79, 0xE0, 0x1F, 0x00, 0xF3, 0xC0, 0x7F, 0x01, 0xE3,
|
||||
0xC0, 0xFE, 0x07, 0x87, 0x81, 0xDC, 0x0F, 0x0F, 0x03, 0xB8, 0x1E, 0x0E,
|
||||
0x0F, 0x78, 0x38, 0x1E, 0x1E, 0xF0, 0xF0, 0x3C, 0x38, 0xE1, 0xE0, 0x78,
|
||||
0x71, 0xC3, 0xC0, 0x70, 0xE3, 0xC7, 0x00, 0xF3, 0xC7, 0x9E, 0x01, 0xE7,
|
||||
0x07, 0x3C, 0x01, 0xCE, 0x0E, 0x70, 0x03, 0x9C, 0x1E, 0xE0, 0x07, 0xF8,
|
||||
0x3F, 0xC0, 0x0F, 0xE0, 0x3F, 0x80, 0x0F, 0xC0, 0x7E, 0x00, 0x1F, 0x80,
|
||||
0xFC, 0x00, 0x3F, 0x01, 0xF8, 0x00, 0x3C, 0x01, 0xE0, 0x00, 0x78, 0x03,
|
||||
0xC0, 0x00, 0x78, 0x01, 0xF3, 0xC0, 0x1E, 0x1E, 0x03, 0xC1, 0xE0, 0x38,
|
||||
0x0F, 0x07, 0x80, 0x78, 0xF0, 0x07, 0x8E, 0x00, 0x3D, 0xE0, 0x01, 0xFC,
|
||||
0x00, 0x1F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F,
|
||||
0xC0, 0x03, 0xFE, 0x00, 0x39, 0xE0, 0x07, 0x8F, 0x00, 0xF0, 0xF0, 0x1E,
|
||||
0x07, 0x81, 0xE0, 0x3C, 0x3C, 0x03, 0xC7, 0x80, 0x1E, 0x78, 0x00, 0xF0,
|
||||
0x70, 0x00, 0xF7, 0x80, 0x0F, 0x78, 0x01, 0xE3, 0x80, 0x1E, 0x3C, 0x01,
|
||||
0xE3, 0xC0, 0x3C, 0x1C, 0x03, 0xC1, 0xE0, 0x38, 0x1E, 0x07, 0x80, 0xE0,
|
||||
0x78, 0x0F, 0x07, 0x00, 0xF0, 0xF0, 0x07, 0x0F, 0x00, 0x78, 0xE0, 0x07,
|
||||
0x9E, 0x00, 0x39, 0xE0, 0x03, 0xDC, 0x00, 0x3F, 0xC0, 0x01, 0xF8, 0x00,
|
||||
0x1F, 0x80, 0x01, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0xE0, 0x00, 0x1E, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x03, 0xC0,
|
||||
0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x7F,
|
||||
0xFF, 0xCF, 0xFF, 0xF9, 0xFF, 0xFF, 0x00, 0x03, 0xE0, 0x00, 0x78, 0x00,
|
||||
0x1E, 0x00, 0x07, 0x80, 0x01, 0xF0, 0x00, 0x7C, 0x00, 0x0F, 0x00, 0x03,
|
||||
0xC0, 0x00, 0xF0, 0x00, 0x3E, 0x00, 0x0F, 0x80, 0x01, 0xE0, 0x00, 0x78,
|
||||
0x00, 0x1E, 0x00, 0x07, 0xC0, 0x01, 0xF0, 0x00, 0x3C, 0x00, 0x0F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x03, 0xC3, 0xF0, 0xFC, 0x78, 0x1E,
|
||||
0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81,
|
||||
0xC0, 0x70, 0x1C, 0x0F, 0x07, 0xC3, 0xE0, 0xE0, 0x3E, 0x07, 0x80, 0xF0,
|
||||
0x1C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07,
|
||||
0x81, 0xE0, 0x78, 0x1E, 0x03, 0xF0, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0,
|
||||
0xF8, 0x3F, 0x0F, 0xE0, 0x78, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03,
|
||||
0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0F, 0x01, 0xC0, 0x78,
|
||||
0x0F, 0x01, 0xC0, 0xF0, 0x78, 0x3C, 0x0F, 0x03, 0x80, 0xE0, 0x38, 0x0E,
|
||||
0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x1E, 0x3F, 0x8F,
|
||||
0xC3, 0xE0, 0x1E, 0x00, 0x07, 0xF0, 0x0D, 0xFF, 0x81, 0xB8, 0xF8, 0x76,
|
||||
0x07, 0xFF, 0xC0, 0x7F, 0x80, 0x03, 0xE0 };
|
||||
|
||||
const GFXglyph FreeSans22pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 11, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 4, 31, 14, 5, -30 }, // 0x21 '!'
|
||||
{ 17, 11, 11, 14, 2, -30 }, // 0x22 '"'
|
||||
{ 33, 22, 31, 24, 1, -29 }, // 0x23 '#'
|
||||
{ 119, 21, 38, 24, 1, -32 }, // 0x24 '$'
|
||||
{ 219, 36, 32, 38, 1, -30 }, // 0x25 '%'
|
||||
{ 363, 25, 32, 29, 2, -30 }, // 0x26 '&'
|
||||
{ 463, 4, 11, 9, 2, -30 }, // 0x27 '''
|
||||
{ 469, 10, 41, 14, 3, -30 }, // 0x28 '('
|
||||
{ 521, 9, 41, 14, 2, -30 }, // 0x29 ')'
|
||||
{ 568, 13, 12, 17, 2, -30 }, // 0x2A '*'
|
||||
{ 588, 21, 21, 25, 2, -19 }, // 0x2B '+'
|
||||
{ 644, 4, 11, 12, 4, -3 }, // 0x2C ','
|
||||
{ 650, 10, 3, 14, 2, -12 }, // 0x2D '-'
|
||||
{ 654, 5, 4, 11, 3, -3 }, // 0x2E '.'
|
||||
{ 657, 12, 32, 12, 0, -30 }, // 0x2F '/'
|
||||
{ 705, 20, 32, 24, 2, -30 }, // 0x30 '0'
|
||||
{ 785, 11, 31, 24, 4, -30 }, // 0x31 '1'
|
||||
{ 828, 21, 31, 24, 1, -30 }, // 0x32 '2'
|
||||
{ 910, 21, 32, 24, 1, -30 }, // 0x33 '3'
|
||||
{ 994, 21, 31, 24, 1, -30 }, // 0x34 '4'
|
||||
{ 1076, 21, 32, 24, 1, -30 }, // 0x35 '5'
|
||||
{ 1160, 20, 32, 24, 2, -30 }, // 0x36 '6'
|
||||
{ 1240, 20, 31, 24, 2, -30 }, // 0x37 '7'
|
||||
{ 1318, 20, 32, 24, 2, -30 }, // 0x38 '8'
|
||||
{ 1398, 20, 32, 24, 2, -30 }, // 0x39 '9'
|
||||
{ 1478, 5, 23, 11, 3, -22 }, // 0x3A ':'
|
||||
{ 1493, 5, 30, 11, 3, -22 }, // 0x3B ';'
|
||||
{ 1512, 21, 21, 25, 2, -19 }, // 0x3C '<'
|
||||
{ 1568, 21, 10, 25, 2, -14 }, // 0x3D '='
|
||||
{ 1595, 21, 21, 25, 2, -19 }, // 0x3E '>'
|
||||
{ 1651, 19, 32, 24, 3, -31 }, // 0x3F '?'
|
||||
{ 1727, 40, 38, 44, 1, -31 }, // 0x40 '@'
|
||||
{ 1917, 27, 31, 29, 1, -30 }, // 0x41 'A'
|
||||
{ 2022, 24, 31, 29, 3, -30 }, // 0x42 'B'
|
||||
{ 2115, 27, 33, 31, 2, -31 }, // 0x43 'C'
|
||||
{ 2227, 25, 31, 30, 3, -30 }, // 0x44 'D'
|
||||
{ 2324, 23, 31, 27, 3, -30 }, // 0x45 'E'
|
||||
{ 2414, 22, 31, 26, 3, -30 }, // 0x46 'F'
|
||||
{ 2500, 28, 33, 33, 2, -31 }, // 0x47 'G'
|
||||
{ 2616, 25, 31, 31, 3, -30 }, // 0x48 'H'
|
||||
{ 2713, 4, 31, 12, 4, -30 }, // 0x49 'I'
|
||||
{ 2729, 18, 32, 23, 1, -30 }, // 0x4A 'J'
|
||||
{ 2801, 25, 31, 29, 3, -30 }, // 0x4B 'K'
|
||||
{ 2898, 20, 31, 24, 3, -30 }, // 0x4C 'L'
|
||||
{ 2976, 30, 31, 36, 3, -30 }, // 0x4D 'M'
|
||||
{ 3093, 25, 31, 31, 3, -30 }, // 0x4E 'N'
|
||||
{ 3190, 30, 33, 34, 2, -31 }, // 0x4F 'O'
|
||||
{ 3314, 23, 31, 28, 3, -30 }, // 0x50 'P'
|
||||
{ 3404, 30, 35, 34, 2, -31 }, // 0x51 'Q'
|
||||
{ 3536, 26, 31, 31, 3, -30 }, // 0x52 'R'
|
||||
{ 3637, 25, 33, 29, 2, -31 }, // 0x53 'S'
|
||||
{ 3741, 25, 31, 27, 1, -30 }, // 0x54 'T'
|
||||
{ 3838, 25, 32, 31, 3, -30 }, // 0x55 'U'
|
||||
{ 3938, 26, 31, 28, 1, -30 }, // 0x56 'V'
|
||||
{ 4039, 39, 31, 40, 1, -30 }, // 0x57 'W'
|
||||
{ 4191, 27, 31, 28, 1, -30 }, // 0x58 'X'
|
||||
{ 4296, 28, 31, 29, 1, -30 }, // 0x59 'Y'
|
||||
{ 4405, 24, 31, 27, 1, -30 }, // 0x5A 'Z'
|
||||
{ 4498, 8, 40, 12, 3, -30 }, // 0x5B '['
|
||||
{ 4538, 12, 32, 12, 0, -30 }, // 0x5C '\'
|
||||
{ 4586, 8, 40, 12, 1, -30 }, // 0x5D ']'
|
||||
{ 4626, 16, 16, 20, 2, -30 }, // 0x5E '^'
|
||||
{ 4658, 26, 2, 24, -1, 7 }, // 0x5F '_'
|
||||
{ 4665, 9, 6, 11, 1, -31 }, // 0x60 '`'
|
||||
{ 4672, 22, 25, 23, 1, -23 }, // 0x61 'a'
|
||||
{ 4741, 20, 32, 24, 3, -30 }, // 0x62 'b'
|
||||
{ 4821, 20, 25, 22, 1, -23 }, // 0x63 'c'
|
||||
{ 4884, 20, 32, 24, 1, -30 }, // 0x64 'd'
|
||||
{ 4964, 21, 25, 23, 1, -23 }, // 0x65 'e'
|
||||
{ 5030, 10, 32, 12, 1, -31 }, // 0x66 'f'
|
||||
{ 5070, 20, 33, 24, 1, -23 }, // 0x67 'g'
|
||||
{ 5153, 18, 31, 23, 3, -30 }, // 0x68 'h'
|
||||
{ 5223, 3, 31, 10, 3, -30 }, // 0x69 'i'
|
||||
{ 5235, 7, 40, 10, 0, -30 }, // 0x6A 'j'
|
||||
{ 5270, 19, 31, 22, 3, -30 }, // 0x6B 'k'
|
||||
{ 5344, 3, 31, 9, 3, -30 }, // 0x6C 'l'
|
||||
{ 5356, 29, 24, 35, 3, -23 }, // 0x6D 'm'
|
||||
{ 5443, 18, 24, 23, 3, -23 }, // 0x6E 'n'
|
||||
{ 5497, 21, 25, 23, 1, -23 }, // 0x6F 'o'
|
||||
{ 5563, 20, 33, 24, 3, -23 }, // 0x70 'p'
|
||||
{ 5646, 20, 33, 24, 1, -23 }, // 0x71 'q'
|
||||
{ 5729, 10, 24, 14, 3, -23 }, // 0x72 'r'
|
||||
{ 5759, 19, 25, 21, 1, -23 }, // 0x73 's'
|
||||
{ 5819, 10, 30, 12, 1, -28 }, // 0x74 't'
|
||||
{ 5857, 18, 24, 23, 3, -22 }, // 0x75 'u'
|
||||
{ 5911, 21, 23, 21, 0, -22 }, // 0x76 'v'
|
||||
{ 5972, 31, 23, 31, 0, -22 }, // 0x77 'w'
|
||||
{ 6062, 20, 23, 21, 0, -22 }, // 0x78 'x'
|
||||
{ 6120, 20, 33, 21, 0, -22 }, // 0x79 'y'
|
||||
{ 6203, 19, 23, 21, 1, -22 }, // 0x7A 'z'
|
||||
{ 6258, 10, 40, 14, 2, -30 }, // 0x7B '{'
|
||||
{ 6308, 3, 41, 11, 4, -30 }, // 0x7C '|'
|
||||
{ 6324, 10, 40, 14, 2, -30 }, // 0x7D '}'
|
||||
{ 6374, 19, 7, 22, 1, -18 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeSans22pt7b PROGMEM = {
|
||||
(uint8_t *)FreeSans22pt7bBitmaps,
|
||||
(GFXglyph *)FreeSans22pt7bGlyphs,
|
||||
0x20, 0x7E, 52 };
|
||||
|
||||
// Approx. 7063 bytes
|
252
FreeSansBold11pt7b.h
Normal file
252
FreeSansBold11pt7b.h
Normal file
@ -0,0 +1,252 @@
|
||||
const uint8_t FreeSansBold11pt7bBitmaps[] PROGMEM = {
|
||||
0x00, 0xFF, 0xFF, 0xF7, 0x66, 0x66, 0x66, 0x0F, 0xFF, 0xE7, 0xE7, 0xE7,
|
||||
0xE7, 0x43, 0x42, 0x0C, 0xE0, 0xCC, 0x1C, 0xC1, 0xCC, 0x7F, 0xF7, 0xFF,
|
||||
0x19, 0x83, 0x98, 0x39, 0x8F, 0xFE, 0xFF, 0xE3, 0x30, 0x73, 0x07, 0x30,
|
||||
0x63, 0x06, 0x70, 0x06, 0x03, 0xF0, 0xFF, 0x3B, 0x77, 0x6E, 0xED, 0xDD,
|
||||
0x83, 0xF0, 0x3F, 0x81, 0xF8, 0x1F, 0x83, 0x7E, 0x6E, 0xED, 0xDF, 0xF9,
|
||||
0xFE, 0x1F, 0x80, 0xC0, 0x18, 0x00, 0x1C, 0x04, 0x0F, 0xE1, 0x81, 0x9C,
|
||||
0x20, 0x31, 0x8C, 0x0E, 0x31, 0x00, 0xC6, 0x60, 0x1F, 0xC8, 0x01, 0xF3,
|
||||
0x00, 0x00, 0x47, 0x80, 0x19, 0xF8, 0x06, 0x73, 0x00, 0xCC, 0x70, 0x31,
|
||||
0x8E, 0x06, 0x39, 0x81, 0x83, 0xF0, 0x20, 0x3C, 0x0F, 0x00, 0x7E, 0x03,
|
||||
0x9C, 0x0E, 0x70, 0x39, 0xC0, 0xFE, 0x01, 0xF0, 0x07, 0x80, 0x7F, 0x39,
|
||||
0xDE, 0xEE, 0x3F, 0x38, 0x7C, 0xF0, 0xE1, 0xEF, 0xC7, 0xFB, 0x87, 0xCF,
|
||||
0xFF, 0xF6, 0x80, 0x18, 0xE3, 0x1C, 0x61, 0x8E, 0x38, 0xE3, 0x8E, 0x38,
|
||||
0xE3, 0x86, 0x18, 0x70, 0xC3, 0x86, 0x61, 0xC3, 0x0E, 0x18, 0x61, 0xC7,
|
||||
0x1C, 0x71, 0xC7, 0x1C, 0x71, 0x86, 0x38, 0xC7, 0x18, 0x18, 0x18, 0x7E,
|
||||
0x7E, 0x3C, 0x3C, 0x24, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0xFF, 0xFF, 0xFF,
|
||||
0xFC, 0x38, 0x0E, 0x03, 0x80, 0xFF, 0x92, 0xF0, 0xFF, 0xFE, 0xFF, 0x80,
|
||||
0x0C, 0x30, 0x86, 0x18, 0x41, 0x0C, 0x30, 0x82, 0x18, 0x41, 0x0C, 0x30,
|
||||
0x3E, 0x1F, 0xE7, 0x7B, 0x8F, 0xE1, 0xF8, 0x7E, 0x1F, 0x87, 0xE1, 0xF8,
|
||||
0x7E, 0x1F, 0x87, 0xE3, 0xDF, 0xE7, 0xF8, 0x78, 0x06, 0x1C, 0x7F, 0xFF,
|
||||
0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x3E, 0x1F,
|
||||
0xEF, 0xFF, 0x87, 0xE1, 0xF8, 0x70, 0x1C, 0x0E, 0x07, 0x83, 0xC3, 0xC1,
|
||||
0xE0, 0x70, 0x3F, 0xFF, 0xFF, 0xFF, 0x3E, 0x1F, 0xEF, 0x7B, 0x8F, 0xE1,
|
||||
0xC0, 0xE0, 0x38, 0x3C, 0x0F, 0x80, 0xF0, 0x1F, 0x87, 0xE1, 0xFF, 0xF7,
|
||||
0xF8, 0xF8, 0x07, 0x83, 0xE0, 0xF8, 0x6E, 0x1B, 0x8C, 0xE7, 0x39, 0x8E,
|
||||
0xE3, 0xB0, 0xEF, 0xFF, 0xFF, 0x03, 0xC0, 0xE0, 0x38, 0x0E, 0x7F, 0xDF,
|
||||
0xF7, 0xFD, 0x80, 0x60, 0x3F, 0xCF, 0xFB, 0xDE, 0xE1, 0xC0, 0x70, 0x1F,
|
||||
0x87, 0xE1, 0xFF, 0xE7, 0xF8, 0xF8, 0x1F, 0x0F, 0xE7, 0xBF, 0x87, 0xE0,
|
||||
0x38, 0x0F, 0xF3, 0xFE, 0xF3, 0xF8, 0x7E, 0x1F, 0x87, 0xE1, 0xDF, 0xE7,
|
||||
0xF8, 0x78, 0xFF, 0xFF, 0xFF, 0xFC, 0x07, 0x03, 0x81, 0xC0, 0x70, 0x38,
|
||||
0x0E, 0x07, 0x01, 0xC0, 0x70, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x1F, 0x07,
|
||||
0xF9, 0xE7, 0x38, 0x77, 0x0E, 0xE1, 0x8F, 0xE1, 0xFE, 0x71, 0xEE, 0x1F,
|
||||
0x83, 0xF8, 0x77, 0x0E, 0xFF, 0xCF, 0xF0, 0xF8, 0x3E, 0x1F, 0xCF, 0x7B,
|
||||
0x87, 0xE1, 0xF0, 0x7E, 0x1F, 0x8F, 0xFF, 0xDF, 0xF0, 0x1C, 0x07, 0xE3,
|
||||
0xBF, 0xE7, 0xF0, 0xF8, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0xFF, 0x80, 0x00,
|
||||
0xFF, 0x92, 0xF0, 0x00, 0xC1, 0xF1, 0xFB, 0xF0, 0xE0, 0x3C, 0x07, 0xE0,
|
||||
0x3F, 0x03, 0xC0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xC0, 0x3E, 0x07, 0xF0, 0x3F, 0x01, 0xC0, 0xF1, 0xFB,
|
||||
0xF8, 0xF0, 0x20, 0x00, 0x1F, 0x07, 0xF9, 0xFF, 0x38, 0xFE, 0x0F, 0xC1,
|
||||
0xC0, 0x78, 0x1E, 0x07, 0x80, 0xE0, 0x38, 0x07, 0x00, 0x00, 0x1C, 0x03,
|
||||
0x80, 0x70, 0x01, 0xFC, 0x00, 0xFF, 0xE0, 0x78, 0x1E, 0x1C, 0x00, 0xE3,
|
||||
0x00, 0x0C, 0xC1, 0xEC, 0xF8, 0x7F, 0x1E, 0x18, 0x63, 0xC6, 0x0C, 0x78,
|
||||
0xC1, 0x8F, 0x18, 0x61, 0xE3, 0x0C, 0x7C, 0x63, 0x9D, 0xCF, 0xFF, 0x18,
|
||||
0x73, 0xC3, 0x80, 0x00, 0x3C, 0x04, 0x01, 0xFF, 0x80, 0x0F, 0xE0, 0x00,
|
||||
0x03, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3F, 0x00, 0xEE, 0x01, 0xDC, 0x03,
|
||||
0xBC, 0x0E, 0x38, 0x1C, 0x70, 0x78, 0xF0, 0xFF, 0xE1, 0xFF, 0xC7, 0xFF,
|
||||
0xCE, 0x03, 0x9C, 0x07, 0x78, 0x0F, 0xFF, 0x8F, 0xFE, 0xFF, 0xEE, 0x0F,
|
||||
0xE0, 0x7E, 0x0F, 0xFF, 0xEF, 0xFC, 0xFF, 0xEE, 0x07, 0xE0, 0x7E, 0x07,
|
||||
0xE0, 0x7F, 0xFF, 0xFF, 0xEF, 0xFC, 0x0F, 0xC0, 0x7F, 0xC3, 0xFF, 0x9E,
|
||||
0x1E, 0xF0, 0x3B, 0x80, 0x0E, 0x00, 0x38, 0x00, 0xE0, 0x03, 0x80, 0x0E,
|
||||
0x03, 0xFC, 0x0E, 0x78, 0x78, 0xFF, 0xE3, 0xFF, 0x03, 0xF0, 0xFF, 0x87,
|
||||
0xFF, 0x3F, 0xF9, 0xC1, 0xEE, 0x07, 0x70, 0x3B, 0x81, 0xFC, 0x0F, 0xE0,
|
||||
0x7F, 0x03, 0xF8, 0x1D, 0xC0, 0xEE, 0x0F, 0x7F, 0xF3, 0xFF, 0x9F, 0xF0,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0E, 0x01, 0xC0, 0x3F, 0xF7, 0xFE, 0xFF,
|
||||
0xDC, 0x03, 0x80, 0x70, 0x0E, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF0, 0x0E, 0x01, 0xC0, 0x3F, 0xF7, 0xFE, 0xFF, 0xDC, 0x03,
|
||||
0x80, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0x07, 0xC0, 0x7F, 0xC3,
|
||||
0xFF, 0x9E, 0x0F, 0x70, 0x1F, 0x80, 0x0E, 0x00, 0x38, 0x3F, 0xE0, 0xFF,
|
||||
0x83, 0xFF, 0x01, 0xDC, 0x07, 0x78, 0x3C, 0xFF, 0xF1, 0xFE, 0xC1, 0xF3,
|
||||
0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFE, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x03,
|
||||
0xC0, 0xF0, 0x3C, 0x0F, 0x03, 0xC0, 0xFE, 0x3F, 0x8F, 0xE3, 0xFF, 0xE7,
|
||||
0xF8, 0xF8, 0xE0, 0x73, 0x83, 0xCE, 0x1E, 0x38, 0xF0, 0xE7, 0x83, 0xBC,
|
||||
0x0F, 0xE0, 0x3F, 0x80, 0xFF, 0x03, 0xDE, 0x0E, 0x38, 0x38, 0xF0, 0xE1,
|
||||
0xE3, 0x83, 0xCE, 0x07, 0x38, 0x1E, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0,
|
||||
0x38, 0x0E, 0x03, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE0, 0x3F, 0xFF,
|
||||
0xFF, 0xFF, 0xF8, 0x3F, 0xF0, 0x7F, 0xE0, 0xFF, 0xC3, 0xFF, 0xC7, 0xFF,
|
||||
0x8D, 0xFB, 0x1B, 0xF6, 0x37, 0xEC, 0xEF, 0xDD, 0x9F, 0x9B, 0x3F, 0x36,
|
||||
0x7E, 0x7C, 0xFC, 0xF9, 0xF9, 0xE3, 0xF1, 0xC7, 0xE0, 0x7F, 0x83, 0xFC,
|
||||
0x1F, 0xF0, 0xFF, 0xC7, 0xFE, 0x3F, 0xB9, 0xFD, 0xCF, 0xE7, 0x7F, 0x1B,
|
||||
0xF8, 0xFF, 0xC3, 0xFE, 0x1F, 0xF0, 0x7F, 0x83, 0xFC, 0x0F, 0x07, 0xC0,
|
||||
0x3F, 0xE0, 0xFF, 0xE3, 0xC1, 0xE7, 0x01, 0xDE, 0x03, 0xF8, 0x03, 0xF0,
|
||||
0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0xC0, 0x7B, 0x80, 0xE7, 0x83, 0xC7, 0xFF,
|
||||
0x07, 0xFC, 0x03, 0xE0, 0xFF, 0x8F, 0xFE, 0xFF, 0xEE, 0x0F, 0xE0, 0xFE,
|
||||
0x0F, 0xE0, 0xFF, 0xFE, 0xFF, 0xEF, 0xF8, 0xE0, 0x0E, 0x00, 0xE0, 0x0E,
|
||||
0x00, 0xE0, 0x0E, 0x00, 0x07, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xC1, 0xE7,
|
||||
0x01, 0xDE, 0x03, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x0F, 0xC0, 0x1F, 0xC3,
|
||||
0x7B, 0x87, 0xE7, 0x87, 0xC7, 0xFF, 0x07, 0xFF, 0x83, 0xE6, 0x00, 0x04,
|
||||
0xFF, 0xC7, 0xFF, 0xBF, 0xFD, 0xC0, 0xEE, 0x07, 0x70, 0x3B, 0x81, 0xDF,
|
||||
0xFC, 0xFF, 0xC7, 0xFF, 0x38, 0x3D, 0xC0, 0xEE, 0x07, 0x70, 0x3B, 0x81,
|
||||
0xDC, 0x0F, 0x1F, 0x83, 0xFF, 0x1F, 0xFD, 0xE0, 0xEE, 0x07, 0x78, 0x03,
|
||||
0xF8, 0x0F, 0xFC, 0x1F, 0xF0, 0x07, 0xC0, 0x1F, 0xC0, 0x7F, 0x07, 0xBF,
|
||||
0xF9, 0xFF, 0x83, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0x0F, 0x00,
|
||||
0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00,
|
||||
0xF0, 0x0F, 0x00, 0xF0, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E,
|
||||
0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xE0, 0x7E, 0x07, 0xF0, 0xFF,
|
||||
0xFE, 0x7F, 0xE1, 0xF8, 0x70, 0x3D, 0xC0, 0xE7, 0x03, 0x8E, 0x0E, 0x38,
|
||||
0x70, 0xE1, 0xC1, 0xC7, 0x07, 0x38, 0x1C, 0xE0, 0x33, 0x80, 0xEC, 0x03,
|
||||
0xF0, 0x07, 0xC0, 0x1E, 0x00, 0x78, 0x00, 0xE0, 0x70, 0x70, 0x77, 0x0F,
|
||||
0x07, 0x70, 0xF0, 0xF7, 0x8F, 0x8E, 0x38, 0xD8, 0xE3, 0x8D, 0x8E, 0x39,
|
||||
0xD8, 0xC1, 0x9D, 0x9C, 0x1D, 0x9D, 0xC1, 0xD8, 0xDC, 0x1D, 0x8D, 0x80,
|
||||
0xF8, 0xD8, 0x0F, 0x0F, 0x80, 0xF0, 0xF8, 0x0F, 0x07, 0x00, 0x70, 0x70,
|
||||
0x78, 0x3C, 0xE1, 0xE3, 0xC7, 0x07, 0x3C, 0x1E, 0xE0, 0x3F, 0x00, 0x7C,
|
||||
0x01, 0xE0, 0x07, 0x80, 0x3F, 0x00, 0xFE, 0x07, 0xB8, 0x1C, 0xF0, 0xF1,
|
||||
0xE7, 0x87, 0x9C, 0x0F, 0xF0, 0x39, 0xC1, 0xE7, 0x87, 0x0E, 0x1C, 0x1C,
|
||||
0xE0, 0x73, 0x80, 0xFC, 0x03, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01,
|
||||
0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x80, 0xF0, 0x3C, 0x07, 0x01, 0xE0, 0x78, 0x1E, 0x03, 0x80, 0xF0, 0x3C,
|
||||
0x0F, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x38, 0xE3, 0x8E, 0x38,
|
||||
0xE3, 0x8E, 0x38, 0xE3, 0x8E, 0x38, 0xE3, 0x8F, 0xFF, 0x83, 0x04, 0x10,
|
||||
0x61, 0x82, 0x0C, 0x30, 0x41, 0x06, 0x08, 0x20, 0xC1, 0xFF, 0xF1, 0xC7,
|
||||
0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x71, 0xC7, 0x1C, 0x7F, 0xFF,
|
||||
0x0E, 0x07, 0x81, 0xF0, 0x6C, 0x3B, 0x0C, 0xE7, 0x19, 0x87, 0x60, 0xC0,
|
||||
0xFF, 0xFF, 0xFF, 0x61, 0x84, 0x3F, 0x0F, 0xF3, 0xCF, 0x70, 0xE0, 0x3C,
|
||||
0x7F, 0x9F, 0x77, 0x0E, 0xE1, 0xDE, 0xFB, 0xFF, 0x3C, 0xE0, 0x00, 0xE0,
|
||||
0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE7, 0x8E, 0xFC, 0xFF, 0xEF, 0x0E, 0xF0,
|
||||
0xEE, 0x0E, 0xE0, 0xFF, 0x0E, 0xF0, 0xEF, 0xFE, 0xFF, 0xCE, 0xF8, 0x1F,
|
||||
0x1F, 0xE7, 0xBF, 0x87, 0xE0, 0x38, 0x0E, 0x03, 0x80, 0xE1, 0xDE, 0xF7,
|
||||
0xF8, 0x7C, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x71, 0xEE, 0x7F, 0xDF, 0xFF,
|
||||
0x8F, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7F, 0x1E, 0xFF, 0xDF, 0xF9, 0xF7,
|
||||
0x00, 0x00, 0x1F, 0x0F, 0xF1, 0xCF, 0x70, 0xEE, 0x1F, 0xFF, 0xFF, 0xFF,
|
||||
0x00, 0xE0, 0xEE, 0x79, 0xFE, 0x0F, 0x80, 0x1E, 0x7C, 0xE1, 0xCF, 0xFF,
|
||||
0xCE, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x0E, 0x1C, 0x1E, 0xEF, 0xFD,
|
||||
0xFF, 0xF8, 0xFE, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xF1, 0xEF, 0xFD, 0xFF,
|
||||
0x8F, 0x70, 0x0F, 0xC1, 0xFC, 0x73, 0xFE, 0x3F, 0x00, 0xE0, 0x1C, 0x03,
|
||||
0x80, 0x70, 0x0E, 0x79, 0xDF, 0xBF, 0xF7, 0x8F, 0xE0, 0xFC, 0x1F, 0x83,
|
||||
0xF0, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x7B, 0xDE, 0x07, 0xBD, 0xEF, 0x7B, 0xDE, 0xF7, 0xBD,
|
||||
0xEF, 0x7B, 0xDF, 0xEF, 0x00, 0xE0, 0x1C, 0x03, 0x80, 0x70, 0x0E, 0x1D,
|
||||
0xC7, 0x39, 0xC7, 0x78, 0xEE, 0x1F, 0xC3, 0xFC, 0x7B, 0x8E, 0x39, 0xC7,
|
||||
0xB8, 0x77, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x9E, 0x77,
|
||||
0xFF, 0xBF, 0xFF, 0xFE, 0x38, 0x7E, 0x1C, 0x3F, 0x0E, 0x1F, 0x87, 0x0F,
|
||||
0xC3, 0x87, 0xE1, 0xC3, 0xF0, 0xE1, 0xF8, 0x70, 0xFC, 0x38, 0x70, 0xE7,
|
||||
0x9D, 0xFB, 0xFF, 0xF8, 0x7E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC,
|
||||
0x1F, 0x83, 0xF0, 0x70, 0x1F, 0x07, 0xF9, 0xEF, 0x78, 0x7E, 0x0F, 0xC1,
|
||||
0xF8, 0x3F, 0x07, 0xF0, 0xEF, 0x78, 0xFF, 0x0F, 0x80, 0xE7, 0x8E, 0xFC,
|
||||
0xFF, 0xEF, 0x0E, 0xF0, 0xEE, 0x0F, 0xE0, 0xEF, 0x0E, 0xF0, 0xEF, 0xFE,
|
||||
0xEF, 0xCE, 0x78, 0xE0, 0x0E, 0x00, 0xE0, 0x0E, 0x00, 0xE0, 0x00, 0x1E,
|
||||
0xEF, 0xFD, 0xFF, 0xF8, 0xFE, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xF1, 0xEF,
|
||||
0xFD, 0xFF, 0x8F, 0x70, 0x0E, 0x01, 0xC0, 0x38, 0x07, 0x00, 0xE0, 0xE7,
|
||||
0xDF, 0xFF, 0x8F, 0x1C, 0x38, 0x70, 0xE1, 0xC3, 0x87, 0x00, 0x3F, 0x1F,
|
||||
0xEF, 0x3F, 0x87, 0xF8, 0x1F, 0xC3, 0xFC, 0x0F, 0xE1, 0xFC, 0xFF, 0xF8,
|
||||
0xFC, 0x38, 0x70, 0xE7, 0xFF, 0xE7, 0x0E, 0x1C, 0x38, 0x70, 0xE1, 0xC3,
|
||||
0x87, 0xC7, 0x80, 0xE0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, 0x0F, 0xC1, 0xF8,
|
||||
0x3F, 0x07, 0xF1, 0xEF, 0xFD, 0xFF, 0x9E, 0x70, 0xF0, 0xEE, 0x1D, 0xC3,
|
||||
0xB8, 0xE3, 0x9C, 0x73, 0x8E, 0x60, 0xFC, 0x1F, 0x83, 0xE0, 0x3C, 0x07,
|
||||
0x80, 0xE1, 0xC7, 0x38, 0xE3, 0x9C, 0xF1, 0xCE, 0x7C, 0xE7, 0x36, 0x61,
|
||||
0xDB, 0x70, 0xED, 0xB8, 0x7E, 0xFC, 0x1E, 0x7C, 0x0F, 0x1E, 0x07, 0x8F,
|
||||
0x03, 0xC7, 0x00, 0x70, 0xE7, 0x9C, 0x39, 0xC1, 0xF8, 0x1F, 0x80, 0xF0,
|
||||
0x0F, 0x01, 0xF8, 0x1F, 0x83, 0x9C, 0x79, 0xE7, 0x0E, 0xF0, 0xE7, 0x0E,
|
||||
0x70, 0xE7, 0x8C, 0x39, 0xC3, 0x9C, 0x39, 0x81, 0xF8, 0x1F, 0x81, 0xF0,
|
||||
0x0F, 0x00, 0xF0, 0x0E, 0x00, 0xE0, 0x0E, 0x03, 0xC0, 0x38, 0x00, 0xFF,
|
||||
0xFF, 0xC1, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, 0x70, 0x70, 0x3F, 0xFF,
|
||||
0xF0, 0x1C, 0xF3, 0x0C, 0x30, 0xC3, 0x0C, 0x73, 0x8E, 0x1C, 0x30, 0xC3,
|
||||
0x0C, 0x30, 0xC3, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0x1C,
|
||||
0x71, 0xC7, 0x1C, 0x70, 0xF3, 0xDC, 0x71, 0xC7, 0x1C, 0x71, 0xCF, 0x38,
|
||||
0x38, 0x1F, 0x14, 0x7C, 0x0E };
|
||||
|
||||
const GFXglyph FreeSansBold11pt7bGlyphs[] PROGMEM = {
|
||||
{ 0, 1, 1, 6, 0, 0 }, // 0x20 ' '
|
||||
{ 1, 4, 16, 7, 2, -15 }, // 0x21 '!'
|
||||
{ 9, 8, 6, 10, 1, -15 }, // 0x22 '"'
|
||||
{ 15, 12, 16, 12, 0, -14 }, // 0x23 '#'
|
||||
{ 39, 11, 19, 12, 0, -16 }, // 0x24 '$'
|
||||
{ 66, 19, 16, 19, 0, -15 }, // 0x25 '%'
|
||||
{ 104, 14, 16, 16, 1, -15 }, // 0x26 '&'
|
||||
{ 132, 3, 6, 5, 1, -15 }, // 0x27 '''
|
||||
{ 135, 6, 20, 7, 1, -15 }, // 0x28 '('
|
||||
{ 150, 6, 20, 7, 0, -15 }, // 0x29 ')'
|
||||
{ 165, 8, 7, 8, 0, -15 }, // 0x2A '*'
|
||||
{ 172, 10, 10, 13, 1, -9 }, // 0x2B '+'
|
||||
{ 185, 3, 7, 5, 1, -2 }, // 0x2C ','
|
||||
{ 188, 5, 3, 7, 1, -6 }, // 0x2D '-'
|
||||
{ 190, 3, 3, 5, 1, -2 }, // 0x2E '.'
|
||||
{ 192, 6, 16, 6, 0, -15 }, // 0x2F '/'
|
||||
{ 204, 10, 16, 12, 1, -15 }, // 0x30 '0'
|
||||
{ 224, 7, 16, 12, 1, -15 }, // 0x31 '1'
|
||||
{ 238, 10, 16, 12, 1, -15 }, // 0x32 '2'
|
||||
{ 258, 10, 16, 12, 1, -15 }, // 0x33 '3'
|
||||
{ 278, 10, 16, 12, 1, -15 }, // 0x34 '4'
|
||||
{ 298, 10, 16, 12, 1, -15 }, // 0x35 '5'
|
||||
{ 318, 10, 16, 12, 1, -15 }, // 0x36 '6'
|
||||
{ 338, 10, 16, 12, 1, -15 }, // 0x37 '7'
|
||||
{ 358, 11, 16, 12, 0, -15 }, // 0x38 '8'
|
||||
{ 380, 10, 16, 12, 1, -15 }, // 0x39 '9'
|
||||
{ 400, 3, 11, 5, 1, -10 }, // 0x3A ':'
|
||||
{ 405, 3, 15, 5, 1, -10 }, // 0x3B ';'
|
||||
{ 411, 10, 10, 13, 1, -9 }, // 0x3C '<'
|
||||
{ 424, 11, 8, 13, 1, -8 }, // 0x3D '='
|
||||
{ 435, 10, 10, 13, 1, -9 }, // 0x3E '>'
|
||||
{ 448, 11, 16, 13, 1, -15 }, // 0x3F '?'
|
||||
{ 470, 19, 19, 21, 1, -15 }, // 0x40 '@'
|
||||
{ 516, 15, 16, 15, 0, -15 }, // 0x41 'A'
|
||||
{ 546, 12, 16, 15, 2, -15 }, // 0x42 'B'
|
||||
{ 570, 14, 16, 16, 1, -15 }, // 0x43 'C'
|
||||
{ 598, 13, 16, 16, 2, -15 }, // 0x44 'D'
|
||||
{ 624, 11, 16, 14, 2, -15 }, // 0x45 'E'
|
||||
{ 646, 11, 16, 14, 2, -15 }, // 0x46 'F'
|
||||
{ 668, 14, 16, 17, 1, -15 }, // 0x47 'G'
|
||||
{ 696, 12, 16, 16, 2, -15 }, // 0x48 'H'
|
||||
{ 720, 3, 16, 7, 2, -15 }, // 0x49 'I'
|
||||
{ 726, 10, 16, 12, 1, -15 }, // 0x4A 'J'
|
||||
{ 746, 14, 16, 16, 2, -15 }, // 0x4B 'K'
|
||||
{ 774, 10, 16, 13, 2, -15 }, // 0x4C 'L'
|
||||
{ 794, 15, 16, 19, 2, -15 }, // 0x4D 'M'
|
||||
{ 824, 13, 16, 16, 2, -15 }, // 0x4E 'N'
|
||||
{ 850, 15, 16, 17, 1, -15 }, // 0x4F 'O'
|
||||
{ 880, 12, 16, 15, 2, -15 }, // 0x50 'P'
|
||||
{ 904, 15, 17, 17, 1, -15 }, // 0x51 'Q'
|
||||
{ 936, 13, 16, 16, 2, -15 }, // 0x52 'R'
|
||||
{ 962, 13, 16, 15, 1, -15 }, // 0x53 'S'
|
||||
{ 988, 12, 16, 14, 1, -15 }, // 0x54 'T'
|
||||
{ 1012, 12, 16, 16, 2, -15 }, // 0x55 'U'
|
||||
{ 1036, 14, 16, 14, 0, -15 }, // 0x56 'V'
|
||||
{ 1064, 20, 16, 21, 0, -15 }, // 0x57 'W'
|
||||
{ 1104, 14, 16, 15, 0, -15 }, // 0x58 'X'
|
||||
{ 1132, 14, 16, 14, 0, -15 }, // 0x59 'Y'
|
||||
{ 1160, 11, 16, 13, 1, -15 }, // 0x5A 'Z'
|
||||
{ 1182, 6, 20, 7, 1, -15 }, // 0x5B '['
|
||||
{ 1197, 6, 16, 6, 0, -15 }, // 0x5C '\'
|
||||
{ 1209, 6, 20, 7, 0, -15 }, // 0x5D ']'
|
||||
{ 1224, 10, 9, 13, 1, -14 }, // 0x5E '^'
|
||||
{ 1236, 12, 2, 12, 0, 3 }, // 0x5F '_'
|
||||
{ 1239, 5, 3, 5, 0, -15 }, // 0x60 '`'
|
||||
{ 1241, 11, 13, 12, 1, -11 }, // 0x61 'a'
|
||||
{ 1259, 12, 16, 13, 1, -15 }, // 0x62 'b'
|
||||
{ 1283, 10, 12, 12, 1, -11 }, // 0x63 'c'
|
||||
{ 1298, 11, 17, 13, 1, -15 }, // 0x64 'd'
|
||||
{ 1322, 11, 12, 13, 1, -11 }, // 0x65 'e'
|
||||
{ 1339, 7, 16, 7, 0, -15 }, // 0x66 'f'
|
||||
{ 1353, 11, 17, 13, 1, -11 }, // 0x67 'g'
|
||||
{ 1377, 11, 16, 13, 1, -15 }, // 0x68 'h'
|
||||
{ 1399, 4, 16, 6, 1, -15 }, // 0x69 'i'
|
||||
{ 1407, 5, 21, 6, 0, -15 }, // 0x6A 'j'
|
||||
{ 1421, 11, 16, 12, 1, -15 }, // 0x6B 'k'
|
||||
{ 1443, 3, 16, 6, 1, -15 }, // 0x6C 'l'
|
||||
{ 1449, 17, 12, 19, 1, -11 }, // 0x6D 'm'
|
||||
{ 1475, 11, 12, 13, 1, -11 }, // 0x6E 'n'
|
||||
{ 1492, 11, 12, 13, 1, -11 }, // 0x6F 'o'
|
||||
{ 1509, 12, 17, 13, 1, -11 }, // 0x70 'p'
|
||||
{ 1535, 11, 17, 13, 1, -11 }, // 0x71 'q'
|
||||
{ 1559, 7, 12, 8, 1, -11 }, // 0x72 'r'
|
||||
{ 1570, 10, 12, 12, 1, -11 }, // 0x73 's'
|
||||
{ 1585, 7, 15, 7, 0, -14 }, // 0x74 't'
|
||||
{ 1599, 11, 12, 13, 1, -11 }, // 0x75 'u'
|
||||
{ 1616, 11, 12, 12, 0, -11 }, // 0x76 'v'
|
||||
{ 1633, 17, 12, 17, 0, -11 }, // 0x77 'w'
|
||||
{ 1659, 12, 12, 12, 0, -11 }, // 0x78 'x'
|
||||
{ 1677, 12, 17, 12, 0, -11 }, // 0x79 'y'
|
||||
{ 1703, 9, 12, 11, 1, -11 }, // 0x7A 'z'
|
||||
{ 1717, 6, 20, 8, 1, -15 }, // 0x7B '{'
|
||||
{ 1732, 2, 20, 6, 2, -15 }, // 0x7C '|'
|
||||
{ 1737, 6, 20, 8, 2, -15 }, // 0x7D '}'
|
||||
{ 1752, 10, 4, 11, 0, -6 } }; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeSansBold11pt7b PROGMEM = {
|
||||
(uint8_t *)FreeSansBold11pt7bBitmaps,
|
||||
(GFXglyph *)FreeSansBold11pt7bGlyphs,
|
||||
0x20, 0x7E, 26 };
|
||||
|
||||
// Approx. 2429 bytes
|
459
fw_mega.ino
459
fw_mega.ino
@ -1,35 +1,39 @@
|
||||
#include <Wire.h>
|
||||
// display mapping suggestion for Arduino MEGA
|
||||
// display mapping for Arduino MEGA
|
||||
// BUSY -> 7, RST -> 9, DC -> 8, CS-> 53, CLK -> 52, DIN -> 51
|
||||
#include <GxEPD2_BW.h>
|
||||
#include <Fonts/FreeSans18pt7b.h>
|
||||
#include <Fonts/FreeSansBold12pt7b.h>
|
||||
#include <Fonts/FreeSansBold9pt7b.h>
|
||||
#include "FreeSansBold11pt7b.h"
|
||||
#include "FreeSans22pt7b.h"
|
||||
#include <Fonts/TomThumb.h>
|
||||
#include <MD_DS3231.h>
|
||||
//#include <BME280I2C.h>
|
||||
#include <Adafruit_Sensor.h>
|
||||
#include <Adafruit_BME280.h>
|
||||
#include<bc_co2_module_arduino.h>
|
||||
#include <BME280I2C.h>
|
||||
#include <bc_co2_module_arduino.h>
|
||||
|
||||
//BME280I2C bme;
|
||||
Adafruit_BME280 bme;
|
||||
/**************************** BME280 setup **********************************/
|
||||
BME280I2C::Settings settings(
|
||||
BME280::OSR_X1,
|
||||
BME280::OSR_X1,
|
||||
BME280::OSR_X1,
|
||||
BME280::Mode_Forced,
|
||||
BME280::StandbyTime_1000ms,
|
||||
BME280::Filter_4,
|
||||
BME280::SpiEnable_False,
|
||||
0x76 // I2C address. I2C specific.
|
||||
);
|
||||
|
||||
/**************************** Serial setup ************************************/
|
||||
BME280I2C bme(settings);
|
||||
|
||||
/**************************** Serial setup **********************************/
|
||||
#define BAUDRATE 115200
|
||||
|
||||
/**************************** I2C setup **************************************/
|
||||
|
||||
#define BME280_ADDR 0x76
|
||||
#define BME280_ID 0x60
|
||||
|
||||
/**************************** Screen setup **********************************/
|
||||
|
||||
#define MAX_DISPAY_BUFFER_SIZE 32 //
|
||||
#define MAX_DISPAY_BUFFER_SIZE 32
|
||||
#define MAX_HEIGHT(EPD) (EPD::HEIGHT <= MAX_DISPAY_BUFFER_SIZE / (EPD::WIDTH / 8) ? EPD::HEIGHT : MAX_DISPAY_BUFFER_SIZE / (EPD::WIDTH / 8))
|
||||
GxEPD2_BW<GxEPD2_290, MAX_HEIGHT(GxEPD2_290)> display(GxEPD2_290(/*CS=10*/ SS, /*DC=*/ 8, /*RST=*/ 9, /*BUSY=*/ 7));
|
||||
|
||||
/*************************** Global variables *********************************/
|
||||
/*************************** Global variables *******************************/
|
||||
|
||||
struct data {
|
||||
float temp;
|
||||
@ -41,18 +45,17 @@ struct data {
|
||||
};
|
||||
|
||||
volatile static struct data dataset;
|
||||
static struct lp8_t sensor;
|
||||
char incoming[40];
|
||||
bool commRecvd = false;
|
||||
char ssid[16];
|
||||
char ip[16];
|
||||
//
|
||||
static byte bmeerr = 0;
|
||||
|
||||
/******************************* Setup routine ******************************/
|
||||
void setup() {
|
||||
char buf;
|
||||
static byte i=0;
|
||||
|
||||
|
||||
ADCSRA = 0; //turn off adc to save power as it is not needed
|
||||
|
||||
|
||||
pinMode(13, OUTPUT);
|
||||
digitalWrite(13, LOW); //turn off led
|
||||
|
||||
@ -61,50 +64,188 @@ void setup() {
|
||||
Wire.begin();
|
||||
|
||||
Serial.print(F("\r\n***Enviro data monitor***\r\n"));
|
||||
//start co2 module
|
||||
init_module();
|
||||
|
||||
while(!bme.begin(BME280_ADDR)) { //for adafruit driver
|
||||
// while(!bme.begin()) { //for bme280i2c driver
|
||||
Serial.println(F("Could not find BME280 sensor"));
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
//for adafruit driver
|
||||
if(bme.sensorID() == BME280_ID){
|
||||
Serial.println(F("Found BME280 sensor"));
|
||||
}
|
||||
else {
|
||||
Serial.println(F("Found unknown sensor"));
|
||||
}
|
||||
|
||||
//for bme280i2c driver
|
||||
// switch(bme.chipModel()) {
|
||||
// case BME280::ChipModel_BME280:
|
||||
// Serial.println(F("Found BME280 sensor!"));
|
||||
// break;
|
||||
// case BME280::ChipModel_BMP280:
|
||||
// Serial.println(F("Found BMP280 sensor! No Humidity available."));
|
||||
// break;
|
||||
// default:
|
||||
// Serial.println(F("Error, found UNKNOWN sensor."));
|
||||
// }
|
||||
//start co2 module
|
||||
init_co2_module();
|
||||
|
||||
display.init(); //init display
|
||||
delay(100);
|
||||
layoutScreen(); //print static parts of screen
|
||||
|
||||
//make sure we're always in 24hr mode
|
||||
if(RTC.status(DS3231_12H)){ //invert to change to 12h
|
||||
RTC.control(DS3231_12H, DS3231_OFF); //use DS3231_ON to enable 12h mode
|
||||
switch (RTC.status(DS3231_12H) ){
|
||||
case 0: Serial.println(F("24h mode"));
|
||||
case 1: Serial.println(F("12h mode")); //should not occur
|
||||
//make sure we're always in 24hr mode, invert to change to 12h
|
||||
switch (RTC.status(DS3231_12H)) {
|
||||
case DS3231_OFF:
|
||||
Serial.println(F("RTC in 24h mode"));
|
||||
break;
|
||||
case DS3231_ON:
|
||||
Serial.println(F("RTC in 12h mode, fixing")); //should not occur
|
||||
RTC.control(DS3231_12H, DS3231_OFF);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Serial.println(F("Waiting for ESP to boot"));
|
||||
bool n;
|
||||
static byte tries = 0;
|
||||
Serial.print("[");
|
||||
while(1) {
|
||||
delay(1000);
|
||||
Serial.print("=");
|
||||
n = readNetInfo();
|
||||
if(n == true) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
tries++;
|
||||
if(tries >= 33) {
|
||||
Serial.print("X");
|
||||
Serial.println();
|
||||
Serial.println(F("Could not read connection info, likely no network connection"));
|
||||
display.setFont(&TomThumb);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
uint16_t x = 10;
|
||||
uint16_t y = 277;
|
||||
|
||||
display.setPartialWindow(0, 270, display.width(), 20);
|
||||
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.setCursor(x,y);
|
||||
display.print("Network error");
|
||||
}
|
||||
while (display.nextPage());
|
||||
tries = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static byte retries = 0;
|
||||
bool t;
|
||||
while(1){ //sync time with network
|
||||
delay(5000);
|
||||
t = syncTime();
|
||||
if(t == true) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
retries++;
|
||||
if(retries > 4){ //break after 5 tries
|
||||
Serial.println(F("Could not sync time\n"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delay(2000); //leave time for esp to connect to wireless network
|
||||
retries = 0;
|
||||
printRTCTimeToScreen(); //print time to screen
|
||||
printRTCDateToScreen(); //print date to screen
|
||||
|
||||
bool tsens;
|
||||
while(1) {
|
||||
tsens = bme.begin();
|
||||
if(tsens == true) {
|
||||
switch(bme.chipModel()) {
|
||||
case BME280::ChipModel_BME280:
|
||||
Serial.println(F("Found BME280 sensor!"));
|
||||
break;
|
||||
case BME280::ChipModel_BMP280:
|
||||
Serial.println(F("Found BMP280 sensor! No Humidity available."));
|
||||
break;
|
||||
default:
|
||||
Serial.println(F("Error, found unknown sensor."));
|
||||
}
|
||||
break;
|
||||
}
|
||||
else {
|
||||
delay(2000);
|
||||
retries++;
|
||||
if(retries > 4) {
|
||||
Serial.println(F("Could not find BME280 sensor."));
|
||||
//display error message on screen
|
||||
display.setFont(&FreeSansBold11pt7b);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
int16_t tbx, tby; uint16_t tbw, tbh;
|
||||
display.getTextBounds("SENS ERR!", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t y = (92 - tbh) - tby + 20;
|
||||
|
||||
display.setPartialWindow(0, 70 + 20, display.width(), 33);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.setCursor(6, y);
|
||||
display.print(F("SENS ERR!"));
|
||||
}
|
||||
while (display.nextPage());
|
||||
bmeerr = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Serial.println(F("Setup complete"));
|
||||
};
|
||||
|
||||
/********************************* MAINLOOP ***************************************/
|
||||
void loop() {
|
||||
static byte oldmins;
|
||||
|
||||
RTC.readTime();
|
||||
if(RTC.m != oldmins){ //run this every minute
|
||||
printRTCTimeToScreen(); //update time on screen
|
||||
if(bmeerr == 0){ //only attempt to measure anything if the sensor is present
|
||||
doStuff(); //acquire data
|
||||
sendDataToServer(); //send over to esp for publishing
|
||||
printDataToScreen(); //update values on screen
|
||||
}
|
||||
oldmins = RTC.m; //save old value
|
||||
}
|
||||
else if((RTC.m == 0 || RTC.m == 30) && RTC.s == 55) {
|
||||
delay(1100); //delay to prevent firing multiple times
|
||||
display.refresh(); //perform a full display refresh every half hour, removes quick refresh artifacts
|
||||
}
|
||||
else if(RTC.m == 0 && RTC.h == 0 && RTC.s == 40){
|
||||
delay(1100); //delay to prevent firing multiple times
|
||||
printRTCDateToScreen(); //refresh date on midnight
|
||||
}
|
||||
else if(RTC.m == 0 && RTC.h == 2 && RTC.s == 33) { //resync time at 2am
|
||||
static byte retries = 0;
|
||||
bool t;
|
||||
while(1){
|
||||
delay(2000);
|
||||
t = syncTime();
|
||||
if(t == true) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
retries++;
|
||||
if(retries > 4){ //break after 5 tries
|
||||
Serial.println(F("Could not sync time\n"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
delay(500);
|
||||
};
|
||||
/************************************************************************************/
|
||||
|
||||
void doStuff() {
|
||||
dataset.temp = measureTemp();
|
||||
dataset.hum = measureHum();
|
||||
dataset.rhum = round(dataset.hum);
|
||||
dataset.pres = measurePres();
|
||||
dataset.rpres = round(dataset.pres);
|
||||
dataset.co2 = measureCO2();
|
||||
};
|
||||
|
||||
bool readNetInfo() {
|
||||
char buf;
|
||||
bool commRecvd = false;
|
||||
static byte i=0;
|
||||
static bool recv = false;
|
||||
|
||||
while(Serial2.available() > 0) {
|
||||
buf = Serial2.read();
|
||||
if(recv == true) {
|
||||
@ -125,7 +266,7 @@ void setup() {
|
||||
}
|
||||
|
||||
i = 0;
|
||||
|
||||
|
||||
if(commRecvd == true){
|
||||
char* token = strtok(incoming, ",");
|
||||
while(token != NULL){
|
||||
@ -140,70 +281,17 @@ void setup() {
|
||||
}
|
||||
i = 0;
|
||||
commRecvd = false;
|
||||
printConnInfo();
|
||||
Serial.print("]");
|
||||
Serial.println();
|
||||
Serial.print(F("Got conn info:\n"));
|
||||
Serial.println(ssid);
|
||||
Serial.println(ip);
|
||||
printConnInfo();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static byte retries = 0;
|
||||
while(!syncTime()){ //sync time with network
|
||||
delay(1750); //should take about a second and a half
|
||||
retries++;
|
||||
if(retries > 4){
|
||||
break; //break the loop in case of no connectivity/ other error
|
||||
}
|
||||
}
|
||||
|
||||
printRTCTimeToScreen(); //print time to screen
|
||||
printRTCDateToScreen(); //print date to screen
|
||||
|
||||
Serial.println(F("Setup complete"));
|
||||
};
|
||||
|
||||
void loop() {
|
||||
static byte oldmins;
|
||||
|
||||
RTC.readTime();
|
||||
if(RTC.m != oldmins){ //run this every minute
|
||||
printRTCTimeToScreen(); //update time on screen
|
||||
doStuff(); //acquire data
|
||||
sendDataToServer(); //send over to esp for publishing
|
||||
printTempToScreen(); //update values on screen
|
||||
oldmins = RTC.m; //save old value
|
||||
}
|
||||
else if((RTC.m == 0 || RTC.m == 30) && RTC.s == 55) {
|
||||
delay(1100); //delay to prevent firing multiple times
|
||||
display.refresh(); //perform a full display refresh every half hour, removes quick refresh artifacts
|
||||
}
|
||||
else if(RTC.m == 0 && RTC.h == 0 && RTC.s == 40){
|
||||
delay(1100); //delay to prevent firing multiple times
|
||||
printRTCDateToScreen(); //change date on midnight
|
||||
}
|
||||
|
||||
//sync time every morning and evening. only here for safety should the device run for long periods of time without restarting
|
||||
if ((RTC.h == 6 || RTC.h == 22) && (RTC.m == 00) && RTC.s == 40){
|
||||
delay(1100); //delay to prevent firing multiple times
|
||||
static byte retries = 0;
|
||||
while(!syncTime()){ //sync time with network
|
||||
delay(1500); //should take about a second and a half
|
||||
retries++;
|
||||
if(retries > 4){
|
||||
break; //break the loop in case of no connectivity
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void doStuff() {
|
||||
//function to acquire and save data from sensors
|
||||
dataset.temp = measureTemp();
|
||||
dataset.hum = measureHum();
|
||||
dataset.rhum = round(dataset.hum);
|
||||
dataset.pres = measurePres();
|
||||
dataset.rpres = round(dataset.pres);
|
||||
dataset.co2 = measureCO2();
|
||||
};
|
||||
|
||||
bool syncTime() {
|
||||
char tbuf;
|
||||
@ -211,12 +299,15 @@ bool syncTime() {
|
||||
static bool trecvn = false;
|
||||
char tarry[21];
|
||||
static byte j = 0;
|
||||
byte dst;
|
||||
|
||||
dst = checkDST();
|
||||
|
||||
Serial.print(F("Syncing time...\n"));
|
||||
delay(50);
|
||||
delay(10);
|
||||
Serial2.print("?ntp");
|
||||
Serial2.print("\n");
|
||||
delay(25);
|
||||
delay(300);
|
||||
while(Serial2.available() > 0 && trecvd == false){
|
||||
tbuf = Serial2.read();
|
||||
if(trecvn == true) {
|
||||
@ -235,6 +326,7 @@ bool syncTime() {
|
||||
trecvn = true;
|
||||
}
|
||||
}
|
||||
j = 0;
|
||||
if(trecvd == true){
|
||||
Serial.println(tarry);
|
||||
char* token = strtok(tarry, "/");
|
||||
@ -249,7 +341,17 @@ bool syncTime() {
|
||||
RTC.dd = atoi(token);
|
||||
};
|
||||
if(j == 3) {
|
||||
RTC.h = atoi(token);
|
||||
if(dst == 1) {
|
||||
if(atoi(token) == 23) {
|
||||
RTC.h = 0;
|
||||
}
|
||||
else {
|
||||
RTC.h = atoi(token) + 1;
|
||||
}
|
||||
}
|
||||
if(dst == 0) {
|
||||
RTC.h = atoi(token);
|
||||
}
|
||||
};
|
||||
if(j == 4){
|
||||
RTC.m = atoi(token);
|
||||
@ -261,11 +363,12 @@ bool syncTime() {
|
||||
j++;
|
||||
}
|
||||
j = 0;
|
||||
Serial.println(F("NTP sync complete"));
|
||||
RTC.writeTime();
|
||||
Serial.println(F("NTP sync complete"));
|
||||
trecvd = false;
|
||||
return(true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void layoutScreen() {
|
||||
@ -277,13 +380,13 @@ void layoutScreen() {
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.setCursor(8, 69);
|
||||
display.setCursor(8, 69+20);
|
||||
display.print(F("Temperature:"));
|
||||
display.setCursor(8, (69 + 40));
|
||||
display.setCursor(8, (69 + 40 + 20));
|
||||
display.print(F("Humidity:"));
|
||||
display.setCursor(8, (69 + 80));
|
||||
display.setCursor(8, (69 + 80) + 20);
|
||||
display.print(F("Pressure:"));
|
||||
display.setCursor(8, (69 + 120));
|
||||
display.setCursor(8, (69 + 120) + 20);
|
||||
display.print(F("CO2 concentration:"));
|
||||
display.setCursor(8, 269);
|
||||
display.print(F("Network info:"));
|
||||
@ -319,43 +422,31 @@ void printConnInfo() {
|
||||
|
||||
void printRTCTimeToScreen() {
|
||||
char delim[] = ":";
|
||||
byte hrs;
|
||||
byte DST;
|
||||
|
||||
DST = checkDST(); //check whether DST is active and set the var accordingly
|
||||
|
||||
RTC.readTime();
|
||||
hrs = RTC.h;
|
||||
if(DST == 1){
|
||||
hrs = hrs + 1;
|
||||
}
|
||||
|
||||
display.setFont(&FreeSans18pt7b);
|
||||
display.setFont(&FreeSans22pt7b);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
int16_t tbx, tby; uint16_t tbw, tbh;
|
||||
display.getTextBounds(delim, 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x = ((display.width() / 2) - tbw);
|
||||
uint16_t y = ((32 - tbh) / 2) - (tby - 4);
|
||||
uint16_t y = ((32 - tbh) / 2) - (tby - 4) + 10;
|
||||
display.getTextBounds("00", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x2 = (display.width() / 2) - 8 - tbw ;
|
||||
uint16_t y2 = ((32 - tbh) / 2) - ( tby - 4);
|
||||
uint16_t y2 = ((32 - tbh) / 2) - ( tby - 4) + 10;
|
||||
display.getTextBounds("00", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x3 = (display.width() / 2) + 8;
|
||||
|
||||
display.setPartialWindow(0, 0, display.width(), (display.height() - (display.height() - 32)));
|
||||
|
||||
display.setPartialWindow(0, 0, display.width(), (display.height() - (display.height() - 32)) + 20);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.setCursor(x, y);
|
||||
display.print(delim);
|
||||
display.setCursor(x2, y2);
|
||||
if(hrs < 10) {
|
||||
if(RTC.h < 10) {
|
||||
display.print("0");
|
||||
display.print(hrs);
|
||||
display.print(RTC.h);
|
||||
}
|
||||
else {
|
||||
display.print(hrs);
|
||||
display.print(RTC.h);
|
||||
}
|
||||
display.setCursor(x3, y2);
|
||||
if(RTC.m < 10) {
|
||||
@ -371,14 +462,15 @@ void printRTCTimeToScreen() {
|
||||
|
||||
void printRTCDateToScreen() {
|
||||
RTC.readTime();
|
||||
|
||||
display.setFont(&FreeSansBold9pt7b);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
int16_t tbx, tby; uint16_t tbw, tbh;
|
||||
display.getTextBounds("00 - 00 - 0000", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x = (display.width() / 2) - (tbw / 2) ;
|
||||
uint16_t y = 48 + (tbh / 2);
|
||||
uint16_t y = 48 + (tbh / 2) + 20;
|
||||
|
||||
display.setPartialWindow(0, 33, display.width(), 31);
|
||||
display.setPartialWindow(0, 33 + 20, display.width(), 31);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
@ -404,34 +496,36 @@ void printRTCDateToScreen() {
|
||||
while(display.nextPage());
|
||||
}
|
||||
|
||||
void printTempToScreen() {
|
||||
void printDataToScreen() {
|
||||
struct data *dtsp = &dataset;
|
||||
display.setFont(&FreeSansBold9pt7b);
|
||||
display.setFont(&FreeSansBold11pt7b);
|
||||
display.setTextColor(GxEPD_BLACK);
|
||||
int16_t tbx, tby; uint16_t tbw, tbh;
|
||||
display.getTextBounds("00.0 C", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x = ((display.width() - tbw) / 2) - tbx;
|
||||
uint16_t y = (92 - tbh) - tby;
|
||||
uint16_t y = (92 - tbh) - tby +20;
|
||||
display.getTextBounds("00 %", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x2 = ((display.width() - tbw) / 2) - tbx;
|
||||
uint16_t y2 = (132 - tbh) - tby;
|
||||
uint16_t y2 = (132 - tbh) - tby + 20;
|
||||
display.getTextBounds("1488 hpa", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t x3 = ((display.width() - tbw) / 2) - tbx;
|
||||
uint16_t y3 = ( 176 - tbh) - tby;
|
||||
uint16_t y3 = ( 176 - tbh) - tby + 20;
|
||||
display.getTextBounds("1488 ppm", 0, 0, &tbx, &tby, &tbw, &tbh);
|
||||
uint16_t y4 = ( 216 - tbh) - tby;
|
||||
uint16_t y4 = ( 216 - tbh) - tby + 20;
|
||||
|
||||
display.setPartialWindow(0, 70, display.width(), 33);
|
||||
display.setPartialWindow(0, 70 + 20, display.width(), 33);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
display.setCursor(x, y);
|
||||
display.print(dtsp -> temp, 1);
|
||||
display.print(F(" C"));
|
||||
display.drawCircle(x+48,80 + 20,3,GxEPD_BLACK);
|
||||
display.drawCircle(x+48,80 + 20,2,GxEPD_BLACK); //quick and dirty way to get a "degrees symbol"
|
||||
display.print(F(" C"));
|
||||
}
|
||||
while (display.nextPage());
|
||||
|
||||
display.setPartialWindow(0, 110, display.width(), 33);
|
||||
display.setPartialWindow(0, 110 + 20, display.width(), 33);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
@ -441,7 +535,7 @@ void printTempToScreen() {
|
||||
}
|
||||
while(display.nextPage());
|
||||
|
||||
display.setPartialWindow(0, 150 ,display.width(), 33);
|
||||
display.setPartialWindow(0, 150 + 20,display.width(), 33);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
@ -451,7 +545,7 @@ void printTempToScreen() {
|
||||
}
|
||||
while(display.nextPage());
|
||||
|
||||
display.setPartialWindow(0, 190 ,display.width(), 33);
|
||||
display.setPartialWindow(0, 190 +20 ,display.width(), 33);
|
||||
display.firstPage();
|
||||
do {
|
||||
display.fillScreen(GxEPD_WHITE);
|
||||
@ -463,45 +557,48 @@ void printTempToScreen() {
|
||||
}
|
||||
|
||||
float measureTemp() {
|
||||
// BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
|
||||
int temps[6];
|
||||
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
|
||||
int temps[5];
|
||||
|
||||
//light led while measuring
|
||||
digitalWrite(13, HIGH);
|
||||
|
||||
Serial.print(F("Measuring temperature..."));
|
||||
Serial.print(F("Measuring temperature"));
|
||||
|
||||
for(char i = 0; i <= 5; i++){
|
||||
temps[i] = bme.readTemperature() * 100;
|
||||
for(char i = 0; i < 5; i++){
|
||||
temps[i] = bme.temp() * 100;
|
||||
Serial.print(F("."));
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
float temp;
|
||||
|
||||
temp = (temps[1] + temps[2] + temps[3] + temps[4] + temps[5]) / 5;
|
||||
temp = (temps[0] + temps[1] + temps[2] + temps[3] + temps[4]) / 5;
|
||||
|
||||
Serial.print(F("done: "));
|
||||
Serial.println(temp / 100);
|
||||
digitalWrite(13, LOW);
|
||||
return temp / 100;
|
||||
|
||||
return temp/100;
|
||||
}
|
||||
|
||||
float measureHum() {
|
||||
int hums[6];
|
||||
float measureHum() {
|
||||
int hums[5];
|
||||
|
||||
//light led while measuring
|
||||
digitalWrite(13, HIGH);
|
||||
|
||||
Serial.print(F("Measuring humidity..."));
|
||||
Serial.print(F("Measuring humidity"));
|
||||
|
||||
for(char i = 0; i <= 5; i++){
|
||||
hums[i] = bme.readHumidity() * 100;
|
||||
for(char i = 0; i < 5; i++){
|
||||
hums[i] = bme.hum() * 100;
|
||||
Serial.print(F("."));
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
float hum;
|
||||
|
||||
hum = (hums[1] + hums[2] + hums[3] + hums[4] + hums[5]) / 5;
|
||||
hum = (hums[0] + hums[1] + hums[2] + hums[3] + hums[4]) / 5;
|
||||
|
||||
Serial.print(F("done: "));
|
||||
Serial.println(hum / 100);
|
||||
@ -511,23 +608,23 @@ float measureHum() {
|
||||
}
|
||||
|
||||
float measurePres() {
|
||||
// BME280::PresUnit presUnit(BME280::PresUnit_hPa);
|
||||
float presrs[6];
|
||||
BME280::PresUnit presUnit(BME280::PresUnit_hPa);
|
||||
float presrs[5];
|
||||
|
||||
//light led while measuring
|
||||
digitalWrite(13, HIGH);
|
||||
|
||||
Serial.print(F("Measuring pressure..."));
|
||||
Serial.print(F("Measuring pressure"));
|
||||
|
||||
for(char i = 0; i <= 5; i++){
|
||||
// presrs[i] = bme.pres();
|
||||
presrs[i] = bme.readPressure() / 100.0F; //returns in Pa, divide by 100 to get value in hPa
|
||||
for(char i = 0; i < 5; i++){
|
||||
presrs[i] = bme.pres(BME280::PresUnit_hPa);
|
||||
Serial.print(F("."));
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
float pres;
|
||||
|
||||
pres = (presrs[1] + presrs[2] + presrs[3] + presrs[4] + presrs[5]) / 5;
|
||||
pres = (presrs[0] + presrs[1] + presrs[2] + presrs[3] + presrs[4]) / 5;
|
||||
|
||||
Serial.print(F("done: "));
|
||||
Serial.println(pres);
|
||||
@ -538,9 +635,9 @@ float measurePres() {
|
||||
|
||||
int16_t measureCO2(){
|
||||
digitalWrite(13, HIGH);
|
||||
Serial.print(F("Measuring CO2..."));
|
||||
Serial.print(F("Measuring CO2....."));
|
||||
|
||||
int16_t co2conc = get_concentration();
|
||||
int16_t co2conc = get_co2_concentration(uint16_t(dataset.pres * 10));
|
||||
|
||||
Serial.print(F("done:"));
|
||||
Serial.println(co2conc);
|
||||
|
Loading…
Reference in New Issue
Block a user