Fixed more gfx primitives

This commit is contained in:
Laurence Bank
2024-09-27 20:02:18 +01:00
parent 9e7be62678
commit c7783eb2ce
4 changed files with 1324 additions and 723 deletions
+319
View File
@@ -0,0 +1,319 @@
// Created with image_to_c
// https://github.com/bitbank2/image_to_c
//
// Roboto_Black_38
// Data size = 4921 bytes
//
// for non-Arduino builds...
#ifndef PROGMEM
#define PROGMEM
#endif
const uint8_t Roboto_Black_38[] PROGMEM = {
0xff,0xbb,0x20,0x00,0x7e,0x00,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12,
0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0d,0x14,0x36,0x00,0x04,0x00,0xcc,0xff,
0x1c,0x00,0x15,0x17,0x15,0x00,0x01,0x00,0xc9,0xff,0x28,0x00,0x28,0x2b,0x35,0x00,
0x01,0x00,0xcc,0xff,0x60,0x00,0x25,0x2b,0x45,0x00,0x03,0x00,0xc4,0xff,0xad,0x00,
0x31,0x37,0x36,0x00,0x03,0x00,0xcc,0xff,0x04,0x01,0x2f,0x32,0x36,0x00,0x02,0x00,
0xcc,0xff,0x51,0x01,0x09,0x0b,0x15,0x00,0x01,0x00,0xc9,0xff,0x56,0x01,0x15,0x1a,
0x4a,0x00,0x04,0x00,0xc7,0xff,0x8c,0x01,0x16,0x1a,0x4a,0x00,0x01,0x00,0xc7,0xff,
0xc5,0x01,0x21,0x22,0x20,0x00,0x01,0x00,0xcc,0xff,0xfb,0x01,0x24,0x28,0x26,0x00,
0x02,0x00,0xd5,0xff,0x14,0x02,0x0d,0x14,0x17,0x00,0x02,0x00,0xf8,0xff,0x24,0x02,
0x16,0x21,0x09,0x00,0x05,0x00,0xe6,0xff,0x26,0x02,0x0e,0x16,0x0c,0x00,0x04,0x00,
0xf5,0xff,0x33,0x02,0x1b,0x1a,0x3a,0x00,0xff,0xff,0xcc,0xff,0x5b,0x02,0x25,0x2b,
0x36,0x00,0x03,0x00,0xcc,0xff,0x92,0x02,0x18,0x2b,0x35,0x00,0x06,0x00,0xcc,0xff,
0xb0,0x02,0x26,0x2b,0x35,0x00,0x02,0x00,0xcc,0xff,0xe7,0x02,0x26,0x2b,0x36,0x00,
0x02,0x00,0xcc,0xff,0x28,0x03,0x27,0x2b,0x35,0x00,0x02,0x00,0xcc,0xff,0x56,0x03,
0x25,0x2b,0x36,0x00,0x03,0x00,0xcc,0xff,0x90,0x03,0x26,0x2b,0x36,0x00,0x03,0x00,
0xcc,0xff,0xd1,0x03,0x26,0x2b,0x35,0x00,0x02,0x00,0xcc,0xff,0xf4,0x03,0x25,0x2b,
0x36,0x00,0x03,0x00,0xcc,0xff,0x38,0x04,0x25,0x2b,0x36,0x00,0x03,0x00,0xcc,0xff,
0x78,0x04,0x0e,0x16,0x29,0x00,0x04,0x00,0xd8,0xff,0x95,0x04,0x0f,0x15,0x37,0x00,
0x03,0x00,0xd8,0xff,0xb8,0x04,0x20,0x26,0x24,0x00,0x02,0x00,0xd9,0xff,0xe2,0x04,
0x21,0x2b,0x19,0x00,0x05,0x00,0xdd,0xff,0xea,0x04,0x20,0x26,0x24,0x00,0x04,0x00,
0xd9,0xff,0x13,0x05,0x22,0x26,0x35,0x00,0x01,0x00,0xcc,0xff,0x46,0x05,0x3e,0x42,
0x43,0x00,0x02,0x00,0xce,0xff,0xc9,0x05,0x33,0x32,0x35,0x00,0x00,0x00,0xcc,0xff,
0xff,0x05,0x29,0x30,0x35,0x00,0x04,0x00,0xcc,0xff,0x2a,0x06,0x2c,0x31,0x36,0x00,
0x03,0x00,0xcc,0xff,0x66,0x06,0x29,0x30,0x35,0x00,0x04,0x00,0xcc,0xff,0x8e,0x06,
0x24,0x29,0x35,0x00,0x04,0x00,0xcc,0xff,0xa0,0x06,0x23,0x28,0x35,0x00,0x04,0x00,
0xcc,0xff,0xb2,0x06,0x2c,0x32,0x36,0x00,0x03,0x00,0xcc,0xff,0xf0,0x06,0x2c,0x34,
0x35,0x00,0x04,0x00,0xcc,0xff,0x06,0x07,0x0c,0x16,0x35,0x00,0x05,0x00,0xcc,0xff,
0x0d,0x07,0x25,0x2a,0x36,0x00,0x01,0x00,0xcc,0xff,0x32,0x07,0x2c,0x2f,0x35,0x00,
0x04,0x00,0xcc,0xff,0x5e,0x07,0x23,0x28,0x35,0x00,0x04,0x00,0xcc,0xff,0x6e,0x07,
0x39,0x41,0x35,0x00,0x04,0x00,0xcc,0xff,0xa3,0x07,0x2c,0x34,0x35,0x00,0x04,0x00,
0xcc,0xff,0xc7,0x07,0x2e,0x33,0x36,0x00,0x02,0x00,0xcc,0xff,0x08,0x08,0x29,0x30,
0x35,0x00,0x04,0x00,0xcc,0xff,0x2a,0x08,0x2e,0x33,0x3f,0x00,0x03,0x00,0xcc,0xff,
0x74,0x08,0x2a,0x30,0x35,0x00,0x04,0x00,0xcc,0xff,0x9d,0x08,0x2a,0x2e,0x36,0x00,
0x02,0x00,0xcc,0xff,0xe7,0x08,0x2c,0x2f,0x35,0x00,0x01,0x00,0xcc,0xff,0x02,0x09,
0x29,0x31,0x36,0x00,0x04,0x00,0xcc,0xff,0x27,0x09,0x31,0x31,0x35,0x00,0x00,0x00,
0xcc,0xff,0x5c,0x09,0x3e,0x40,0x35,0x00,0x01,0x00,0xcc,0xff,0xa3,0x09,0x2f,0x2f,
0x35,0x00,0x00,0x00,0xcc,0xff,0xe2,0x09,0x2f,0x2e,0x35,0x00,0x00,0x00,0xcc,0xff,
0x12,0x0a,0x29,0x2d,0x35,0x00,0x02,0x00,0xcc,0xff,0x37,0x0a,0x10,0x15,0x4b,0x00,
0x04,0x00,0xc3,0xff,0x4b,0x0a,0x23,0x20,0x3a,0x00,0xff,0xff,0xcc,0xff,0x76,0x0a,
0x11,0x15,0x4b,0x00,0x00,0x00,0xc3,0xff,0x90,0x0a,0x1f,0x21,0x1a,0x00,0x01,0x00,
0xcc,0xff,0xae,0x0a,0x21,0x21,0x09,0x00,0x00,0x00,0x01,0x00,0xb0,0x0a,0x14,0x19,
0x0b,0x00,0x02,0x00,0xca,0xff,0xbc,0x0a,0x24,0x27,0x29,0x00,0x02,0x00,0xd9,0xff,
0xf1,0x0a,0x24,0x2a,0x39,0x00,0x04,0x00,0xc9,0xff,0x1b,0x0b,0x22,0x26,0x29,0x00,
0x02,0x00,0xd9,0xff,0x47,0x0b,0x24,0x2a,0x39,0x00,0x02,0x00,0xc9,0xff,0x77,0x0b,
0x25,0x28,0x29,0x00,0x02,0x00,0xd9,0xff,0xab,0x0b,0x1a,0x1b,0x38,0x00,0x01,0x00,
0xc9,0xff,0xd0,0x0b,0x25,0x2b,0x37,0x00,0x02,0x00,0xd9,0xff,0x11,0x0c,0x24,0x2a,
0x38,0x00,0x03,0x00,0xc9,0xff,0x30,0x0c,0x0e,0x14,0x37,0x00,0x03,0x00,0xca,0xff,
0x53,0x0c,0x15,0x14,0x47,0x00,0xfc,0xff,0xca,0xff,0x7b,0x0c,0x27,0x28,0x38,0x00,
0x03,0x00,0xc9,0xff,0xa2,0x0c,0x0c,0x14,0x38,0x00,0x04,0x00,0xc9,0xff,0xaa,0x0c,
0x38,0x40,0x28,0x00,0x04,0x00,0xd9,0xff,0xd6,0x0c,0x24,0x2a,0x28,0x00,0x03,0x00,
0xd9,0xff,0xf2,0x0c,0x26,0x2a,0x29,0x00,0x02,0x00,0xd9,0xff,0x23,0x0d,0x24,0x2a,
0x37,0x00,0x04,0x00,0xd9,0xff,0x4d,0x0d,0x24,0x2a,0x37,0x00,0x02,0x00,0xd9,0xff,
0x7e,0x0d,0x18,0x1c,0x28,0x00,0x03,0x00,0xd9,0xff,0x8f,0x0d,0x23,0x26,0x29,0x00,
0x01,0x00,0xd9,0xff,0xcb,0x0d,0x18,0x19,0x32,0x00,0x00,0x00,0xd0,0xff,0xec,0x0d,
0x24,0x2a,0x28,0x00,0x03,0x00,0xda,0xff,0x08,0x0e,0x26,0x26,0x27,0x00,0x00,0x00,
0xda,0xff,0x2e,0x0e,0x34,0x36,0x27,0x00,0x01,0x00,0xda,0xff,0x64,0x0e,0x26,0x26,
0x27,0x00,0x00,0x00,0xda,0xff,0x92,0x0e,0x26,0x26,0x37,0x00,0x00,0x00,0xda,0xff,
0xc4,0x0e,0x22,0x26,0x27,0x00,0x02,0x00,0xda,0xff,0xe3,0x0e,0x16,0x18,0x47,0x00,
0x01,0x00,0xc7,0xff,0x18,0x0f,0x07,0x13,0x3f,0x00,0x06,0x00,0xcc,0xff,0x20,0x0f,
0x16,0x18,0x47,0x00,0x01,0x00,0xc7,0xff,0x57,0x0f,0x28,0x2f,0x11,0x00,0x03,0x00,
0xe3,0xff,0x42,0xff,0xd7,0xf2,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xfe,0xbf,0xf1,0xff,0xc8,0xf6,0x83,0xd3,0x8b,0xf9,0x01,0x5b,0x5b,0x0a,0x32,0x27,
0xff,0xff,0xd7,0xff,0xd7,0xff,0xff,0xff,0xd7,0xfc,0x28,0x38,0xc4,0x53,0x11,0x75,
0x5f,0xff,0xfe,0xab,0xd5,0x7f,0xff,0xff,0xea,0xbd,0x57,0xff,0xe5,0x72,0xff,0xff,
0xf3,0x17,0xc9,0xbf,0xfa,0xaf,0x55,0xff,0xff,0xea,0xbd,0x54,0x44,0xc8,0x2f,0xff,
0x28,0x20,0x9f,0x17,0x99,0xff,0xff,0xd5,0x7a,0xaf,0xff,0xff,0xfd,0x57,0xaa,0xff,
0xff,0xe0,0x28,0x44,0xb9,0x1f,0xff,0xff,0xff,0x82,0x0f,0x04,0x0f,0x08,0x3c,0x27,
0xa7,0xa7,0xa7,0xde,0xbc,0xc7,0x57,0xd3,0xe9,0x3f,0xde,0xbe,0xff,0xfe,0xc7,0xed,
0xf7,0xde,0xc3,0xd8,0x7c,0x3d,0x87,0x86,0x1e,0xc3,0xc3,0x78,0x6f,0x0d,0xe1,0xbc,
0x1b,0xdf,0x0d,0xef,0x39,0x86,0x7b,0x7d,0xea,0x40,0x7e,0xeb,0xb5,0xdb,0x5e,0x3d,
0xaf,0xda,0xda,0xda,0xc3,0x0b,0x0c,0x2c,0x18,0x2c,0x18,0x2f,0xff,0xff,0xf8,0x28,
0x20,0xe4,0x51,0x04,0x0f,0x4f,0x4f,0x4f,0x53,0x18,0x7b,0x41,0xf3,0x13,0x30,0xe2,
0x9d,0x3a,0x6e,0xbd,0x2f,0x5f,0xaf,0x5f,0x4a,0xd6,0xa4,0x05,0xa4,0xbc,0x75,0xe9,
0x6d,0x2e,0xd5,0x6d,0x2e,0xd2,0x58,0x30,0x55,0x8a,0xf5,0xa5,0xaf,0x5a,0xe9,0x17,
0x91,0xd0,0x20,0x7a,0xa7,0xd2,0x7a,0x49,0xea,0x9f,0x5e,0xb3,0x13,0x3a,0x49,0x37,
0xaa,0x7a,0xfe,0xbe,0x97,0xd7,0xf5,0xf5,0xb5,0xd3,0x69,0x61,0xa8,0xf0,0xfe,0x2d,
0x6d,0x6d,0x6d,0x60,0xc1,0x40,0x28,0x3c,0xe4,0xb1,0x04,0x1e,0x83,0xc2,0x7a,0x7a,
0x7d,0xeb,0xde,0x8c,0x64,0xf4,0x1f,0xfe,0xbf,0x7f,0x5f,0xfb,0xfd,0x2e,0xc2,0xee,
0x97,0x15,0xb5,0xfb,0x0b,0xad,0xad,0x05,0xa6,0x72,0x4a,0xd3,0xf0,0x9f,0xa7,0xf7,
0xe8,0xc6,0x1f,0xab,0x6b,0xd5,0xfe,0xc7,0x14,0xd6,0xfb,0xed,0x6f,0x75,0xbc,0x80,
0xb6,0xb8,0x61,0x78,0xbd,0xbd,0xbe,0xf6,0xf7,0xc3,0x32,0xcd,0xe1,0x82,0x6f,0x06,
0x08,0xcb,0x90,0xff,0xeb,0xff,0xff,0x80,0x28,0x88,0x21,0x84,0xf5,0xd3,0xd7,0x5d,
0x3a,0x0b,0x4b,0xad,0x2d,0x7a,0xd2,0xfd,0x7a,0xfd,0x2f,0xd7,0xfa,0xfd,0x7f,0xff,
0xaf,0xf8,0xff,0xff,0xff,0x90,0x1f,0xff,0x7f,0xff,0xbf,0xf7,0xfb,0xff,0x7b,0xf7,
0xbf,0xed,0xf7,0xbe,0xdf,0x7b,0x7b,0x7b,0x76,0xb7,0xda,0xdf,0x0f,0x00,0x20,0x65,
0x34,0xa0,0xfb,0xd3,0xe1,0xf7,0x1c,0x81,0x3d,0xbd,0xbd,0xfb,0xdb,0xdf,0xbf,0xdb,
0xfd,0xfb,0xff,0xdb,0xff,0xfe,0xff,0x7f,0xff,0xfe,0xff,0xff,0xff,0xaf,0xff,0xfd,
0x7f,0xaf,0xff,0xd2,0xff,0xeb,0x5f,0xd2,0xfd,0x2f,0xd2,0xeb,0x5d,0x2d,0x2d,0x28,
0xe4,0x05,0x70,0xb6,0xba,0xd8,0x50,0x28,0x34,0xe4,0x27,0xfa,0xff,0xff,0xfc,0x88,
0xb9,0x8a,0x3c,0x3c,0x2e,0x81,0xe1,0x3e,0x1e,0x0b,0xc1,0xe1,0x62,0x22,0xe4,0x05,
0x65,0xac,0x60,0xce,0x89,0xf3,0x98,0x4e,0x9e,0x9e,0x9e,0x8c,0x41,0x7a,0x5e,0xad,
0xf4,0xde,0x95,0xea,0xde,0x93,0xe0,0xd4,0x2d,0xda,0xc3,0x50,0xa0,0x28,0x30,0xe5,
0xa3,0xff,0xff,0xff,0xff,0xff,0xff,0xe2,0x66,0x27,0xfc,0xa0,0xc3,0x96,0x8f,0xff,
0xff,0xff,0xff,0xff,0xff,0x80,0x20,0x7f,0xff,0xff,0xff,0xfe,0xbf,0x5e,0xb5,0xea,
0x3a,0xa9,0x02,0x58,0x35,0x00,0xff,0x80,0x20,0x84,0xda,0x10,0x7a,0x7f,0x1d,0xd4,
0x80,0xff,0x6b,0x0c,0x28,0x28,0x96,0x97,0xfe,0x97,0xff,0x5a,0xff,0x5a,0xff,0x5a,
0xff,0x5a,0xff,0xf5,0xaf,0xf5,0xaf,0xf5,0xaf,0xf5,0xaf,0xff,0x5a,0xff,0x5a,0xff,
0x5a,0xff,0x5a,0xff,0x5a,0xff,0xf5,0xaf,0xf5,0xaf,0xf5,0x1f,0x00,0x28,0x38,0xe4,
0xa3,0x04,0x0f,0x08,0x3c,0x20,0xf4,0xf4,0xf4,0xff,0x4f,0x98,0xdb,0xd2,0x6f,0xa7,
0xd2,0xbf,0x7f,0xff,0xfe,0x2a,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0x01,0x69,
0x7f,0xff,0xfe,0xbb,0x75,0xda,0xed,0xa5,0xc7,0xb5,0xfb,0x5b,0x5b,0x58,0x61,0x61,
0x85,0x83,0x05,0x00,0x28,0xb6,0x0b,0x05,0x82,0xc1,0x60,0xb0,0x58,0x28,0xfe,0x64,
0xb9,0x2f,0x82,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xe0,0x28,0x38,0xe5,0x9f,0x04,0x0f,0x08,0x3c,0x20,0xf4,0xf4,0xf5,0xd3,0xfd,
0x18,0xea,0xfa,0x0f,0xa5,0xf4,0xdf,0xf1,0xff,0x5f,0xca,0x18,0x5f,0xaf,0x5a,0xe9,
0x7e,0x96,0xba,0x5a,0x5a,0x5a,0x5a,0x5a,0xe9,0x75,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
0xa5,0xae,0x96,0x8d,0x22,0xaf,0xff,0xff,0xc0,0x28,0x34,0xe5,0xa1,0x04,0x74,0x8c,
0x84,0x1e,0x10,0x7a,0x7a,0x7a,0x7a,0xf7,0xa3,0x1f,0xbc,0x26,0xfa,0x7f,0x7f,0xf1,
0xff,0xff,0x4b,0x5c,0x25,0x9c,0xc5,0xba,0xeb,0xae,0x17,0x07,0xdf,0x7d,0xe7,0x58,
0xed,0xf6,0xf7,0xef,0xdf,0x9c,0xc3,0xbe,0xaf,0xa5,0x20,0x2d,0x78,0x6b,0xc5,0x6d,
0x6f,0xb5,0xb5,0xb0,0xb0,0xd6,0x18,0x2c,0x18,0x28,0x28,0x54,0xc6,0x7a,0xfe,0xbf,
0xae,0xbf,0xae,0xbf,0xaf,0xeb,0xaf,0xeb,0xa3,0x14,0x7f,0xe9,0x7f,0xe9,0x7a,0x5f,
0xfa,0x5e,0xbf,0x5e,0x97,0xfe,0x97,0xaf,0xd7,0xa1,0x32,0x44,0x7c,0x80,0xff,0xf3,
0xaa,0x67,0xff,0xff,0xff,0xff,0xff,0xc0,0x20,0x81,0x0f,0xff,0xff,0xd7,0xff,0x9c,
0xb6,0xbf,0xff,0xeb,0xd7,0xff,0x96,0x11,0xe0,0x81,0xf1,0x0f,0xbe,0xf4,0xfb,0xfe,
0x63,0x73,0xc1,0x84,0x1f,0x31,0x29,0xbc,0x7d,0xff,0xbf,0x7f,0xea,0x73,0x0c,0xea,
0xff,0x90,0x16,0xbe,0x97,0x0d,0x76,0x2b,0x7e,0xb6,0xb6,0xb0,0xd6,0xd6,0x18,0x59,
0xce,0x2a,0x28,0x58,0xe4,0x15,0x3a,0x46,0x61,0x70,0xb8,0x5d,0x70,0xba,0xeb,0xa3,
0xa4,0x86,0x0b,0x41,0x69,0x75,0xa5,0xd6,0x97,0xf4,0x5c,0x46,0xa0,0x81,0xf8,0x4f,
0x8b,0xee,0x2e,0xef,0x99,0x0b,0x84,0x1b,0xa7,0xfa,0x6f,0xfb,0xff,0xc8,0x0b,0x5f,
0xfa,0xf5,0xdb,0xfb,0x4b,0x61,0x85,0xe2,0xb7,0xda,0xda,0xda,0xda,0xc3,0x0b,0x0c,
0x2c,0x18,0x28,0xfe,0xb9,0x43,0x2b,0x5f,0xd2,0xfd,0x2f,0xeb,0x5f,0xd2,0xfd,0x2f,
0xd7,0xaf,0xd2,0xfd,0x2f,0xd7,0xad,0x7a,0xfd,0x2f,0xd7,0xad,0x7a,0xd7,0xf4,0xbf,
0xad,0x7a,0xd7,0xf4,0xbf,0x4a,0x28,0x34,0xe5,0xa1,0x04,0x0f,0x08,0x3c,0x20,0xf4,
0xf4,0xf4,0xff,0x4f,0x98,0xeb,0xe9,0xf4,0x9b,0xff,0xfe,0x9f,0xfe,0xd7,0x7a,0xff,
0xb5,0xdb,0x4b,0x62,0xba,0xc3,0x5b,0x5b,0x58,0x41,0xe9,0xe9,0xe9,0xe8,0xc7,0x57,
0xd3,0xe9,0x37,0xd3,0xff,0x15,0x77,0xfd,0xaf,0xe4,0x05,0xa5,0xda,0xf6,0xbb,0x15,
0xfb,0x5b,0x5b,0x5b,0x5b,0x58,0x30,0x58,0x30,0x50,0x28,0x38,0xe4,0xa3,0x04,0x1e,
0x10,0x78,0x41,0xe9,0xe9,0xe9,0xe9,0xfe,0x8c,0x74,0x7d,0x07,0xd2,0x6f,0xae,0x37,
0xee,0xbf,0xff,0xef,0xf7,0xf2,0x02,0xfd,0xae,0xc2,0xd8,0xf5,0xbf,0xef,0xbe,0x19,
0x90,0x3d,0x85,0xe0,0xc2,0xac,0x57,0xf4,0xbf,0x4b,0x5d,0x2c,0x25,0x82,0xe7,0x21,
0x6e,0xba,0xeb,0x85,0xd7,0x05,0xc2,0xe5,0xec,0x80,0x20,0x84,0xda,0x10,0x7a,0x7f,
0x1d,0xd4,0x80,0xff,0x6b,0x0c,0x2c,0x7f,0xff,0xff,0xff,0xf2,0x4d,0x84,0x1e,0x9f,
0xc7,0x75,0x20,0x3f,0xda,0xc3,0x0a,0x20,0xa4,0xd6,0x10,0x7a,0x7f,0xaf,0x7f,0x5b,
0xfe,0xd6,0x18,0x58,0xff,0xff,0xff,0xff,0xff,0x95,0xd7,0xff,0xff,0xff,0xff,0xff,
0xf5,0xfa,0xf5,0xaf,0x51,0xd5,0x48,0x12,0xc1,0xa8,0x28,0x7b,0x0b,0x0b,0x05,0x85,
0x82,0xc2,0xc1,0x61,0x60,0xb0,0xb0,0x96,0x08,0x14,0x41,0x41,0x41,0x41,0x42,0xa8,
0x38,0x38,0x38,0x39,0x01,0x07,0x83,0x07,0x86,0xe1,0xe0,0xf0,0xf0,0x78,0x78,0x3c,
0x3c,0x3c,0x1e,0x1c,0xff,0x94,0x51,0xff,0xe6,0x87,0xff,0x80,0x29,0x7c,0x1c,0x38,
0x38,0x70,0xe0,0xe1,0xc1,0xc3,0x87,0x20,0x20,0xf0,0x61,0xe0,0xc3,0x83,0xc1,0xe1,
0xe0,0xfe,0x0b,0x05,0x82,0xc2,0xc1,0x05,0x82,0x0a,0x20,0xa1,0x42,0x82,0x85,0x05,
0x0a,0x0a,0x14,0x28,0x28,0x28,0x30,0xe5,0xa3,0x04,0x0f,0x08,0x3c,0x20,0xf4,0xf4,
0xff,0x4f,0xf4,0x63,0xab,0xd3,0xe9,0xc7,0xfe,0x50,0xb7,0xd7,0xd2,0xd2,0xd7,0x4b,
0x4b,0x4b,0x4b,0x4b,0xae,0xb4,0xba,0xfe,0xbf,0xff,0x1f,0xfc,0xc7,0x6c,0x27,0xa7,
0xde,0xbd,0xff,0x5b,0xf5,0xb5,0x86,0xa0,0x28,0x6c,0xe6,0x33,0x3a,0xea,0x60,0x81,
0xe1,0x07,0x84,0x1e,0x9e,0x13,0xd1,0xd0,0x29,0xe8,0xe6,0xa4,0xf4,0x10,0x6f,0x41,
0x06,0xf4,0x9b,0xe9,0xf4,0x9b,0xd2,0x7e,0x8e,0x79,0x0d,0xe9,0x02,0x07,0xf4,0x10,
0x6d,0xea,0x9f,0xd2,0x6f,0xaa,0xfd,0x2d,0xfc,0xc5,0xdb,0xea,0x82,0xfe,0x92,0x5f,
0xeb,0xf5,0x4a,0xbe,0xbf,0xff,0xfd,0x2f,0xff,0xff,0xff,0xff,0xff,0x8a,0x4b,0xff,
0xfd,0x7f,0xd7,0xeb,0x90,0x1f,0xd7,0x7e,0xbf,0x6b,0xfb,0xe9,0x7d,0xaf,0xf6,0x9a,
0x5e,0xc4,0x30,0x96,0xdc,0x7e,0xcc,0x89,0x5f,0x55,0xdb,0x4d,0x6e,0x1a,0x61,0x76,
0x18,0x20,0xc2,0xdb,0x11,0xef,0x7e,0x1e,0xde,0xc3,0xd8,0x66,0x4d,0xf3,0xa2,0x5f,
0x0c,0x7b,0xef,0x86,0xf0,0xc2,0xc1,0x85,0x9d,0x73,0x60,0x28,0x4c,0xe6,0x33,0xbd,
0x7f,0xbd,0x7f,0x4f,0xfb,0xd7,0xfb,0xd7,0xfb,0xd1,0x8c,0x3e,0xaf,0x5f,0xdf,0xab,
0xd7,0xf7,0xea,0xf5,0xff,0xf6,0xf4,0xbf,0xbd,0x5f,0xaf,0xef,0x57,0xe3,0xef,0x5e,
0xff,0x5e,0xf5,0xfe,0x73,0x12,0x7a,0xfe,0xff,0x7a,0x5f,0xdf,0xbe,0x97,0xf7,0x1b,
0xf6,0x3b,0x4b,0x1d,0xe4,0x83,0x87,0x70,0xfb,0xbe,0x73,0x4a,0xe1,0xf6,0xf7,0xff,
0xfe,0xbf,0x5d,0x2c,0x2c,0x55,0x54,0x28,0x77,0x0f,0x9c,0xd3,0x1e,0xde,0xfb,0xf7,
0xff,0xfe,0xb4,0xb0,0xb1,0xd7,0x55,0xc2,0xa8,0x29,0xdb,0x54,0x28,0x44,0xe5,0x2b,
0x39,0xa9,0x61,0x07,0xa0,0xf0,0x83,0xd3,0xd3,0xd3,0xd7,0xbd,0x19,0x0e,0xf8,0x41,
0xf4,0x9f,0xa6,0xf4,0xbf,0x7f,0xbd,0x63,0xe3,0xff,0xff,0xff,0xfc,0xe9,0x1a,0x40,
0x7e,0xff,0x5e,0xbb,0x7f,0x6b,0xb6,0x97,0x0c,0x2e,0xc5,0x7e,0xd6,0xd6,0xd6,0xd6,
0xc2,0xc3,0x58,0x60,0xb0,0x67,0x2d,0x50,0x3a,0xcd,0x1d,0xa5,0x83,0x87,0x70,0xee,
0xee,0x63,0x7f,0x06,0xf6,0xf7,0xdb,0xfd,0xbf,0xfd,0xbf,0xff,0xff,0xff,0xff,0xff,
0xfa,0x5f,0xfa,0x5f,0xa5,0xae,0x96,0x16,0x2a,0xaa,0xa1,0x54,0x28,0x53,0xac,0xd0,
0xff,0x9c,0xd6,0xff,0xff,0xff,0x34,0x3f,0xff,0xfc,0xe6,0xb7,0xff,0xff,0xff,0x9a,
0x49,0xfe,0xff,0x9c,0xd6,0xff,0xff,0xff,0xcd,0x0f,0xff,0xff,0x39,0xad,0xff,0xff,
0xff,0xff,0xff,0xe0,0x28,0x44,0xe5,0xa9,0x04,0x74,0x90,0x82,0x0f,0x41,0xe1,0x3d,
0x07,0xae,0x9f,0x7a,0xe8,0xc8,0xe7,0xc2,0x0f,0xa0,0x9b,0xf7,0xd2,0x7e,0xbf,0xbf,
0x8a,0x1f,0xff,0x9c,0x95,0xbf,0xff,0xff,0x3a,0x46,0xfe,0x40,0x5f,0xff,0xef,0xb7,
0xfe,0xc3,0x5c,0x30,0xb6,0x3f,0x7b,0x5b,0x5b,0x0b,0x0d,0x6c,0x2c,0x18,0x2c,0x19,
0xcc,0x4c,0x39,0xa9,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xe7,0x35,0x2f,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x28,
0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xe6,
0x97,0x20,0x3f,0xd7,0x6b,0xff,0x69,0x76,0xbb,0x1f,0x5b,0x5b,0x5b,0x5b,0x5b,0x0b,
0x0d,0x67,0x34,0xa8,0x39,0xa7,0xe9,0x75,0xa5,0xae,0x97,0x5a,0x5a,0xf5,0xa5,0xa5,
0xd6,0xba,0x5d,0x69,0x6b,0xd6,0x96,0x97,0xc5,0x55,0xf7,0x7d,0xf7,0x73,0x22,0x7d,
0xd3,0xd3,0x75,0x74,0xfd,0xef,0xde,0xde,0xfd,0xef,0xde,0xdf,0xed,0xfe,0xde,0xd8,
0x39,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x68,0xef,0xf8,
0x3a,0x2b,0xfd,0x5f,0xea,0xff,0x57,0xfa,0xbf,0xd4,0xc5,0x97,0xfc,0x79,0x8c,0x2d,
0x18,0xa3,0xff,0xfe,0xe9,0x7b,0xff,0xf7,0x4b,0xdf,0xff,0xba,0x5e,0xff,0xd7,0x75,
0xf7,0xaf,0xae,0xeb,0xef,0xfd,0x76,0x3d,0xfe,0xbb,0xff,0xd7,0x7f,0xfa,0xef,0xff,
0x5d,0xff,0xeb,0xbf,0xf0,0x39,0xa9,0x5f,0xdf,0xdf,0xdf,0xde,0xfe,0xfe,0xfe,0xf7,
0xf7,0xf3,0x1a,0x5f,0xfb,0x7e,0xfb,0xfb,0xef,0xef,0xbf,0x6f,0xfd,0x8f,0xdf,0xde,
0xfe,0xfe,0xfe,0xf7,0xf7,0xf7,0xf7,0xf7,0x00,0x28,0x48,0xe5,0xa7,0x04,0x0f,0x08,
0x3c,0x20,0xf4,0xf0,0x9e,0x83,0xd7,0xbd,0x3d,0x19,0x0e,0xf8,0x41,0xf4,0x9b,0xe9,
0xf5,0xbe,0x9f,0xfd,0x27,0xfb,0xff,0xff,0xac,0x7d,0xff,0xff,0xd4,0x80,0xfd,0xff,
0xff,0xfa,0x5b,0x7f,0xfd,0xae,0xf5,0xda,0xed,0xa5,0xc3,0x0b,0xb1,0x5b,0x5f,0xb5,
0xb5,0xb0,0xb0,0xd6,0x18,0x58,0x61,0x60,0xc1,0x40,0x3b,0x4b,0x1d,0xe4,0x83,0x87,
0x77,0x77,0x73,0x9a,0x5f,0x0d,0xef,0xdd,0xff,0xff,0xff,0xeb,0x4b,0x0b,0x15,0xd5,
0x54,0x2a,0x82,0x9d,0xa5,0x8e,0x6c,0x7f,0xff,0xff,0xff,0xfe,0x28,0x44,0xe5,0xa9,
0x04,0x0f,0x08,0x3c,0x20,0xf4,0xf0,0x83,0xd3,0xd3,0xfd,0x3d,0x19,0x0e,0xf8,0x41,
0xf4,0x9b,0xe9,0xf5,0xbe,0x9f,0xfe,0x9b,0x8f,0xff,0xfd,0xeb,0xef,0xff,0xfe,0xad,
0x7f,0xff,0xe4,0x07,0xf6,0x97,0xfd,0xae,0xf5,0xda,0xed,0xa5,0xc3,0x0b,0xb1,0x5b,
0x5f,0xb5,0xb5,0x86,0xb6,0xf0,0xde,0x1b,0xc1,0xbc,0xed,0xa1,0xb7,0xb7,0xb0,0xb0,
0xd6,0xd6,0xd6,0xd6,0x1a,0x80,0x3b,0x4b,0x1d,0xe4,0x81,0xdc,0x3b,0xbe,0xf9,0xcd,
0x2d,0xe1,0xff,0x7f,0xdf,0xff,0xf5,0xff,0xd2,0xc2,0xc5,0x75,0x55,0x50,0xbe,0xe6,
0x37,0xfb,0xdf,0xbd,0xfb,0xdf,0xbd,0xfb,0xdf,0xbf,0xdb,0xfd,0xbf,0xdb,0xe0,0x28,
0x40,0xe5,0xab,0x39,0x89,0xe1,0x07,0x84,0x1e,0x9e,0x9e,0x9e,0x9e,0x9f,0x31,0xff,
0xa4,0x1b,0xe1,0x3f,0xfe,0xfd,0x5f,0xf6,0x3f,0xbd,0x87,0xde,0xc3,0xe0,0xf6,0x0f,
0x61,0xec,0x3d,0x87,0x86,0x1e,0x1b,0xc3,0x78,0x6f,0x06,0xf0,0x6f,0x0f,0x86,0xf7,
0x9c,0xd3,0xfb,0xf7,0xc8,0x0b,0xff,0xb4,0xb6,0xd7,0x86,0x17,0x62,0xbf,0x6b,0x6b,
0x0d,0x6d,0x61,0x85,0x83,0x0b,0x3a,0x25,0xc0,0xff,0x94,0x20,0x73,0x14,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xf0,0x39,0x88,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xef,0xff,0xb4,0xa4,0x07,0xf6,0xbc,0x30,0x96,0xc7,0xd6,0xfb,0x5b,
0x5b,0x5b,0x58,0x61,0x61,0x85,0x9c,0xf2,0xe0,0x39,0xca,0xf9,0x01,0x69,0x7f,0xfe,
0xda,0x5f,0xff,0xbd,0x76,0xbf,0xef,0x5f,0xf6,0xbb,0xd7,0xfe,0xbb,0x75,0xff,0xfb,
0x69,0x7f,0xfe,0xf5,0xda,0xff,0xbd,0x7a,0xf7,0xef,0x5f,0xf6,0xbb,0xd7,0xff,0xed,
0xa5,0xff,0xfb,0x15,0xff,0xb5,0xff,0xb5,0xff,0xb5,0xff,0xb5,0xff,0x00,0x39,0x86,
0x9c,0xb3,0x7b,0xdf,0xfa,0x90,0x1a,0xff,0xff,0x6b,0xdf,0xff,0x5b,0xaf,0xf7,0xfe,
0xbf,0xfd,0xf5,0xba,0xff,0x7f,0xff,0xe9,0x76,0xbe,0xf7,0xff,0xff,0xff,0x5b,0xaa,
0xf7,0x31,0x45,0xff,0xff,0xef,0xfa,0xf5,0xbf,0x6b,0xdd,0x7f,0xef,0xff,0xfc,0x7d,
0x6d,0x47,0xef,0xff,0xd6,0xd7,0xff,0xbf,0xff,0x5b,0x5f,0xbf,0xff,0xf5,0x5b,0xbf,
0xff,0xf5,0xfb,0x5b,0xf0,0x20,0x27,0x39,0x1e,0xd2,0xde,0xbb,0x5d,0xeb,0x6d,0x7e,
0xb6,0xff,0x4b,0x6e,0xbd,0x76,0xeb,0x75,0xee,0xb7,0x5e,0xeb,0x74,0xb8,0xf6,0xbf,
0x6b,0x7e,0xb7,0xeb,0x6b,0xfb,0xd7,0x4f,0xf4,0xff,0x4f,0xbd,0x18,0xd3,0xd6,0xfa,
0x7d,0x6f,0xa7,0xd6,0xfa,0x6f,0x5f,0x49,0xbf,0xf4,0x9b,0xff,0x49,0xbf,0xbd,0x27,
0xfb,0xd5,0xe2,0xac,0x39,0xc9,0xc8,0x0d,0x2e,0xeb,0x75,0xfa,0xdb,0xfd,0x2d,0xbf,
0xd2,0xdb,0xfd,0x2d,0xfe,0xeb,0x75,0xee,0xb7,0x5f,0xad,0xbf,0xd2,0xdb,0xfd,0x2d,
0xbf,0x8a,0xdf,0xad,0xfa,0xdf,0xad,0xfa,0xdf,0xad,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xfe,0xfe,0xaa,0x50,0xcf,0x4b,0xf4,0xb4,0xbf,0x4b,0x4b,0xf4,0xb4,
0xbf,0x4b,0xad,0x74,0xba,0xd7,0x4b,0xad,0x74,0xba,0xd7,0x4b,0xad,0x74,0xba,0xd7,
0x4b,0xf4,0xb4,0xbf,0x46,0x9f,0xd7,0x8f,0xe0,0xff,0x99,0x93,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xd0,0x1f,0xe0,0x39,0xad,0x90,
0x17,0xfb,0xf7,0xfb,0xf7,0xfb,0x7f,0xbf,0x7f,0xbf,0x7b,0xf7,0xfb,0xf7,0xfb,0xf7,
0xbf,0x7f,0xbf,0x7f,0xb7,0xfb,0xf7,0xfb,0xf7,0xfb,0x7f,0xbf,0x7f,0xbf,0x7f,0xb7,
0xfb,0xf7,0xfb,0xf7,0xfb,0x7f,0xbf,0x60,0xff,0x90,0x5f,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,
0xff,0xc0,0x28,0x59,0xd2,0xca,0x7f,0xde,0xbf,0xa7,0xfd,0xeb,0xcc,0x83,0xd6,0xfd,
0xf4,0xaf,0xfe,0x9b,0xd7,0xff,0x49,0xbf,0xfd,0xbd,0x2f,0xfd,0x26,0xff,0x8d,0xb0,
0xff,0x80,0x3b,0x56,0x40,0x5e,0xde,0xfb,0x7b,0x7b,0xed,0xed,0xef,0xb6,0x28,0x30,
0xe5,0xa3,0x04,0x0f,0x08,0x3c,0x27,0xa7,0xa7,0xa7,0xde,0x8c,0x74,0xf4,0x1f,0xab,
0xff,0xdf,0x1f,0xff,0x39,0x8b,0x67,0x21,0xac,0x2e,0x17,0x5d,0x75,0xe6,0x3b,0xe2,
0x17,0xf5,0xff,0xfe,0xb6,0xb6,0xb1,0xc8,0x0f,0x7e,0xf7,0xc3,0x32,0x0b,0xb0,0xae,
0x0c,0x21,0x00,0x39,0x8e,0x7f,0xff,0xff,0xff,0x2d,0x23,0x08,0x3c,0x20,0xe2,0xee,
0xef,0xb9,0x8f,0xb8,0x4d,0xd3,0xef,0xff,0xdf,0xbf,0xff,0xff,0xeb,0xaf,0xfd,0x6f,
0x86,0x12,0x8e,0xba,0xa9,0x8b,0x2b,0x6b,0x0c,0x29,0x42,0x21,0x40,0x28,0x34,0xe5,
0x23,0x04,0x0f,0x08,0x3d,0x3c,0x27,0xa7,0xde,0x9e,0xbc,0xc6,0xde,0x93,0x7a,0x7e,
0xe2,0xbf,0xe3,0xff,0xff,0xce,0x59,0x7c,0x80,0xbf,0xae,0xfb,0x61,0x71,0x5b,0xed,
0x75,0xb5,0x86,0xb6,0xb0,0xc2,0xc1,0x82,0x80,0x28,0x63,0xff,0xff,0xff,0xff,0xff,
0xf9,0xcb,0x23,0x84,0x1f,0x09,0xf4,0xfa,0x1d,0x6b,0xeb,0x98,0xeb,0xa4,0x1f,0x5e,
0x9f,0xe3,0xfa,0xff,0xff,0xff,0xde,0x40,0x7f,0xff,0xb5,0xdf,0x6c,0x2e,0x3b,0xfb,
0xd9,0x93,0x3b,0x5d,0xae,0x1a,0xe1,0x82,0x10,0x28,0x38,0xe5,0x21,0x04,0x0f,0x08,
0x3c,0x27,0xa7,0xa7,0xa7,0xde,0xbc,0xc7,0x57,0xa0,0x9f,0xa6,0xf5,0xfa,0x7f,0xff,
0x8e,0xc7,0xfc,0x80,0x9c,0xc6,0xff,0xf6,0x64,0x0e,0xda,0x7d,0x85,0xd8,0x61,0x3e,
0x2f,0x6f,0x6f,0x6b,0x6b,0x61,0x61,0xac,0x30,0xb0,0x67,0x28,0xf0,0x28,0x7a,0x18,
0x27,0x58,0x5a,0xfa,0xd7,0xe7,0x73,0x29,0x75,0xfd,0x7f,0xfc,0x4d,0x4f,0xff,0xf9,
0x05,0x3b,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xfe,0x28,0x30,0xe4,0x29,0x04,0x19,0x61,0x74,0x1f,0x09,0xf4,0x3f,0x5a,0xfa,
0x31,0xf7,0x84,0x1e,0xaf,0xaf,0xfa,0xfe,0x3f,0xf5,0xff,0xdf,0xc8,0x0f,0xff,0xf7,
0xef,0xba,0xe1,0x85,0xb1,0xfb,0xdf,0xde,0x19,0x90,0x3b,0x0b,0x83,0x0b,0x8f,0x27,
0x2b,0xb5,0xa0,0xd2,0xe1,0x85,0xd0,0xad,0x7a,0xd2,0xda,0xda,0xc3,0x0b,0x0c,0x2c,
0x19,0xcb,0x44,0x39,0x8e,0x7f,0xff,0xff,0xff,0x2f,0x23,0x04,0x1e,0x83,0xd3,0xd3,
0x8e,0xfb,0x98,0xfd,0x84,0xf4,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xf0,0x20,0x84,0xda,0x10,0x7a,0xf7,0x1d,0xd4,0x80,0xfa,0xdf,0x0c,0x2c,0x7f,
0xca,0x73,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xfe,0x28,0x59,0x37,0x84,0x1e,0x9f,0xf7,0x5f,0x7d,0x7e,0xd6,
0x18,0x58,0xff,0x9d,0x0d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xfa,0xfd,0x75,0x8e,0xba,0xaa,0xa8,0x50,0x50,0x39,0xad,0xff,
0xff,0xff,0xff,0xce,0x51,0xfa,0x0b,0x5d,0x2d,0x2e,0xb4,0xb4,0xb4,0xb5,0xeb,0x4a,
0x2a,0xaa,0xbb,0xbe,0xfb,0xbe,0x63,0xd3,0xab,0xa7,0xef,0x6f,0x7e,0xf7,0xef,0x6f,
0x7e,0xf6,0xfb,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x28,0x4c,0xbc,0xe3,
0x90,0x41,0x8b,0xa0,0xc1,0x03,0xc2,0x69,0xe9,0xa7,0xa6,0x9c,0x6b,0x17,0xd9,0x8f,
0xa6,0x46,0xc2,0x61,0x3a,0xde,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x28,0x4c,0xe4,0x1a,0x63,0x28,0x3c,0x27,
0xa7,0xa7,0x17,0xf7,0x31,0xfb,0x4f,0x4f,0x5f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xc0,0x28,0x38,0xe5,0x21,0x04,0x0f,0x08,0x3c,0x27,0xa0,0xf4,0xf5,
0xd3,0xef,0x46,0x3a,0xfa,0x0d,0xe9,0x3f,0x5f,0xb7,0x1f,0x5f,0xff,0x7f,0xff,0xaf,
0xfb,0xe4,0x07,0xfa,0xf7,0x5b,0x6b,0xd8,0x4b,0x63,0xeb,0x6b,0x7d,0xad,0x85,0x86,
0xb0,0xc2,0xc1,0x82,0x80,0x28,0x44,0xe4,0x1e,0x62,0xe0,0x78,0x41,0xe9,0xc5,0xdd,
0xf7,0x31,0xf7,0x09,0xe9,0xbd,0xff,0xfb,0xf7,0xff,0xff,0xeb,0xf5,0xff,0xad,0xa5,
0x0d,0x63,0xaa,0xea,0xa6,0x30,0xac,0x30,0xb0,0xc2,0xc7,0xff,0xff,0xff,0x80,0x28,
0x2c,0xe4,0x2b,0x08,0x32,0xd2,0xa1,0x35,0xa0,0xfa,0xf4,0x3a,0xfa,0xe6,0x3a,0xe9,
0x07,0xd3,0xeb,0xf8,0xfe,0xbf,0xff,0xff,0xf7,0x90,0x1f,0xff,0xef,0xb6,0xbb,0x0b,
0x8e,0xfe,0xf7,0xbd,0x99,0x03,0x86,0x17,0x0c,0x2e,0x3f,0xff,0xff,0xff,0xff,0xf0,
0x28,0x94,0xcc,0x9a,0xd6,0xbc,0x7e,0x78,0x20,0x2a,0xff,0xff,0xff,0xff,0xff,0xff,
0xf8,0x28,0x34,0xe5,0x23,0x39,0x28,0xe1,0x03,0xd3,0xd3,0xd3,0xd3,0xef,0x46,0x36,
0xfa,0x0f,0xd5,0xff,0xbe,0xc7,0x7c,0x3e,0x74,0xd3,0xb3,0xac,0x7e,0x0f,0x61,0xed,
0xe1,0xbc,0x37,0x87,0xc1,0xbc,0xe9,0x21,0x83,0xed,0x9c,0xc2,0xfc,0x80,0xfd,0xa5,
0xc3,0x5d,0x8f,0x6b,0xad,0xac,0x35,0xb5,0x86,0x16,0x0c,0xe5,0xa2,0x20,0xa6,0x67,
0xff,0xff,0xff,0xff,0xf1,0x34,0xc7,0xf2,0x0a,0x66,0x7f,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xdf,0xf7,0xb3,0x48,0x7f,0xef,0x7b,0xde,0x0d,0x40,0x39,0xa5,
0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe4,0x07,0xed,0x76,0x17,0x1f,
0xbf,0xb3,0x28,0x76,0xbb,0x5d,0xae,0x0c,0x10,0x80,0x39,0xa6,0x75,0x20,0x35,0xef,
0xfa,0xdf,0xf5,0xee,0xb7,0xff,0xf4,0xb6,0xff,0xff,0xdd,0x2e,0xff,0xf7,0xaf,0x5e,
0xfd,0xeb,0xff,0x5d,0x8a,0xff,0xda,0xff,0xda,0xff,0xda,0xff,0xda,0xff,0xda,0x80,
0x39,0x85,0x1c,0x82,0xb4,0xf2,0x03,0xeb,0xff,0xd5,0x7b,0xbf,0xfa,0xdf,0xfd,0x7f,
0xbf,0xf4,0xb7,0xfe,0xd3,0xff,0xff,0xf7,0xeb,0xd3,0x5f,0xfe,0xe6,0x21,0x7d,0xfe,
0xbd,0x6f,0xfa,0x7f,0xf8,0xf8,0xeb,0x7f,0xa7,0xff,0xeb,0x6b,0xf7,0xff,0xfd,0xa6,
0xbf,0xff,0xaf,0x76,0xbf,0xfe,0x20,0x27,0x34,0xbd,0xb4,0xbe,0xb6,0xd7,0xeb,0x6d,
0x7d,0x2d,0xbf,0x74,0xbb,0xad,0x8f,0xad,0xfa,0xdf,0xad,0xfa,0xdf,0xf5,0xef,0x5e,
0xf5,0xef,0x5e,0xf4,0x63,0x4f,0xab,0xd5,0xf4,0xaf,0xdb,0xd2,0xfd,0xbd,0x2f,0xdb,
0xd2,0x78,0xab,0x00,0x39,0xa6,0x79,0x01,0xfb,0x4b,0xfd,0xfe,0xd2,0xff,0x7a,0xff,
0xb5,0xde,0xbf,0xf5,0xdb,0xaf,0xff,0xdb,0x4b,0xff,0xf7,0x4b,0x8f,0xf6,0xbf,0xf6,
0xbf,0xf6,0xbf,0xad,0xff,0xad,0xff,0xad,0xff,0xaf,0xd7,0xad,0x75,0xcb,0x51,0xfe,
0xbf,0xae,0xba,0xe1,0x70,0xa0,0x20,0x28,0x7f,0xff,0xff,0xf5,0xf9,0xd1,0x3b,0xad,
0x2d,0x74,0xba,0xd2,0xd7,0x4b,0xad,0x74,0xb4,0xba,0xd7,0x4b,0xad,0x2d,0x74,0xba,
0xd1,0xa0,0xd5,0x1f,0xe0,0x28,0x90,0x21,0x82,0x78,0x5d,0x3d,0x75,0xd3,0xa0,0xba,
0xd2,0xfe,0xbf,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x5f,0xc2,0x51,0x5c,0x2a,
0xe1,0xdf,0x20,0x6f,0x6f,0x7d,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfb,
0xdf,0xbd,0xbe,0x1d,0xad,0xf7,0xc3,0x5b,0xe0,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xfe,0x20,0x65,0x34,0xa0,0x7c,0x3d,0x3e,0xfb,0x8b,0x90,0x27,0xbe,0xdf,0xef,
0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfe,0xc3,0xe0,0xef,0x78,0x7f,0x58,
0x5f,0x40,0xb4,0xba,0xeb,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0x5e,0xb5,
0xd2,0x8e,0x40,0x57,0x5b,0x5d,0x70,0xb6,0x0a,0x28,0x24,0xbd,0x88,0x41,0x9c,0xe2,
0x21,0x07,0xd3,0x5a,0x7e,0xfa,0x6b,0x86,0xb4,0x2b,0x98,0xb7,0xe8,0x35,0xd3,0xfb,
0x5d,0x35,0x1b,0x52,0x03,0x0d,0x62,0x18,0x50};
+90
View File
@@ -0,0 +1,90 @@
// Created with image_to_c
// https://github.com/bitbank2/image_to_c
//
// Roboto_Black_78
// Data size = 1262 bytes
//
// for non-Arduino builds...
#ifndef PROGMEM
#define PROGMEM
#endif
const uint8_t Roboto_Black_78[] PROGMEM = {
0xff,0xbb,0x30,0x00,0x3a,0x00,0xb3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4b,0x59,
0x70,0x00,0x07,0x00,0x93,0xff,0x6a,0x00,0x32,0x59,0x6d,0x00,0x0c,0x00,0x94,0xff,
0xa7,0x00,0x4e,0x59,0x6e,0x00,0x05,0x00,0x93,0xff,0x12,0x01,0x4f,0x59,0x70,0x00,
0x04,0x00,0x93,0xff,0x95,0x01,0x4f,0x59,0x6d,0x00,0x05,0x00,0x94,0xff,0xe9,0x01,
0x4c,0x59,0x6f,0x00,0x06,0x00,0x94,0xff,0x5d,0x02,0x4f,0x59,0x70,0x00,0x06,0x00,
0x93,0xff,0xe6,0x02,0x4e,0x59,0x6d,0x00,0x04,0x00,0x94,0xff,0x2c,0x03,0x4c,0x59,
0x70,0x00,0x06,0x00,0x93,0xff,0xb7,0x03,0x4c,0x59,0x70,0x00,0x06,0x00,0x93,0xff,
0x3b,0x04,0x1c,0x2e,0x55,0x00,0x09,0x00,0xad,0xff,0x28,0x3c,0x71,0xc9,0x27,0x34,
0x5f,0x04,0x0f,0x04,0x0f,0x09,0xe8,0x3c,0x20,0xf4,0xf4,0xf4,0xf4,0xf4,0xf4,0xf4,
0xff,0x4f,0x4f,0xf4,0xf9,0x8e,0xfe,0x82,0x0d,0xf0,0x83,0xe9,0x3f,0xdf,0x4f,0xa5,
0x7e,0xff,0xe9,0x3f,0xdf,0xff,0xf5,0xc6,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0x20,0x35,0xef,0xff,0xff,0xad,
0xb5,0xff,0xd7,0x6e,0xbb,0x5f,0xf6,0xd2,0xe1,0x85,0xd8,0x61,0x2e,0x3d,0xaf,0xda,
0xda,0xfd,0xad,0xad,0xad,0xad,0xad,0xad,0xac,0x30,0xb6,0xb0,0xc2,0xc1,0x82,0xc1,
0x82,0xce,0x7c,0x74,0x28,0xbf,0x05,0x82,0xc1,0x60,0xb0,0xb0,0x58,0x2c,0x16,0x0b,
0x0b,0x05,0x82,0xc1,0x60,0xb0,0xb0,0x51,0xff,0xf3,0x2c,0xe0,0xb0,0x59,0xcc,0x36,
0x0b,0x05,0x95,0x2f,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x28,0x40,0x71,0xe8,0x67,0x36,0x67,0x04,0x0f,0x04,0x0f,0x08,0x3c,0x20,0xf4,
0xf0,0x83,0xd3,0xd3,0xd3,0xd3,0xd3,0xd7,0x4f,0x5d,0x3f,0xd3,0xe7,0x3c,0x23,0xa0,
0x83,0x7d,0x3e,0x93,0xf4,0xfd,0x3e,0x95,0xfb,0xff,0x15,0xfd,0x3f,0xff,0xff,0xca,
0x18,0xfa,0xfd,0x7f,0xad,0x7f,0x4b,0x5f,0xd2,0xd7,0xad,0x2d,0x74,0xba,0xd7,0x4b,
0x4b,0x5d,0x2d,0x2d,0x2e,0xb5,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
0xd2,0xd2,0xd2,0xd2,0xd7,0x4b,0x4b,0xad,0x2d,0x2d,0x2d,0x74,0xb4,0xb4,0xb4,0xb4,
0xb4,0xb4,0x69,0x4a,0xb5,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x28,0x3e,0x72,0x08,
0x67,0x34,0x6b,0x04,0x74,0x26,0x20,0x83,0xc2,0x07,0x84,0x1e,0x13,0xd0,0x78,0x4f,
0x4f,0x4f,0x4f,0x4f,0xbd,0x74,0xfb,0xd7,0xbd,0x1d,0x00,0x8f,0x04,0x0f,0xa4,0xdf,
0x41,0xfa,0xfa,0x7e,0x9b,0xff,0x5f,0xdf,0x1f,0xff,0xff,0xf5,0xeb,0xf5,0xeb,0x5d,
0x2d,0x74,0xb0,0x4b,0x39,0xa5,0xdd,0x75,0xd7,0x5c,0x2e,0xb8,0x5d,0x75,0xc3,0xe1,
0xf0,0xfb,0xe1,0xf7,0xdf,0x7d,0xe7,0x56,0x7f,0x06,0xf0,0xde,0xfb,0x7b,0xef,0xde,
0xff,0xff,0xdf,0xbf,0x39,0x93,0xba,0xfe,0xeb,0x5b,0xf5,0x90,0x16,0xbd,0xa5,0xc3,
0x5d,0xb0,0xbc,0x18,0x25,0xb1,0xf5,0xbf,0x5b,0x5b,0x5d,0x6f,0xb0,0xb6,0xb0,0xd6,
0xd6,0x18,0x5b,0x0b,0x0d,0x60,0xc1,0x61,0x82,0xce,0x68,0xd6,0x73,0xe4,0x20,0x28,
0x56,0x73,0x23,0x2b,0xfa,0xeb,0xfa,0xfe,0xba,0xfe,0xba,0xfe,0xbf,0xae,0xbf,0xae,
0xbf,0xaf,0xeb,0xaf,0xeb,0xaf,0xeb,0xfa,0xeb,0xcc,0x50,0xf5,0xf4,0xbe,0xbd,0x7e,
0xbd,0x7d,0x2f,0xaf,0x5f,0x4b,0xff,0x4b,0xeb,0xd7,0xd2,0xff,0xd2,0xf5,0xfa,0xf4,
0xbf,0xf4,0xbd,0x7e,0xbd,0x2f,0x5f,0xaf,0x5f,0xaf,0x4b,0xd7,0xe2,0x64,0x86,0xa3,
0xff,0xc8,0x0f,0xff,0xfc,0xea,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xfc,0x28,0x12,0x08,0x7f,0xfe,0xbf,0xff,0xff,0xff,0xaf,0xff,0xff,0xff,
0x39,0x66,0x7f,0x5f,0xff,0xff,0xfe,0xb5,0xff,0xff,0xff,0xfd,0x23,0x8a,0x1b,0xe5,
0xc5,0x7c,0x10,0x3f,0x08,0x3e,0x21,0xf0,0xfb,0xef,0xbd,0x3e,0xfb,0xef,0xfb,0xef,
0xf4,0x73,0xa2,0x5e,0xc1,0x03,0xe7,0x10,0x48,0x3e,0x71,0x83,0x5b,0xce,0x40,0x43,
0xe6,0x28,0xdf,0x16,0xff,0xf7,0xfe,0xef,0xff,0xff,0xff,0xff,0x39,0xa3,0x3a,0xff,
0xa9,0x01,0xfd,0xaf,0xfd,0xa5,0xb7,0xf6,0xbd,0xa5,0xb6,0x17,0x83,0x09,0x6c,0x7d,
0x6f,0xb5,0xfb,0x5b,0x5b,0x5b,0x5b,0x5b,0x58,0x6b,0x6b,0x0c,0x2c,0x30,0xb0,0xc2,
0xc1,0x85,0x83,0x05,0x9c,0xf8,0xf8,0x28,0x64,0x71,0x84,0xa7,0x58,0x4b,0x3a,0x82,
0xd8,0x2e,0x17,0x05,0xc2,0xe1,0x75,0xc2,0xeb,0x85,0xd7,0x5d,0x75,0xd7,0x5d,0x74,
0x74,0xe6,0xe8,0xe9,0x0f,0xd0,0x2d,0x02,0xe1,0x68,0x2d,0x2e,0xb4,0xb8,0x5a,0xf5,
0xa5,0xd6,0x97,0xe9,0x7f,0x47,0x1c,0x33,0x53,0x8a,0x29,0xe0,0x83,0xe8,0x20,0xfc,
0x20,0xf5,0x4f,0xc2,0x7d,0x20,0xf8,0xbd,0x7b,0xef,0xbf,0xef,0xbf,0xee,0x39,0xd1,
0x88,0xc1,0x06,0xe1,0x07,0xa6,0xe9,0xe9,0xfe,0x9b,0xfd,0xff,0xf7,0xff,0xf9,0x01,
0xdf,0xff,0xff,0x5f,0xff,0xfe,0xff,0x6b,0xff,0xfb,0xa5,0xdf,0xeb,0xb7,0x5d,0xae,
0xda,0xf6,0x96,0xd8,0x5e,0x0c,0x25,0xb1,0xf5,0xb5,0xbf,0x5b,0x5b,0x5b,0x5b,0xed,
0x6c,0x2d,0xac,0x35,0xb0,0xb0,0xc2,0xc3,0x0b,0x06,0x16,0x0c,0x16,0x74,0x23,0xa0,
0xff,0xfe,0xba,0xe5,0x0c,0xfd,0x7e,0x97,0xe9,0x7e,0xbd,0x6b,0xd7,0xe9,0x7e,0xbd,
0x6b,0xd6,0xbf,0xa5,0xfd,0x6b,0xd6,0xbf,0xa5,0xfa,0x5f,0xa5,0xff,0xa5,0xfa,0x5f,
0xa5,0xfa,0xf5,0xaf,0x5f,0xa5,0xfa,0xf5,0xaf,0x5a,0xff,0x5a,0xf5,0xaf,0x5a,0xfe,
0x97,0xe9,0x7f,0x5a,0xfe,0x97,0xe9,0x7e,0x97,0xeb,0xd7,0xe9,0x7e,0xbd,0x6b,0xd6,
0xbd,0x6b,0xfd,0x6b,0xd6,0xb0,0x28,0x3e,0x71,0xe8,0xa7,0x34,0x67,0x39,0x64,0x38,
0x41,0xe1,0x07,0x84,0x1e,0x9e,0x10,0x7a,0x7a,0x7a,0x7a,0x7a,0x7f,0xa7,0xa7,0xfa,
0x7f,0xcc,0x7b,0xf4,0x10,0x6f,0xa7,0xe9,0xf4,0x9b,0xe9,0xff,0xff,0xa7,0xff,0xff,
0xff,0xff,0xff,0xff,0xed,0x77,0xaf,0xfb,0x5d,0xeb,0xb5,0xdb,0x4b,0xb5,0xd8,0x61,
0x2e,0x3d,0xad,0xad,0xad,0xad,0xad,0xac,0x30,0xb6,0xb6,0xb0,0x83,0xc2,0x0f,0x4f,
0x4f,0x09,0xe9,0xf7,0xa7,0xa7,0xa3,0x1e,0xef,0x40,0x81,0xfa,0x6f,0x49,0xfa,0x6f,
0x49,0xfa,0xbf,0x7d,0x7e,0x9b,0xff,0xff,0xf1,0xff,0xf2,0x03,0xff,0xb5,0xfe,0xd7,
0xfb,0x4b,0x6d,0x7b,0x5e,0xd7,0x60,0xc1,0x2e,0x3e,0xb7,0xda,0xfd,0xad,0xad,0xad,
0xad,0xad,0xad,0xad,0xac,0x30,0xb0,0xc2,0xc3,0x0b,0x06,0x0b,0x06,0x0b,0x39,0xf2,
0x10,0x28,0x40,0x71,0x89,0x27,0x36,0x5b,0x04,0x1e,0x10,0x3c,0x20,0xf0,0x9e,0x10,
0x7a,0x7a,0x7a,0x0f,0x4f,0x4f,0x5d,0x3d,0x3d,0x3f,0xd3,0xd3,0xe6,0x3d,0xba,0x08,
0x37,0xc2,0x0f,0xa4,0xdf,0xbe,0x97,0xd3,0x7f,0xe9,0x3f,0xdf,0x4f,0xff,0xf1,0xdf,
0xd7,0xfb,0xff,0x7f,0xfe,0xff,0xfb,0xc8,0x0f,0xfe,0xd7,0xf6,0xd7,0x6b,0xb5,0xc3,
0x0b,0x61,0x85,0xc7,0x7f,0x6b,0xf7,0xdf,0xf7,0xdf,0x7d,0xad,0x99,0x29,0xed,0x78,
0x6b,0xc3,0x09,0x2c,0x30,0xbc,0x30,0xbc,0xe6,0x85,0xf8,0xa5,0xfa,0x5f,0xae,0x97,
0xe9,0x6b,0xa5,0x85,0xd2,0xc2,0x58,0x2e,0x09,0x67,0x34,0x9b,0x39,0x15,0xdf,0xd7,
0x5d,0x75,0xd7,0x5c,0x2e,0xba,0xe1,0x70,0xba,0xe0,0xb8,0x5c,0x2e,0x72,0x8a,0xf3,
0x90,0x5f,0x9c,0x53,0x50,0x28,0x49,0xd2,0xe8,0x40,0xf0,0x9e,0x83,0xd3,0xd7,0x4f,
0xb8,0xff,0xb5,0xfc,0x80,0xfa,0xda,0xdf,0x6b,0x61,0x61,0xac,0x30,0x58,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x74,0xa7,0x08,0x1e,0x13,0xd0,0x7a,0x7a,0xe9,
0xf7,0x1f,0xf6,0xbf,0x90,0x1f,0x5b,0x5b,0xed,0x6c,0x2c,0x35,0x86,0x0a};
+202
View File
@@ -0,0 +1,202 @@
//
// epaper clock on the humble ATmega328
//
#include <Wire.h>
#include <avr/interrupt.h>
#include <avr/power.h>
#include <avr/sleep.h>
#include <avr/boot.h>
#include <avr/wdt.h>
#include "Roboto_Black_38.h"
#include "Roboto_Black_78.h"
#include <bb_epaper.h>
BBEPAPER bbep(EPD42_400x300);
static int iRunCount = 0;
static int iSec, iMin, iHour, iWDay, iMDay, iMon;
int iSleepTime; // number of microseconds to sleep in each wakeup phase
// I2C base address of various RTCs
#define RTC_DS3231_ADDR 0x68
#define RTC_RV3032_ADDR 0x51
#define RTC_PCF8563_ADDR 0x51
#define RTC_ADDR RTC_DS3231_ADDR
#define RTC_START_REG 0
// Ugly solder job of Xiao ESP32-C6 and my e-paper adapter
#define PIN_SDA 4
#define PIN_SCL 3
#define POWER_PIN 5
#define PIN_DC 14
#define PIN_BUSY 16
#define PIN_RST 15
const char *szDays[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
const char *szMonths[12] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
// AVR Power savings
// watchdog interrupt
ISR (WDT_vect)
{
wdt_disable(); // disable watchdog
} // end of WDT_vect
//
// Use the watchdog timer to sleep for a fixed time and then wake up
// 16ms delay shifted left by teh shift value
//
void WDSleepOneSec(void)
{
ADCSRA = 0; // Disable ADC
// clear various "reset" flags
MCUSR = 0;
// allow changes, disable reset
WDTCSR = bit (WDCE) | bit (WDE); // allow changes, disable reset
/**
* Setting the watchdog pre-scaler value with VCC = 5.0V and 16mHZ
* WDP3 WDP2 WDP1 WDP0 | Number of WDT | Typical Time-out at Oscillator Cycles
* 0 0 0 0 | 2K cycles | 16 ms
* 0 0 0 1 | 4K cycles | 32 ms
* 0 0 1 0 | 8K cycles | 64 ms
* 0 0 1 1 | 16K cycles | 0.125 s
* 0 1 0 0 | 32K cycles | 0.25 s
* 0 1 0 1 | 64K cycles | 0.5 s
* 0 1 1 0 | 128K cycles | 1.0 s
* 0 1 1 1 | 256K cycles | 2.0 s
* 1 0 0 0 | 512K cycles | 4.0 s
* 1 0 0 1 | 1024K cycles | 8.0 s
*/
// For some reason, the AVR compiler is broken and these must be done as compile-time
// constants. Experiments with building a mask from individual bits ended in failure
WDTCSR = (1<<WDIE) | (0<<WDP3) | (1<<WDP2) | (1<<WDP1) | (0<<WDP0);
wdt_reset(); // pat the dog
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
noInterrupts (); // timed sequence follows
sleep_enable();
// turn off brown-out enable in software
MCUCR = bit (BODS) | bit (BODSE);
MCUCR = bit (BODS);
interrupts (); // guarantees next instruction executed
sleep_cpu ();
// cancel sleep as a precaution
sleep_disable();
Serial.println("woke up!");
} /* WDSleepOneSec() */
int I2CWrite(unsigned char iAddr, unsigned char *pData, int iLen)
{
Wire.beginTransmission(iAddr);
Wire.write(pData, (unsigned char)iLen);
Wire.endTransmission();
}
int I2CReadRegister(unsigned char iAddr, unsigned char u8Register, unsigned char *pData, int iLen)
{
int rc;
int i = 0;
Wire.beginTransmission(iAddr);
Wire.write(u8Register);
Wire.endTransmission();
Wire.requestFrom(iAddr, (unsigned char)iLen);
while (i < iLen) {
pData[i++] = Wire.read();
}
}
//
// Minimal code to read the time and create
// a formatted ASCII string from the hh:mm:ss
//
void rtc_get_time()
{
uint8_t ucTemp[8];
I2CReadRegister(RTC_ADDR, RTC_START_REG, ucTemp, 7);
// Convert values from BCD
iSec = ((ucTemp[0] >> 4) * 10) + (ucTemp[0] & 0xf);
iMin = ((ucTemp[1] >> 4) * 10) + (ucTemp[1] & 0xf);
// hours are stored in 24-hour format in the tm struct
if (ucTemp[2] & 64) { // 12 hour format
iHour = ucTemp[2] & 0xf;
iHour += ((ucTemp[2] >> 4) & 1) * 10;
iHour += ((ucTemp[2] >> 5) & 1) * 12; // AM/PM
} else { // 24 hour format
iHour = ((ucTemp[2] >> 4) * 10) + (ucTemp[2] & 0xf);
}
iWDay = ucTemp[3] - 1; // day of the week 0-6
iMDay = ucTemp[4] & 0xf;
iMDay += ((ucTemp[4] >> 4) * 10);
iMon = ucTemp[5] & 0xf;
iMon += (((ucTemp[5] >> 4) & 1) * 10);
iMon--; // returns 1-12 instead of 0-11
} /* rtc_get_time() */
void DrawPlane(int bInvert, int iPlane, char *string1, char *string2)
{
int iFG, iBG;
if (bInvert) {
iFG = BBEP_WHITE; iBG = BBEP_BLACK;
} else {
iFG = BBEP_BLACK; iBG = BBEP_WHITE;
}
bbep.setPlane(iPlane);
bbep.fillRect(0,0, bbep.width(), bbep.height(), iBG); // clear both buffers to white for full update
bbep.setFont(Roboto_Black_78);
bbep.setTextColor(iFG, iBG);
bbep.drawString(string1, CENTER_X, 120);
bbep.setFont(Roboto_Black_38);
bbep.drawString(szDays[iWDay], CENTER_X, 200);
bbep.drawString(string2, CENTER_X, 280);
}
void setup()
{
// Serial.begin(115200);
// Serial.println("Starting...");
Wire.begin();
Wire.setClock(400000);
} /* setup() */
void loop()
{
char szTemp[32] ,szTemp2[32];
int bPartial, iSleepTime, bInvert;
bbep.initIO(PIN_DC, PIN_RST, PIN_BUSY);
while (1) {
bInvert = 1;
if ((iRunCount & 1) == 0) { // get time and update
bPartial = ((iRunCount & 0x1f) != 0);
rtc_get_time();
// EPDInit((bPartial) ? MODE_PARTIAL : MODE_NORMAL);
if (bbep.getChip() == BBEP_CHIP_UC81xx) {
// On the UC81xx we have to explicitly write the old data and new for a partial update
// the SSD16xx remembers the old properly and just needs to know the new
if (bPartial) { // inverted too, with the old time strings
DrawPlane(bInvert, PLANE_1, szTemp, szTemp2);
bInvert = 0;
}
} // BBEP_CHIP_UC81xx
// Print the current hour:minute
sprintf(szTemp, "%02d:%02d", iHour, iMin);
sprintf(szTemp2, "%s %d", szMonths[iMon], iMDay);
if (!bPartial) {
DrawPlane(bInvert, PLANE_1, szTemp, szTemp2);
}
DrawPlane(bInvert, PLANE_0, szTemp, szTemp2);
bbep.refresh((bPartial) ? REFRESH_PARTIAL : REFRESH_FULL, false); // do a full refresh
// iSleepTime = (bPartial) ? 750 : 4000; // sleep instead of watching the busy signal
iSleepTime = (bPartial) ? 1 : 4; // sleep instead of watching the busy signal
} else { // we're waking up after waiting for the update to finish
bbep.sleep(1); // deep sleep
iSleepTime = 59; // wake up in 59 seconds
}
//EPDDeInit(); // set GPIO to disconnected for lower power
iRunCount++;
if (!bPartial && iSleepTime == 59) iSleepTime = 56; // we already slept for 4 seconds
for (int j=0; j<iSleepTime; j++) {
WDSleepOneSec();
}
} // while (1)
} /* loop() */
+713 -723
View File
File diff suppressed because it is too large Load Diff