From e95f6eb57a81b38cecbe000d322c24045eeb8e7a Mon Sep 17 00:00:00 2001 From: Pierrick C Date: Tue, 19 Sep 2017 16:35:17 +0200 Subject: [PATCH] =?UTF-8?q?Enresgitrement=20en=20base=20de=20donn=C3=A9es?= =?UTF-8?q?=20locales=20(+=20v=C3=A9rification=20de=20sa=20contruction=20p?= =?UTF-8?q?ar=20db.creat=5Fall),=20Suppression=20temporaire=20des=20liens?= =?UTF-8?q?=20entre=20les=20tables=20de=20la=20BdD,=20Ajout=20de=20l'enreg?= =?UTF-8?q?istrement=20des=20photos=20en=20BdD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mqtt_esp8266_BME280.ino | 6 +- cameteo-interface/EPD_driver.py | 390 +++---- cameteo-interface/cameteo.conf | 2 +- cameteo-interface/cameteo.py | 29 +- cameteo-interface/cameteo_conf.py | 13 +- cameteo-interface/cameteo_pure_sqlal.py | 127 --- cameteo-interface/epd2in13.py | 271 +++++ cameteo-interface/epdif.py | 63 ++ cameteo-interface/mqtt2epaper.py | 248 ++--- cameteo-interface/mqtt2sqlal.py | 26 +- cameteo-interface/picam+mqtt.py | 21 +- python/epaper-screen/EPD_driver.py | 641 ------------ python/epaper-screen/main.py | 960 ------------------ 13 files changed, 719 insertions(+), 2078 deletions(-) delete mode 100644 cameteo-interface/cameteo_pure_sqlal.py create mode 100644 cameteo-interface/epd2in13.py create mode 100644 cameteo-interface/epdif.py delete mode 100644 python/epaper-screen/EPD_driver.py delete mode 100644 python/epaper-screen/main.py diff --git a/arduino/mqtt_esp8266_BME280/mqtt_esp8266_BME280.ino b/arduino/mqtt_esp8266_BME280/mqtt_esp8266_BME280.ino index e98b92b..7fee4f7 100644 --- a/arduino/mqtt_esp8266_BME280/mqtt_esp8266_BME280.ino +++ b/arduino/mqtt_esp8266_BME280/mqtt_esp8266_BME280.ino @@ -32,8 +32,8 @@ /************************* Atmospheric Pressure Mode *********************************/ #define MODE_STATION true -#define DEFAULT_ALTITUDE 145.0 -#define DEFAULT_APSL 1013.25 //Atmospheric Pressure at Sea-Level +#define DEFAULT_ALTITUDE 140.0 +#define DEFAULT_MSLP 1013.25 //Atmospheric Pressure at Sea-Level // Create an ESP8266 WiFiClient class to connect to the MQTT server. WiFiClient wifi_client; @@ -44,7 +44,7 @@ Adafruit_BME280 bme; // I2C bool mode_station = MODE_STATION; float altitude = DEFAULT_ALTITUDE; -float atm_press_sea_level = DEFAULT_APSL; +float atm_press_sea_level = DEFAULT_MSLP; bool led0_status = true ; unsigned long previousPub = 0; diff --git a/cameteo-interface/EPD_driver.py b/cameteo-interface/EPD_driver.py index 6adde5d..00e0271 100644 --- a/cameteo-interface/EPD_driver.py +++ b/cameteo-interface/EPD_driver.py @@ -11,10 +11,10 @@ LUTDefault_part = [0x32,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 GDOControl = [0x01,int((yDot-1)%256),int((yDot-1)/256),0x00] #for 2.9inch softstart = [0x0c,0xd7,0xd6,0x9d] -VCOMVol = [0x2c,0xa8] # VCOM 7c -DummyLine = [0x3a,0x1a] # 4 dummy line per gate -Gatetime = [0x3b,0x08] # 2us per line -RamDataEntryMode = [0x11,0x01] # Ram data entry mode +VCOMVol = [0x2c,0xa8] # VCOM 7c +DummyLine = [0x3a,0x1a] # 4 dummy line per gate +Gatetime = [0x3b,0x08] # 2us per line +RamDataEntryMode = [0x11,0x01] # Ram data entry mode w_buffer = [0 for i in range(5000)] """ BCM GPIO """ @@ -25,199 +25,199 @@ CS = 8 """ Display lib """ Font1206 = [ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ - [0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ - [0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00],#""",2*/ - [0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00],#"#",3*/ - [0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00],#"$",4*/ - [0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80],#"%",5*/ - [0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40],#"&",6*/ - [0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20],#"(",8*/ - [0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00],#")",9*/ - [0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00],#"*",10*/ - [0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00],#"+",11*/ - [0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ - [0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00],#"-",13*/ - [0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ - [0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00],#"/",15*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"0",16*/ - [0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"1",17*/ - [0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00],#"2",18*/ - [0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"3",19*/ - [0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00],#"4",20*/ - [0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00],#"5",21*/ - [0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00],#"6",22*/ - [0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00],#"7",23*/ - [0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"8",24*/ - [0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00],#"9",25*/ - [0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ - [0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ - [0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40],#"<",28*/ - [0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00],#"=",29*/ - [0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00],#">",30*/ - [0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"?",31*/ - [0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00],#"@",32*/ - [0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40],#"A",33*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"B",34*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00],#"C",35*/ - [0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"D",36*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00],#"E",37*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00],#"F",38*/ - [0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00],#"G",39*/ - [0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40],#"H",40*/ - [0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00],#"I",41*/ - [0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00],#"J",42*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40],#"K",43*/ - [0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0],#"L",44*/ - [0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00],#"M",45*/ - [0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00],#"N",46*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"O",47*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"P",48*/ - [0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00],#"Q",49*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40],#"R",50*/ - [0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00],#"S",51*/ - [0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00],#"T",52*/ - [0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00],#"U",53*/ - [0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00],#"V",54*/ - [0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00],#"W",55*/ - [0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00],#"X",56*/ - [0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00],#"Y",57*/ - [0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00],#"Z",58*/ - [0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00],#"[",59*/ - [0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00],#"\",60*/ - [0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00],#"]",61*/ - [0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00],#"^",62*/ - [0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10],#"_",63*/ - [0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ - [0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40],#"a",65*/ - [0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"b",66*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00],#"c",67*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40],#"d",68*/ - [0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00],#"e",69*/ - [0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00],#"f",70*/ - [0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20],#"g",71*/ - [0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"h",72*/ - [0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"i",73*/ - [0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00],#"j",74*/ - [0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40],#"k",75*/ - [0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00],#"l",76*/ - [0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00],#"m",77*/ - [0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"n",78*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"o",79*/ - [0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00],#"p",80*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10],#"q",81*/ - [0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00],#"r",82*/ - [0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00],#"s",83*/ - [0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00],#"t",84*/ - [0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40],#"u",85*/ - [0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00],#"v",86*/ - [0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00],#"w",87*/ - [0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00],#"x",88*/ - [0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00],#"y",89*/ - [0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00],#"z",90*/ - [0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00],#"{",91*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00],#"|",92*/ - [0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00],#"]",93*/ - [0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00],#"~",94*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ + [0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ + [0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00],#""",2*/ + [0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00],#"#",3*/ + [0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00],#"$",4*/ + [0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80],#"%",5*/ + [0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40],#"&",6*/ + [0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20],#"(",8*/ + [0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00],#")",9*/ + [0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00],#"*",10*/ + [0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00],#"+",11*/ + [0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ + [0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00],#"-",13*/ + [0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ + [0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00],#"/",15*/ + [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"0",16*/ + [0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"1",17*/ + [0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00],#"2",18*/ + [0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"3",19*/ + [0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00],#"4",20*/ + [0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00],#"5",21*/ + [0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00],#"6",22*/ + [0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00],#"7",23*/ + [0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"8",24*/ + [0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00],#"9",25*/ + [0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ + [0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ + [0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40],#"<",28*/ + [0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00],#"=",29*/ + [0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00],#">",30*/ + [0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"?",31*/ + [0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00],#"@",32*/ + [0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40],#"A",33*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"B",34*/ + [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00],#"C",35*/ + [0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"D",36*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00],#"E",37*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00],#"F",38*/ + [0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00],#"G",39*/ + [0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40],#"H",40*/ + [0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00],#"I",41*/ + [0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00],#"J",42*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40],#"K",43*/ + [0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0],#"L",44*/ + [0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00],#"M",45*/ + [0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00],#"N",46*/ + [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"O",47*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"P",48*/ + [0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00],#"Q",49*/ + [0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40],#"R",50*/ + [0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00],#"S",51*/ + [0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00],#"T",52*/ + [0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00],#"U",53*/ + [0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00],#"V",54*/ + [0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00],#"W",55*/ + [0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00],#"X",56*/ + [0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00],#"Y",57*/ + [0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00],#"Z",58*/ + [0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00],#"[",59*/ + [0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00],#"\",60*/ + [0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00],#"]",61*/ + [0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00],#"^",62*/ + [0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10],#"_",63*/ + [0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ + [0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40],#"a",65*/ + [0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"b",66*/ + [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00],#"c",67*/ + [0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40],#"d",68*/ + [0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00],#"e",69*/ + [0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00],#"f",70*/ + [0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20],#"g",71*/ + [0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"h",72*/ + [0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"i",73*/ + [0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00],#"j",74*/ + [0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40],#"k",75*/ + [0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00],#"l",76*/ + [0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00],#"m",77*/ + [0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"n",78*/ + [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"o",79*/ + [0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00],#"p",80*/ + [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10],#"q",81*/ + [0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00],#"r",82*/ + [0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00],#"s",83*/ + [0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00],#"t",84*/ + [0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40],#"u",85*/ + [0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00],#"v",86*/ + [0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00],#"w",87*/ + [0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00],#"x",88*/ + [0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00],#"y",89*/ + [0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00],#"z",90*/ + [0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00],#"{",91*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00],#"|",92*/ + [0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00],#"]",93*/ + [0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00],#"~",94*/ ] -Font1608 = [ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ - [0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00],#""",2*/ - [0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00],#"#",3*/ - [0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00],#"$",4*/ - [0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00],#"%",5*/ - [0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08],#"&",6*/ - [0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00],#"(",8*/ - [0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00],#")",9*/ - [0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00],#"*",10*/ - [0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00],#"+",11*/ - [0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ - [0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80],#"-",13*/ - [0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ - [0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00],#"/",15*/ - [0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"0",16*/ - [0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"1",17*/ - [0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00],#"2",18*/ - [0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00],#"3",19*/ - [0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00],#"4",20*/ - [0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00],#"5",21*/ - [0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00],#"6",22*/ - [0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00],#"7",23*/ - [0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00],#"8",24*/ - [0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00],#"9",25*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ - [0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ - [0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00],#"<",28*/ - [0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00],#"=",29*/ - [0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00],#">",30*/ - [0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00],#"?",31*/ - [0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00],#"@",32*/ - [0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04],#"A",33*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00],#"B",34*/ - [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00],#"C",35*/ - [0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"D",36*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00],#"E",37*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00],#"F",38*/ - [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00],#"G",39*/ - [0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04],#"H",40*/ - [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00],#"I",41*/ - [0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00],#"J",42*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00],#"K",43*/ - [0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00],#"L",44*/ - [0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00],#"M",45*/ - [0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00],#"N",46*/ - [0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"O",47*/ - [0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00],#"P",48*/ - [0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00],#"Q",49*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04],#"R",50*/ - [0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00],#"S",51*/ - [0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00],#"T",52*/ - [0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00],#"U",53*/ - [0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00],#"V",54*/ - [0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00],#"W",55*/ - [0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04],#"X",56*/ - [0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00],#"Y",57*/ - [0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00],#"Z",58*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00],#"[",59*/ - [0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00],#"\",60*/ - [0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00],#"]",61*/ - [0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00],#"^",62*/ - [0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01],#"_",63*/ - [0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ - [0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04],#"a",65*/ - [0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"b",66*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00],#"c",67*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04],#"d",68*/ - [0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00],#"e",69*/ - [0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00],#"f",70*/ - [0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00],#"g",71*/ - [0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"h",72*/ - [0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"i",73*/ - [0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00],#"j",74*/ - [0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00],#"k",75*/ - [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"l",76*/ - [0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC],#"m",77*/ - [0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"n",78*/ - [0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00],#"o",79*/ - [0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"p",80*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01],#"q",81*/ - [0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00],#"r",82*/ - [0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00],#"s",83*/ - [0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00],#"t",84*/ - [0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04],#"u",85*/ - [0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00],#"v",86*/ - [0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00],#"w",87*/ - [0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00],#"x",88*/ - [0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00],#"y",89*/ - [0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00],#"z",90*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02],#"{",91*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00],#"|",92*/ - [0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"]",93*/ - [0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00],#"~",94*/ +Font1608 = [ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ + [0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00],#""",2*/ + [0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00],#"#",3*/ + [0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00],#"$",4*/ + [0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00],#"%",5*/ + [0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08],#"&",6*/ + [0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00],#"(",8*/ + [0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00],#")",9*/ + [0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00],#"*",10*/ + [0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00],#"+",11*/ + [0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ + [0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80],#"-",13*/ + [0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ + [0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00],#"/",15*/ + [0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"0",16*/ + [0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"1",17*/ + [0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00],#"2",18*/ + [0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00],#"3",19*/ + [0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00],#"4",20*/ + [0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00],#"5",21*/ + [0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00],#"6",22*/ + [0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00],#"7",23*/ + [0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00],#"8",24*/ + [0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00],#"9",25*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ + [0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ + [0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00],#"<",28*/ + [0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00],#"=",29*/ + [0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00],#">",30*/ + [0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00],#"?",31*/ + [0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00],#"@",32*/ + [0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04],#"A",33*/ + [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00],#"B",34*/ + [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00],#"C",35*/ + [0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"D",36*/ + [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00],#"E",37*/ + [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00],#"F",38*/ + [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00],#"G",39*/ + [0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04],#"H",40*/ + [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00],#"I",41*/ + [0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00],#"J",42*/ + [0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00],#"K",43*/ + [0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00],#"L",44*/ + [0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00],#"M",45*/ + [0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00],#"N",46*/ + [0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"O",47*/ + [0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00],#"P",48*/ + [0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00],#"Q",49*/ + [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04],#"R",50*/ + [0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00],#"S",51*/ + [0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00],#"T",52*/ + [0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00],#"U",53*/ + [0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00],#"V",54*/ + [0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00],#"W",55*/ + [0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04],#"X",56*/ + [0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00],#"Y",57*/ + [0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00],#"Z",58*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00],#"[",59*/ + [0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00],#"\",60*/ + [0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00],#"]",61*/ + [0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00],#"^",62*/ + [0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01],#"_",63*/ + [0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ + [0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04],#"a",65*/ + [0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"b",66*/ + [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00],#"c",67*/ + [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04],#"d",68*/ + [0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00],#"e",69*/ + [0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00],#"f",70*/ + [0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00],#"g",71*/ + [0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"h",72*/ + [0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"i",73*/ + [0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00],#"j",74*/ + [0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00],#"k",75*/ + [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"l",76*/ + [0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC],#"m",77*/ + [0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"n",78*/ + [0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00],#"o",79*/ + [0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"p",80*/ + [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01],#"q",81*/ + [0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00],#"r",82*/ + [0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00],#"s",83*/ + [0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00],#"t",84*/ + [0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04],#"u",85*/ + [0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00],#"v",86*/ + [0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00],#"w",87*/ + [0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00],#"x",88*/ + [0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00],#"y",89*/ + [0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00],#"z",90*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02],#"{",91*/ + [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00],#"|",92*/ + [0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"]",93*/ + [0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00],#"~",94*/ ] progress_head = [ diff --git a/cameteo-interface/cameteo.conf b/cameteo-interface/cameteo.conf index f1bc6e4..9187da8 100644 --- a/cameteo-interface/cameteo.conf +++ b/cameteo-interface/cameteo.conf @@ -2,7 +2,7 @@ sql_host = localhost sql_port = 3306 sql_base = cameteo -sql_user = arofarn +sql_user = cameteo sql_pass = WaKaW9XMGUZ3rRJD sql_sys = mysql sql_api = pymysql diff --git a/cameteo-interface/cameteo.py b/cameteo-interface/cameteo.py index 8481955..0664a02 100644 --- a/cameteo-interface/cameteo.py +++ b/cameteo-interface/cameteo.py @@ -52,12 +52,10 @@ class Sensor(db.Model): __tablename__= 'sensors' - name = db.Column(db.String(20), db.ForeignKey('data.sensor_id'), primary_key=True) - model_id = db.Column(db.String(20), db.ForeignKey('sensor_model.name'), nullable=False) + name = db.Column(db.String(20), primary_key=True) + model_id = db.Column(db.String(20), nullable=False) description = db.Column(db.String(1000)) - model = db.relationship("SensorModel", backref=db.backref('sensors', lazy=True)) - def __repr__(self): return "" % (self.name, self.model, self.description) @@ -86,13 +84,13 @@ class Data(db.Model): __tablename__ = 'data' - data_id = db.Column(db.BigInteger, primary_key=True) + data_id = db.Column(db.BigInteger, primary_key=True, autoincrement="auto") dbdate = db.Column(db.DateTime, nullable=False) - valdate = db.Column(db.DateTime, nullable=False) + valdate = db.Column(db.DateTime, nullable=True) value = db.Column(db.Float, nullable=True) unit = db.Column(db.String(20), nullable=True) - type_id = db.Column(db.String(4), db.ForeignKey('data_type.type_id'), nullable=True) - sensor_id = db.Column(db.String(20), db.ForeignKey('sensors.name'), nullable=True) + type_id = db.Column(db.String(4), nullable=True) + sensor_id = db.Column(db.String(20), nullable=True) def __repr__(self): return "" % (self.value, self.type_id, self.valdate.utc, self.sensor_id, self.data_id) @@ -104,3 +102,18 @@ class Data(db.Model): val = " 'NULL' " return "{} : {:4s}= {} (capteur: {:s})".format(self.valdate, self.type_id, val, self.sensor_id) +class Photo(db.Model): + """DataType : classe des types de données""" + + __tablename__ = 'photos' + + photo_id = db.Column(db.BigInteger, primary_key=True, autoincrement="auto") + file_name = db.Column(db.String(32), unique = True, index = True, nullable=False) + file_date = db.Column(db.DateTime, nullable=False) + image_type = db.Column(db.String(4), nullable=False) + + def __repr__(self): + return "" % (self.file_name, self.photo_id, self.description) + + def __str__(self): + return "%s" % (self.file_name) \ No newline at end of file diff --git a/cameteo-interface/cameteo_conf.py b/cameteo-interface/cameteo_conf.py index 2c310ae..cd404e2 100644 --- a/cameteo-interface/cameteo_conf.py +++ b/cameteo-interface/cameteo_conf.py @@ -62,6 +62,13 @@ camera_expo_mode = parser['CAMERA'].get('camera_exposure_mode', fallback='aut camera_rotation = int(parser['CAMERA'].get('camera_rotation', fallback=0)) camera_contrast = int(parser['CAMERA'].get('camera_contrast', fallback=0)) -photo_dir = parser['CAMERA'].get('photo_dir', fallback='/home/pi/photos/') -photo_name = parser['CAMERA'].get('photo_name', fallback='%%Y%%m%%d_%%H%%M%%S') -photo_format = parser['CAMERA'].get('photo_format', fallback='jpg') +photo_dir = parser['CAMERA'].get('photo_dir', fallback='/home/pi/photos/') +photo_name = parser['CAMERA'].get('photo_name', fallback='%%Y%%m%%d_%%H%%M%%S') +photo_format = parser['CAMERA'].get('photo_format', fallback='jpg') +photo_extensions = {'jpeg': 'jpg', + 'png' : 'png', + 'gif': 'gif', + 'bmp': 'bmp', + 'yuv': 'yuv', + 'rgb': 'rgb', + 'rgba': 'rgba'} \ No newline at end of file diff --git a/cameteo-interface/cameteo_pure_sqlal.py b/cameteo-interface/cameteo_pure_sqlal.py deleted file mode 100644 index 87b1484..0000000 --- a/cameteo-interface/cameteo_pure_sqlal.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Fri Aug 18 21:35:59 2017 - -@author: arofarn -""" - -########### -# IMPORTS # -########### - -from datetime import datetime, timedelta -from configparser import ConfigParser -from sqlalchemy import * -from sqlalchemy.orm import relationship, sessionmaker -from sqlalchemy.ext.declarative import declarative_base - -########### -# CLASSES # -########### -Base = declarative_base() -Session = sessionmaker() - -class SensorModel(Base): - """SensorModel : classe des modèles de capteur""" - - __tablename__= 'sensor_model' - - name=Column(String(20), primary_key=True) - brand=Column(String(20)) - description=Column(String(1000)) - - sensors = relationship("Sensor", back_populates="model") - - def __repr__(self): - return "" % (self.name, self.brand, self.description) - - def __str__(self): - return "%s %s" % (self.brand, self.name) - -class Sensor(Base): - """Sensor : classe des capteurs""" - - __tablename__= 'sensors' - - name=Column(String(20), ForeignKey('data.sensor_id'), primary_key=True) - description=Column(String(1000)) - model_id=Column(String(20), ForeignKey('sensor_model.name')) - - model = relationship("SensorModel") - data = relationship("Data", back_populates="sensor") - - def __repr__(self): - return "" % (self.name, self.model, self.description) - - def __str__(self): - return """%s : - - Modèle : \t%s - - Description: \t%s""" % (self.name, self.model, self.description) - -class DataType(Base): - """DataType : classe des types de données""" - - __tablename__ = 'data_type' - - type_id = Column(String(4), primary_key=True) - name = Column(String(20)) - description=Column(String(1000)) - - data = relationship("Data", back_populates="data_type") - - def __repr__(self): - return "" % (self.name, self.type_id, self.description) - - def __str__(self): - return "%s (%s)" % (self.name, self.unit) - -class Data(Base): - """Data : classe des données""" - - __tablename__ = 'data' - - data_id = Column(BigInteger, primary_key=True) - dbdate = Column(DateTime) - valdate = Column(DateTime) - value = Column(Float) - unit = Column(String(20)) - type_id = Column(String(4), ForeignKey('data_type.type_id')) - sensor_id = Column(String(20)) - - data_type = relationship("DataType", back_populates="data") - sensor=relationship('Sensor') - - def __repr__(self): - return "" % (self.value, self.type_id, self.valdate.utc, self.sensor_id, self.data_id) - - def __str__(self): - return "{} : {:4s}= {:8.2f} {:8s} (capteur: {:s})".format(self.valdate, self.type_id, self.value, self.unit, self.sensor_id) - -################# -# CONFIGURATION # -################# - -parser = ConfigParser() -parser.read('cameteo.conf') - -#Misc -TimeZone = parser['MISC'].get('TimeZone', fallback=0) - -#SQL -sql_host = parser['SQL'].get('sql_host', fallback='localhost') -sql_port = parser['SQL'].get('sql_port', fallback=3306) -sql_base = parser['SQL'].get('sql_base', fallback='cameteo') -sql_user = parser['SQL'].get('sql_user', fallback='cameteo') -sql_pass = parser['SQL'].get('sql_pass', fallback='oetemac') -sql_sys = parser['SQL'].get('sql_sys', fallback='mysql') -sql_api = parser['SQL'].get('sql_api', fallback='pymysql') -sql_verbose = bool(int(parser['SQL'].get('sql_verbose', fallback=0))) - -#MQTT -mqtt_host = parser['MQTT'].get('mqtt_host', fallback='localhost') -mqtt_port = int(parser['MQTT'].get('mqtt_port', fallback=1883)) -mqtt_client_id = parser['MQTT'].get('mqtt_client_id', fallback='mqtt2sql') -mqtt_user = parser['MQTT'].get('mqtt_user', fallback='cameteo') -mqtt_pass = parser['MQTT'].get('mqtt_pass', fallback='oetemac') -mqtt_qos = parser['MQTT'].get('mqtt_qos', fallback=0) -mqtt_topic = parser['MQTT'].get('mqtt_topic', fallback='sensors/#') \ No newline at end of file diff --git a/cameteo-interface/epd2in13.py b/cameteo-interface/epd2in13.py new file mode 100644 index 0000000..b770946 --- /dev/null +++ b/cameteo-interface/epd2in13.py @@ -0,0 +1,271 @@ +## + # @filename : epd2in13.py + # @brief : Implements for e-paper library + # @author : Yehui from Waveshare + # + # Copyright (C) Waveshare September 9 2017 + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documnetation files (the "Software"), to deal + # in the Software without restriction, including without limitation the rights + # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + # copies of the Software, and to permit persons to whom the Software is + # furished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + # LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + # THE SOFTWARE. + # + +import epdif +from PIL import Image +import RPi.GPIO as GPIO + +# Display resolution +EPD_WIDTH = 122 +EPD_HEIGHT = 250 + +# EPD2IN13 commands +DRIVER_OUTPUT_CONTROL = 0x01 +BOOSTER_SOFT_START_CONTROL = 0x0C +GATE_SCAN_START_POSITION = 0x0F +DEEP_SLEEP_MODE = 0x10 +DATA_ENTRY_MODE_SETTING = 0x11 +SW_RESET = 0x12 +TEMPERATURE_SENSOR_CONTROL = 0x1A +MASTER_ACTIVATION = 0x20 +DISPLAY_UPDATE_CONTROL_1 = 0x21 +DISPLAY_UPDATE_CONTROL_2 = 0x22 +WRITE_RAM = 0x24 +WRITE_VCOM_REGISTER = 0x2C +WRITE_LUT_REGISTER = 0x32 +SET_DUMMY_LINE_PERIOD = 0x3A +SET_GATE_TIME = 0x3B +BORDER_WAVEFORM_CONTROL = 0x3C +SET_RAM_X_ADDRESS_START_END_POSITION = 0x44 +SET_RAM_Y_ADDRESS_START_END_POSITION = 0x45 +SET_RAM_X_ADDRESS_COUNTER = 0x4E +SET_RAM_Y_ADDRESS_COUNTER = 0x4F +TERMINATE_FRAME_READ_WRITE = 0xFF + +class EPD: + def __init__(self): + self.reset_pin = epdif.RST_PIN + self.dc_pin = epdif.DC_PIN + self.busy_pin = epdif.BUSY_PIN + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + self.lut = self.lut_full_update + + lut_full_update = [ + 0x22, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + ] + + lut_partial_update = [ + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + ] + + def digital_write(self, pin, value): + epdif.epd_digital_write(pin, value) + + def digital_read(self, pin): + return epdif.epd_digital_read(pin) + + def delay_ms(self, delaytime): + epdif.epd_delay_ms(delaytime) + + def send_command(self, command): + self.digital_write(self.dc_pin, GPIO.LOW) + # the parameter type is list but not int + # so use [command] instead of command + epdif.spi_transfer([command]) + + def send_data(self, data): + self.digital_write(self.dc_pin, GPIO.HIGH) + # the parameter type is list but not int + # so use [data] instead of data + epdif.spi_transfer([data]) + + def init(self, lut): + if (epdif.epd_init() != 0): + return -1 + # EPD hardware init start + self.lut = lut + self.reset() + self.send_command(DRIVER_OUTPUT_CONTROL) + self.send_data((EPD_HEIGHT - 1) & 0xFF) + self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) + self.send_data(0x00) # GD = 0 SM = 0 TB = 0 + self.send_command(BOOSTER_SOFT_START_CONTROL) + self.send_data(0xD7) + self.send_data(0xD6) + self.send_data(0x9D) + self.send_command(WRITE_VCOM_REGISTER) + self.send_data(0xA8) # VCOM 7C + self.send_command(SET_DUMMY_LINE_PERIOD) + self.send_data(0x1A) # 4 dummy lines per gate + self.send_command(SET_GATE_TIME) + self.send_data(0x08) # 2us per line + self.send_command(DATA_ENTRY_MODE_SETTING) + self.send_data(0x03) # X increment Y increment + self.set_lut(self.lut) + # EPD hardware init end + return 0 + + def wait_until_idle(self): + while(self.digital_read(self.busy_pin) == 1): # 0: idle, 1: busy + self.delay_ms(100) +## + # @brief: module reset. + # often used to awaken the module in deep sleep, + ## + def reset(self): + self.digital_write(self.reset_pin, GPIO.LOW) # module reset + self.delay_ms(200) + self.digital_write(self.reset_pin, GPIO.HIGH) + self.delay_ms(200) + +## + # @brief: set the look-up table register + ## + def set_lut(self, lut): + self.lut = lut + self.send_command(WRITE_LUT_REGISTER) + # the length of look-up table is 30 bytes + for i in range(0, len(lut)): + self.send_data(self.lut[i]) + +## + # @brief: convert an image to a buffer + ## + def get_frame_buffer(self, image): + buf = [0x00] * (self.width * self.height / 8) + # Set buffer to value of Python Imaging Library image. + # Image must be in mode 1. + image_monocolor = image.convert('1') + imwidth, imheight = image_monocolor.size + if imwidth != self.width or imheight != self.height: + raise ValueError('Image must be same dimensions as display \ + ({0}x{1}).' .format(self.width, self.height)) + + pixels = image_monocolor.load() + for y in range(self.height): + for x in range(self.width): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] != 0: + buf[(x + y * self.width) / 8] |= 0x80 >> (x % 8) + return buf + +## + # @brief: put an image to the frame memory. + # this won't update the display. + ## + def set_frame_memory(self, image, x, y): + if (image == None or x < 0 or y < 0): + return + image_monocolor = image.convert('1') + image_width, image_height = image_monocolor.size + # x point must be the multiple of 8 or the last 3 bits will be ignored + x = x & 0xF8 + image_width = image_width & 0xF8 + if (x + image_width >= self.width): + x_end = self.width - 1 + else: + x_end = x + image_width - 1 + if (y + image_height >= self.height): + y_end = self.height - 1 + else: + y_end = y + image_height - 1 + self.set_memory_area(x, y, x_end, y_end) + # send the image data + pixels = image_monocolor.load() + byte_to_send = 0x00 + for j in range(y, y_end + 1): + self.set_memory_pointer(x, j) + self.send_command(WRITE_RAM) + # 1 byte = 8 pixels, steps of i = 8 + for i in range(x, x_end + 1): + # Set the bits for the column of pixels at the current position. + if pixels[i - x, j - y] != 0: + byte_to_send |= 0x80 >> (i % 8) + if (i % 8 == 7): + self.send_data(byte_to_send) + byte_to_send = 0x00 + +## + # @brief: clear the frame memory with the specified color. + # this won't update the display. + ## + def clear_frame_memory(self, color): + self.set_memory_area(0, 0, self.width - 1, self.height - 1) + self.set_memory_pointer(0, 0) + self.send_command(WRITE_RAM) + # send the color data + for i in range(0, self.width / 8 * self.height): + self.send_data(color) + +## + # @brief: update the display + # there are 2 memory areas embedded in the e-paper display + # but once this function is called, + # the the next action of SetFrameMemory or ClearFrame will + # set the other memory area. + ## + def display_frame(self): + self.send_command(DISPLAY_UPDATE_CONTROL_2) + self.send_data(0xC4) + self.send_command(MASTER_ACTIVATION) + self.send_command(TERMINATE_FRAME_READ_WRITE) + self.wait_until_idle() + +## + # @brief: specify the memory area for data R/W + ## + def set_memory_area(self, x_start, y_start, x_end, y_end): + self.send_command(SET_RAM_X_ADDRESS_START_END_POSITION) + # x point must be the multiple of 8 or the last 3 bits will be ignored + self.send_data((x_start >> 3) & 0xFF) + self.send_data((x_end >> 3) & 0xFF) + self.send_command(SET_RAM_Y_ADDRESS_START_END_POSITION) + self.send_data(y_start & 0xFF) + self.send_data((y_start >> 8) & 0xFF) + self.send_data(y_end & 0xFF) + self.send_data((y_end >> 8) & 0xFF) + +## + # @brief: specify the start point for data R/W + ## + def set_memory_pointer(self, x, y): + self.send_command(SET_RAM_X_ADDRESS_COUNTER) + # x point must be the multiple of 8 or the last 3 bits will be ignored + self.send_data((x >> 3) & 0xFF) + self.send_command(SET_RAM_Y_ADDRESS_COUNTER) + self.send_data(y & 0xFF) + self.send_data((y >> 8) & 0xFF) + self.wait_until_idle() + +## + # @brief: After this command is transmitted, the chip would enter the + # deep-sleep mode to save power. + # The deep sleep mode would return to standby by hardware reset. + # You can use reset() to awaken or init() to initialize + ## + def sleep(self): + self.send_command(DEEP_SLEEP_MODE) + self.wait_until_idle() + +### END OF FILE ### + diff --git a/cameteo-interface/epdif.py b/cameteo-interface/epdif.py new file mode 100644 index 0000000..3378794 --- /dev/null +++ b/cameteo-interface/epdif.py @@ -0,0 +1,63 @@ +## + # @filename : epdif.py + # @brief : EPD hardware interface implements (GPIO, SPI) + # @author : Yehui from Waveshare + # + # Copyright (C) Waveshare July 10 2017 + # + # Permission is hereby granted, free of charge, to any person obtaining a copy + # of this software and associated documnetation files (the "Software"), to deal + # in the Software without restriction, including without limitation the rights + # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + # copies of the Software, and to permit persons to whom the Software is + # furished to do so, subject to the following conditions: + # + # The above copyright notice and this permission notice shall be included in + # all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + # FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + # LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + # THE SOFTWARE. + # + +import spidev +import RPi.GPIO as GPIO +import time + +# Pin definition +RST_PIN = 17 +DC_PIN = 25 +CS_PIN = 8 +BUSY_PIN = 24 + +# SPI device, bus = 0, device = 0 +SPI = spidev.SpiDev(0, 0) + +def epd_digital_write(pin, value): + GPIO.output(pin, value) + +def epd_digital_read(pin): + return GPIO.input(BUSY_PIN) + +def epd_delay_ms(delaytime): + time.sleep(delaytime / 1000.0) + +def spi_transfer(data): + SPI.writebytes(data) + +def epd_init(): + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO.setup(RST_PIN, GPIO.OUT) + GPIO.setup(DC_PIN, GPIO.OUT) + GPIO.setup(CS_PIN, GPIO.OUT) + GPIO.setup(BUSY_PIN, GPIO.IN) + SPI.max_speed_hz = 2000000 + SPI.mode = 0b00 + return 0; + +### END OF FILE ### diff --git a/cameteo-interface/mqtt2epaper.py b/cameteo-interface/mqtt2epaper.py index 30bd59c..10b962e 100644 --- a/cameteo-interface/mqtt2epaper.py +++ b/cameteo-interface/mqtt2epaper.py @@ -1,124 +1,124 @@ -# -*- coding: utf-8 -*- -""" -Display data from MQTT broker on ePaper screen - -@author: arofarn -""" - -########### -# IMPORTS # -########### - -from cameteo_conf import * -import paho.mqtt.client as mqtt -from spidev import SpiDev -import EPD_driver -import json -import netifaces - -mqtt_client_id = "epaper_display" - -############# -# CALLBACKS # -############# - -#Callback pour la connection au MQTT : souscriptions aux topics -def on_connect(client, userdata, flags, rc): - print(mqtt.connack_string(rc)) - if rc == 0: - print("Subscribing to %s ..." % mqtt_topic) - client.subscribe([(mqtt_topic, 0), - (camera_mqtt_topic + "/#", 0)] - ) - print("OK") - -#Callback de gestion des messages arrivant au MQTT : -# affichage et enregistrement en base de données -def on_message(client, userdata, msg): - top=msg.topic[len(mqtt_topic)-1:].strip() - subtopics = top.split("/") - - if subtopics[0] == "AdaBME280_1": - payload = msg.payload.decode() - print(payload) - val = json.loads(payload) - - #Test présence et cohérence de la valeur - try: - val['value'] = float(val['value'] ) - except: - print("Value error: {}".format(val['value'])) - val['value'] = float('nan') - - #Gestion du symbole des degrés parfois difficile pour certaines sources - #val['unit'] = val['unit'].replace('deg', '°') - - #Affichage des données - coord_type = { 'TA' : 33, - 'HR' : 49, - 'SLPA' : 65 - } - if val['type'] in coord_type: - disp.Dis_String(125, coord_type[val['type']], "{} {} ".format(val['value'], val['unit']), 16) - -#Callback managing date and time from MQTT broker -def on_message_date(client, userdata, msg): - payload = msg.payload.decode() - print("Date : " + payload) - try: - d = datetime.strptime(payload, "%H:%M:%S %d/%m/%Y") - disp.Dis_String(0, 17, datetime.strftime(d + TimeZone.utcoffset(None), "%d/%m/%Y %H:%M:%S"), 16) - except: - disp.Dis_String(0, 17, payload, 16) - -#Update display with info from camera (camera shooting new photo or name of the -# last photo) -def on_message_camera(client, userdata, msg): - pl = msg.payload.decode() - print("{} : {} ({})".format(msg.topic, pl, type(pl))) - if pl == "1" and msg.topic == camera_mqtt_topic + "/shooting" : - disp.Dis_String(0, 105, "Shooting photo... ", 16) - if msg.topic == camera_mqtt_topic + "/last_photo": - disp.Dis_String(0, 105, "Last: " + pl, 16) - -#Callback de déconnexion au broker MQTT -def on_disconnect(client, userdata, msg): - if msg != 0: - print("Déconnexion imprévu : %s" % msg) - exit() - -######## -# Main # -######## - -#init and Clear full screen -bus = 0 -device = 0 -disp = EPD_driver.EPD_driver(spi=SpiDev(bus, device)) - -print("Start display...") -disp.Dis_Clear_full() -disp.Dis_Clear_part() -print("OK") - -#disp.Dis_String(0, 0, "{} | {}".format(socket.gethostname(), netifaces.ifaddresses('wlan0')[2][0]['addr']), 12) -disp.Dis_String(0, 0, "IPv4 : {}".format(netifaces.ifaddresses('wlan0')[2][0]['addr']), 16) -disp.Dis_String(0, 33, "Temperature : ", 16) -disp.Dis_String(0, 49, "Humidity : ", 16) -disp.Dis_String(0, 65, "Sea Pression : ", 16) - -#Connect to MQTT broker and loop... -mqtt_client = mqtt.Client(mqtt_client_id, clean_session=True) -mqtt_client.username_pw_set(mqtt_user, mqtt_pass) -mqtt_client.on_connect = on_connect -mqtt_client.on_message = on_message -mqtt_client.on_disconnect = on_disconnect - -mqtt_client.message_callback_add("huzzah0/NTP/date", on_message_date) -mqtt_client.message_callback_add(camera_mqtt_topic + "/#", on_message_camera) - -print(mqtt_host + ":" + str(mqtt_port)) -mqtt_client.connect(mqtt_host, int(mqtt_port), 60) - -mqtt_client.loop_forever() - +# -*- coding: utf-8 -*- +""" +Display data from MQTT broker on ePaper screen + +@author: arofarn +""" + +########### +# IMPORTS # +########### + +from cameteo_conf import * +import paho.mqtt.client as mqtt +from spidev import SpiDev +import EPD_driver +import json +import netifaces + +mqtt_client_id = "epaper_display" + +############# +# CALLBACKS # +############# + +#Callback pour la connection au MQTT : souscriptions aux topics +def on_connect(client, userdata, flags, rc): + print(mqtt.connack_string(rc)) + if rc == 0: + print("Subscribing to %s ..." % mqtt_topic) + client.subscribe([(mqtt_topic, 0), + (camera_mqtt_topic + "/#", 0)] + ) + print("OK") + +#Callback de gestion des messages arrivant au MQTT : +# affichage et enregistrement en base de données +def on_message(client, userdata, msg): + top=msg.topic[len(mqtt_topic)-1:].strip() + subtopics = top.split("/") + + if subtopics[0] == "AdaBME280_1": + payload = msg.payload.decode() + print(payload) + val = json.loads(payload) + + #Test présence et cohérence de la valeur + try: + val['value'] = float(val['value'] ) + except: + print("Value error: {}".format(val['value'])) + val['value'] = float('nan') + + #Gestion du symbole des degrés parfois difficile pour certaines sources + #val['unit'] = val['unit'].replace('deg', '°') + + #Affichage des données + coord_type = { 'TA' : 33, + 'HR' : 49, + 'SLPA' : 65 + } + if val['type'] in coord_type: + disp.Dis_String(125, coord_type[val['type']], "{} {} ".format(val['value'], val['unit']), 16) + +#Callback managing date and time from MQTT broker +def on_message_date(client, userdata, msg): + payload = msg.payload.decode() + print("Date : " + payload) + try: + d = datetime.strptime(payload, "%H:%M:%S %d/%m/%Y") + disp.Dis_String(0, 17, datetime.strftime(d + TimeZone.utcoffset(None), "%d/%m/%Y %H:%M:%S"), 16) + except: + disp.Dis_String(0, 17, payload, 16) + +#Update display with info from camera (camera shooting new photo or name of the +# last photo) +def on_message_camera(client, userdata, msg): + pl = msg.payload.decode() + print("{} : {} ({})".format(msg.topic, pl, type(pl))) + if pl == "1" and msg.topic == camera_mqtt_topic + "/shooting" : + disp.Dis_String(0, 105, "Shooting photo... ", 16) + if msg.topic == camera_mqtt_topic + "/last_photo": + disp.Dis_String(0, 105, "Last: " + pl, 16) + +#Callback de déconnexion au broker MQTT +def on_disconnect(client, userdata, msg): + if msg != 0: + print("Déconnexion imprévu : %s" % msg) + exit() + +######## +# Main # +######## + +#init and Clear full screen +bus = 0 +device = 0 +disp = EPD_driver.EPD_driver(spi=SpiDev(bus, device)) + +print("Start display...") +disp.Dis_Clear_full() +disp.Dis_Clear_part() +print("OK") + +#disp.Dis_String(0, 0, "{} | {}".format(socket.gethostname(), netifaces.ifaddresses('wlan0')[2][0]['addr']), 12) +disp.Dis_String(0, 0, "IPv4 : {}".format(netifaces.ifaddresses('wlan0')[2][0]['addr']), 16) +disp.Dis_String(0, 33, "Temperature : ", 16) +disp.Dis_String(0, 49, "Humidity : ", 16) +disp.Dis_String(0, 65, "Sea Pression : ", 16) + +#Connect to MQTT broker and loop... +mqtt_client = mqtt.Client(mqtt_client_id, clean_session=True) +mqtt_client.username_pw_set(mqtt_user, mqtt_pass) +mqtt_client.on_connect = on_connect +mqtt_client.on_message = on_message +mqtt_client.on_disconnect = on_disconnect + +mqtt_client.message_callback_add("huzzah0/NTP/date", on_message_date) +mqtt_client.message_callback_add(camera_mqtt_topic + "/#", on_message_camera) + +print(mqtt_host + ":" + str(mqtt_port)) +mqtt_client.connect(mqtt_host, int(mqtt_port), 60) + +mqtt_client.loop_forever() + diff --git a/cameteo-interface/mqtt2sqlal.py b/cameteo-interface/mqtt2sqlal.py index 3afeb43..d53ce49 100755 --- a/cameteo-interface/mqtt2sqlal.py +++ b/cameteo-interface/mqtt2sqlal.py @@ -27,7 +27,9 @@ def on_connect(client, userdata, flags, rc): print(mqtt.connack_string(rc)) if rc == 0: print("Subscribing to %s ..." % mqtt_topic) - client.subscribe(mqtt_topic) + client.subscribe([(mqtt_topic, 0), + (camera_mqtt_topic + "/last_photo", 0) + ]) print("OK") @@ -38,7 +40,7 @@ def on_message(client, userdata, msg): subtopics = top.split("/") payload = msg.payload.decode() - print(payload) + #print(payload) val = json.loads(payload) #Test présence et cohérence de la valeur @@ -59,6 +61,7 @@ def on_message(client, userdata, msg): #Enregistrement des données en base data= Data(valdate = datetime.strptime(val['date'], "%H:%M:%S %d/%m/%Y"), + dbdate = datetime.now(), value = val['value'], unit = val['unit'], type_id = val['type'], @@ -82,7 +85,25 @@ def on_message_date(client, userdata, msg): print("Date : %s" % d) except: print("Date mal formatée : %s" % payload) + +#Update display with info from camera (camera shooting new photo or name of the +# last photo) +def on_message_camera(client, userdata, msg): + pl = msg.payload.decode() + print("New photo : " + pl) + # New photo to add to database + photo = Photo(file_name = pl, + file_date = datetime.strptime(os.path.splitext(pl)[0], photo_name), + image_type = photo_format) + try: + db.session.add(photo) + db.session.commit() + except: + print("Erreur lors de l'enregistrement en base de données") + finally: + db.session.close() + #Callback de déconnexion au broker MQTT def on_disconnect(client, userdata, msg): if msg != 0: @@ -100,6 +121,7 @@ mqtt_client.on_connect = on_connect mqtt_client.on_message = on_message mqtt_client.on_disconnect = on_disconnect +mqtt_client.message_callback_add(camera_mqtt_topic + "/last_photo", on_message_camera) mqtt_client.message_callback_add("huzzah0/NTP/date", on_message_date) mqtt_client.connect(mqtt_host, int(mqtt_port), 60) diff --git a/cameteo-interface/picam+mqtt.py b/cameteo-interface/picam+mqtt.py index ed8dd94..ee3eccc 100755 --- a/cameteo-interface/picam+mqtt.py +++ b/cameteo-interface/picam+mqtt.py @@ -13,24 +13,17 @@ from time import sleep from cameteo_conf import * mqtt_client_id = "picamera" +now = datetime.utcnow() ######## # Main # ######## -photo_extensions = {'jpeg': 'jpg', - 'png' : 'png', - 'gif': 'gif', - 'bmp': 'bmp', - 'yuv': 'yuv', - 'rgb': 'rgb', - 'rgba': 'rgba'} - if not(os.path.exists(photo_dir)): print("Create photos directory : " + photo_dir) os.mkdir(photo_dir) -file_name = datetime.strftime(datetime.now(), photo_name) + os.path.extsep + photo_extensions[photo_format] +file_name = datetime.strftime(now, photo_name) + os.path.extsep + photo_extensions[photo_format] file_path = os.path.join(photo_dir, file_name) print("Shooting " + file_path) @@ -75,18 +68,18 @@ mqtt_data = [{'topic': camera_mqtt_topic + "/shooting", 'payload': 0, 'qos': 2, 'retain': True}, - {'topic': camera_mqtt_topic + "/last_photo", - 'payload': file_name, - 'qos': 2, - 'retain': True}, {'topic': camera_mqtt_topic + "/photos_path", 'payload': photo_dir, 'qos': 2, 'retain': True}, + {'topic': camera_mqtt_topic + "/last_photo", + 'payload': file_name, + 'qos': 2, + 'retain': True}, ] mqtt.multiple(mqtt_data, - hostname= mqtt_host , + hostname= mqtt_host , port= mqtt_port , client_id= mqtt_client_id , auth= mqtt_auth ) diff --git a/python/epaper-screen/EPD_driver.py b/python/epaper-screen/EPD_driver.py deleted file mode 100644 index 7da58d3..0000000 --- a/python/epaper-screen/EPD_driver.py +++ /dev/null @@ -1,641 +0,0 @@ - -import spidev -import RPi.GPIO as GPIO -import time - -""" Register initial variable """ -EPD2X9 = 0 -EPD02X13 = 1 -EPD1X54 = 0 - -if EPD2X9 == 1: - xDot = 128 - yDot = 296 - DELAYTIME = 1.5 - LUTDefault_full = [0x32,0x02,0x02,0x01,0x11,0x12,0x12,0x22,0x22,0x66,0x69,0x69,0x59,0x58,0x99,0x99,0x88,0x00,0x00,0x00,0x00,0xF8,0xB4,0x13,0x51,0x35,0x51,0x51,0x19,0x01,0x00] - LUTDefault_part = [0x32,0x10,0x18,0x18,0x08,0x18,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x44,0x12,0x00,0x00,0x00,0x00,0x00,0x00] -if EPD02X13 == 1: - xDot = 122 - yDot = 250 - DELAYTIME = 4 - LUTDefault_full = [0x32,0x22,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x01,0x00,0x00,0x00,0x00] - LUTDefault_part = [0x32,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00] -if EPD1X54 == 1: - xDot = 200 - yDot = 200 - DELAYTIME = 1.5 - LUTDefault_full = [0x32,0x02,0x02,0x01,0x11,0x12,0x12,0x22,0x22,0x66,0x69,0x69,0x59,0x58,0x99,0x99,0x88,0x00,0x00,0x00,0x00,0xF8,0xB4,0x13,0x51,0x35,0x51,0x51,0x19,0x01,0x00] - LUTDefault_part = [0x32,0x10,0x18,0x18,0x08,0x18,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x44,0x12,0x00,0x00,0x00,0x00,0x00,0x00] - -GDOControl = [0x01,int((yDot-1)%256),int((yDot-1)/256),0x00] #for 2.9inch -softstart = [0x0c,0xd7,0xd6,0x9d] -VCOMVol = [0x2c,0xa8] # VCOM 7c -DummyLine = [0x3a,0x1a] # 4 dummy line per gate -Gatetime = [0x3b,0x08] # 2us per line -RamDataEntryMode = [0x11,0x01] # Ram data entry mode -w_buffer = [0 for i in range(5000)] -""" Display lib """ -Font1206 = [ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ - [0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ - [0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00],#""",2*/ - [0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00],#"#",3*/ - [0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00],#"$",4*/ - [0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80],#"%",5*/ - [0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40],#"&",6*/ - [0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20],#"(",8*/ - [0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00],#")",9*/ - [0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00],#"*",10*/ - [0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00],#"+",11*/ - [0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ - [0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00],#"-",13*/ - [0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ - [0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00],#"/",15*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"0",16*/ - [0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"1",17*/ - [0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00],#"2",18*/ - [0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"3",19*/ - [0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00],#"4",20*/ - [0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00],#"5",21*/ - [0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00],#"6",22*/ - [0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00],#"7",23*/ - [0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"8",24*/ - [0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00],#"9",25*/ - [0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ - [0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ - [0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40],#"<",28*/ - [0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00],#"=",29*/ - [0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00],#">",30*/ - [0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"?",31*/ - [0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00],#"@",32*/ - [0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40],#"A",33*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00],#"B",34*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00],#"C",35*/ - [0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"D",36*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00],#"E",37*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00],#"F",38*/ - [0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00],#"G",39*/ - [0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40],#"H",40*/ - [0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00],#"I",41*/ - [0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00],#"J",42*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40],#"K",43*/ - [0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0],#"L",44*/ - [0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00],#"M",45*/ - [0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00],#"N",46*/ - [0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00],#"O",47*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00],#"P",48*/ - [0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00],#"Q",49*/ - [0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40],#"R",50*/ - [0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00],#"S",51*/ - [0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00],#"T",52*/ - [0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00],#"U",53*/ - [0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00],#"V",54*/ - [0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00],#"W",55*/ - [0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00],#"X",56*/ - [0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00],#"Y",57*/ - [0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00],#"Z",58*/ - [0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00],#"[",59*/ - [0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00],#"\",60*/ - [0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00],#"]",61*/ - [0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00],#"^",62*/ - [0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10],#"_",63*/ - [0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ - [0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40],#"a",65*/ - [0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"b",66*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00],#"c",67*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40],#"d",68*/ - [0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00],#"e",69*/ - [0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00],#"f",70*/ - [0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20],#"g",71*/ - [0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"h",72*/ - [0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00],#"i",73*/ - [0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00],#"j",74*/ - [0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40],#"k",75*/ - [0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00],#"l",76*/ - [0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00],#"m",77*/ - [0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40],#"n",78*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00],#"o",79*/ - [0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00],#"p",80*/ - [0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10],#"q",81*/ - [0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00],#"r",82*/ - [0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00],#"s",83*/ - [0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00],#"t",84*/ - [0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40],#"u",85*/ - [0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00],#"v",86*/ - [0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00],#"w",87*/ - [0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00],#"x",88*/ - [0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00],#"y",89*/ - [0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00],#"z",90*/ - [0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00],#"{",91*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00],#"|",92*/ - [0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00],#"]",93*/ - [0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00],#"~",94*/ -] - -Font1608 = [ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#" ",0*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#"!",1*/ - [0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00],#""",2*/ - [0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00],#"#",3*/ - [0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00],#"$",4*/ - [0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00],#"%",5*/ - [0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08],#"&",6*/ - [0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"'",7*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00],#"(",8*/ - [0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00],#")",9*/ - [0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00],#"*",10*/ - [0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00],#"+",11*/ - [0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#",",12*/ - [0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80],#"-",13*/ - [0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#".",14*/ - [0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00],#"/",15*/ - [0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"0",16*/ - [0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"1",17*/ - [0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00],#"2",18*/ - [0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00],#"3",19*/ - [0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00],#"4",20*/ - [0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00],#"5",21*/ - [0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00],#"6",22*/ - [0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00],#"7",23*/ - [0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00],#"8",24*/ - [0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00],#"9",25*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00],#":",26*/ - [0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#";",27*/ - [0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00],#"<",28*/ - [0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00],#"=",29*/ - [0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00],#">",30*/ - [0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00],#"?",31*/ - [0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00],#"@",32*/ - [0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04],#"A",33*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00],#"B",34*/ - [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00],#"C",35*/ - [0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"D",36*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00],#"E",37*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00],#"F",38*/ - [0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00],#"G",39*/ - [0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04],#"H",40*/ - [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00],#"I",41*/ - [0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00],#"J",42*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00],#"K",43*/ - [0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00],#"L",44*/ - [0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00],#"M",45*/ - [0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00],#"N",46*/ - [0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00],#"O",47*/ - [0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00],#"P",48*/ - [0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00],#"Q",49*/ - [0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04],#"R",50*/ - [0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00],#"S",51*/ - [0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00],#"T",52*/ - [0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00],#"U",53*/ - [0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00],#"V",54*/ - [0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00],#"W",55*/ - [0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04],#"X",56*/ - [0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00],#"Y",57*/ - [0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00],#"Z",58*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00],#"[",59*/ - [0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00],#"\",60*/ - [0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00],#"]",61*/ - [0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00],#"^",62*/ - [0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01],#"_",63*/ - [0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"`",64*/ - [0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04],#"a",65*/ - [0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"b",66*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00],#"c",67*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04],#"d",68*/ - [0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00],#"e",69*/ - [0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00],#"f",70*/ - [0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00],#"g",71*/ - [0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"h",72*/ - [0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"i",73*/ - [0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00],#"j",74*/ - [0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00],#"k",75*/ - [0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00],#"l",76*/ - [0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC],#"m",77*/ - [0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04],#"n",78*/ - [0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00],#"o",79*/ - [0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00],#"p",80*/ - [0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01],#"q",81*/ - [0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00],#"r",82*/ - [0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00],#"s",83*/ - [0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00],#"t",84*/ - [0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04],#"u",85*/ - [0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00],#"v",86*/ - [0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00],#"w",87*/ - [0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00],#"x",88*/ - [0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00],#"y",89*/ - [0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00],#"z",90*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02],#"{",91*/ - [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00],#"|",92*/ - [0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00],#"]",93*/ - [0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00],#"~",94*/ -] - -progress_head = [ - 0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC, - 0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC, -] -progress_zero = [ - 0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C, - 0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C, - ] -progress_start = [ - 0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C, - 0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C, - ] -progress_Spare = [ - 0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC, - 0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC - ] -progress_full = [ - 0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C, - 0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00, - ] -progress_end = [ - 0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC, - 0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00, -] - -""" BCM GPIO """ -RST = 17 -DC = 25 -BUSY = 24 -CS = 8 - -class EPD_driver(object): - def __init__(self,spi): - #Initialize DC RST pin - GPIO.setmode(GPIO.BCM) - GPIO.setwarnings(False) - GPIO.setup(RST,GPIO.OUT) - GPIO.setup(DC,GPIO.OUT) - GPIO.setup(CS,GPIO.OUT) - GPIO.setup(BUSY,GPIO.IN) - #Initialize SPI - self._spi = spi - self._spi.max_speed_hz = 2000000 - self._spi.mode = 0b00 - - def ReadBusy(self): - for i in range(0,400): - if GPIO.input(BUSY)==0: - print('Busy is Low') - return 1 - time.sleep(0.01) - def EPD_WriteCMD(self,command): - GPIO.output(DC,GPIO.LOW) - #print 'send command : ' ,hex(command) - self._spi.writebytes([command]) - def EPD_WriteCMD_p1(self,command,para): - self.ReadBusy() - GPIO.output(DC,GPIO.LOW) - #print 'send command : ' ,hex(command) - self._spi.writebytes([command]) - GPIO.output(DC,GPIO.HIGH) - #print 'Sent to data : ' ,hex(para), - self._spi.writebytes([para]) - def EPD_POWERON(self): - self.EPD_WriteCMD_p1(0x22,0xc0) - self.EPD_WriteCMD(0x20) - def EPD_Write(self,value): - """Send command byte to display""" - GPIO.output(DC,GPIO.LOW) - time.sleep(0.01) - #print(value) - #print('send command : ' ,hex(value[0])) - self._spi.writebytes([value[0]]) #The first byte is written with the command value - GPIO.output(DC,GPIO.HIGH) - for i in range(0,len(value)-1): - data = value[i+1] - self._spi.writebytes([data]) - def EPD_WriteDispRam(self,XSize,YSize,Dispbuff): - if XSize%8!=0 : - XSize = XSize+(8-XSize%8) - XSize = XSize/8 - NUM = 0 - self.ReadBusy() - GPIO.output(DC,GPIO.LOW) - self._spi.writebytes([0x24]) - GPIO.output(DC,GPIO.HIGH) - for i in range(0,int(YSize)): - for j in range(0,int(XSize)): - self._spi.writebytes([Dispbuff[NUM]]) - NUM = NUM +1 - #print hex(Dispbuff[i+j]), - #print '' - def EPD_WriteDispRamMono(self,XSize,YSize,dispdata): - if XSize%8!=0 : - XSize = XSize+(8-XSize%8) - XSize = XSize/8 - NUM = 0 - self.ReadBusy() - #print 'send command : ' ,hex(0x24) - GPIO.output(DC,GPIO.LOW) - self._spi.writebytes([0x24]) - GPIO.output(DC,GPIO.HIGH) - #print 'Sent to data : ',hex(dispdata), - if isinstance(dispdata,list): - for i in range(0,YSize): - for j in range(0,XSize): - self._spi.writebytes([dispdata[NUM]]) - NUM = NUM +1 - #print hex(dispdata[i+j]), - else: - #print 'send data : ' ,dispdata - for i in range(0,YSize): - for j in range(0,int(XSize)): - self._spi.writebytes([dispdata]) - def EPD_SetRamArea(self,Xstart,Xend,Ystart,Ystart1,Yend,Yend1): - RamAreaX = [] - RamAreaY = [] - RamAreaX.extend([0x44,Xstart,Xend]) - RamAreaY.extend([0x45,Ystart,Ystart1,Yend,Yend1]) - self.EPD_Write(RamAreaX) - self.EPD_Write(RamAreaY) - def EPD_SetRamPointer(self,addrX,addrY,addrY1): - RamPointerX = [] - RamPointerY = [] - RamPointerX.extend([0x4e,addrX]) - RamPointerY.extend([0x4f,addrY,addrY1]) - self.EPD_Write(RamPointerX) - self.EPD_Write(RamPointerY) - def part_display(self,RAM_XST,RAM_XEND,RAM_YST,RAM_YST1,RAM_YEND,RAM_YEND1): - self.EPD_SetRamArea(RAM_XST,RAM_XEND,RAM_YST,RAM_YST1,RAM_YEND,RAM_YEND1) - self.EPD_SetRamPointer(RAM_XST,RAM_YST,RAM_YST1) - def EPD_Init(self): - """Initialize dispaly""" - """2.reset driver""" - GPIO.output(CS,GPIO.LOW) - GPIO.output(RST,GPIO.HIGH) - time.sleep(0.1) - GPIO.output(RST,GPIO.LOW) - if GPIO.input(RST) == 0: - print('Reset is complete') - else: - print('Reset is false') - time.sleep(0.01) - GPIO.output(RST,GPIO.HIGH) - """3.set register""" - print('***********set register Start**********') - self.EPD_Write(GDOControl) # Pannel configuration, Gate selection - self.EPD_Write(softstart) # X decrease, Y decrease - self.EPD_Write(VCOMVol) # VCOM setting - self.EPD_Write(DummyLine) # dummy line per gate - self.EPD_Write(Gatetime) # Gage time setting - self.EPD_Write(RamDataEntryMode) # X increase, Y decrease - self.EPD_SetRamArea(0x00,int((xDot-1)/8),int((yDot-1)%256),int((yDot-1)/256),0x00,0x00) # X-source area,Y-gage area - self.EPD_SetRamPointer(0x00,(yDot-1)%256,int((yDot-1)/256)) # set ram - print('***********set register end**********') - def EPD_Update(self): - self.EPD_WriteCMD_p1(0x22,0xc7) - self.EPD_WriteCMD(0x20) - self.EPD_WriteCMD(0xff) - def EPD_Update_Part(self): - self.EPD_WriteCMD_p1(0x22,0x04) - self.EPD_WriteCMD(0x20) - self.EPD_WriteCMD(0xff) - def EPD_init_Full(self): - self.EPD_Init() - self.EPD_Write(LUTDefault_full) - self.EPD_POWERON() - def EPD_init_Part(self): - #GPIO.output(CS,GPIO.LOW) - self.EPD_Init() - self.EPD_Write(LUTDefault_part) - self.EPD_POWERON() - def EPD_Dis_Full(self,DisBuffer,Label): - self.EPD_SetRamPointer(0x00,(yDot-1)%256,int((yDot-1)/256)) - if Label == 0 : - self.EPD_WriteDispRamMono(xDot, yDot, 0xff) - else: - if isinstance(DisBuffer,list): - print('is list') - else: - print('not list') - self.EPD_WriteDispRam(xDot, yDot, DisBuffer) - self.EPD_Update() - def EPD_Dis_Part(self,xStart,xEnd,yStart,yEnd,DisBuffer,Label) : - if Label == 0 : - self.part_display(int(xStart/8),int(xEnd/8),int(yEnd%256),int(yEnd/256),int(yStart%256),int(yStart/256)) - self.EPD_WriteDispRamMono(xEnd-xStart, yEnd-yStart+1, DisBuffer) - self.EPD_Update_Part() - time.sleep(0.5) - self.part_display(int(xStart/8),int(xEnd/8),int(yEnd%256),int(yEnd/256),int(yStart%256),int(yStart/256)) - self.EPD_WriteDispRamMono(xEnd-xStart, yEnd-yStart+1, DisBuffer) - else: - self.part_display(int(xStart/8),int(xEnd/8),int(yEnd%256),int(yEnd/256),int(yStart%256),int(yStart/256)) - self.EPD_WriteDispRam(xEnd-xStart, yEnd-yStart+1, DisBuffer) - self.EPD_Update_Part() - time.sleep(0.5) - self.part_display(int(xStart/8),int(xEnd/8),int(yEnd%256),int(yEnd/256),int(yStart%256),int(yStart/256)) - self.EPD_WriteDispRam(xEnd-xStart, yEnd-yStart+1, DisBuffer) - - """*********************************************************************************************************************** - ------------------------------------------------------------------------ - |\\\ ///| - |\\\ App layer ///| - ------------------------------------------------------------------------ - ***********************************************************************************************************************""" - """******************************************************************************** - clear full screen - ********************************************************************************""" - def Dis_Clear_full(self): - print('1.init full screen') - self.EPD_init_Full() - time.sleep(DELAYTIME) - - #Clear screen - print('2.Clear screen') - m=0xff - self.EPD_Dis_Full(m,0) - time.sleep(DELAYTIME) - - def Dis_Clear_part(self): - print('1.init part screen') - self.EPD_init_Part() - time.sleep(DELAYTIME) - - #Clear screen - print('Clear screen') - m=0xff - self.EPD_Dis_Part(0,xDot-1,0,yDot-1,m,0) - time.sleep(DELAYTIME) - - def Dis_full_pic(self,DisBuffer): - self.EPD_Dis_Full(DisBuffer,1) - - def Dis_part_pic(self,xStart,xEnd,yStart,yEnd,DisBuffer): - self.EPD_Dis_Part(xStart,xEnd,yStart,yEnd,DisBuffer,1) - - """******************************************************************************** - funtion : Select the character size - parameter : - acsii : char data - size : char len - mode : char mode - next : char len - Remarks: - ********************************************************************************""" - def Dis_Char(self,acsii,size,mode,next): - ch = ord(acsii) - 32 - #print "ch =",ch - if size == 12: - temp = [0 for i in range(11)] - temp = Font1206[ch] - else : - temp = [0 for i in range(15)] - temp = Font1608[ch] - for i in range(0,size): - del w_buffer[size*next+i] - w_buffer.insert(size*next+i,~temp[i]&0xff) - """******************************************************************************** - funtion : write string - parameter : - x : x start address - y : y start address - pString : Display data - Size : char len - Remarks: - ********************************************************************************""" - def Dis_String(self,x,y,pString,Size): - len_s = 0 - x_addr = x - y_addr = y - #1.Remove the character and determine the character size - while len_s < len(pString): - if (x > (xDot- Size / 2)): - x = 0 - y = y + Size - if (y > (yDot- Size)): - y = x = 0 - new_string = pString[len_s:len_s+1] - self.Dis_Char(new_string, Size, 0,len_s) - x = x + Size / 2 - len_s = len_s + 1 #Calculate the current number for the first few characters - #2.show - if Size == 12: - self.EPD_Dis_Part(y_addr+1,y_addr+Size/2,yDot-(Size*len_s)-x_addr+1,yDot-x_addr,w_buffer,1) - else: - self.EPD_Dis_Part(y_addr+1,y_addr+Size/2,yDot-(Size*len_s)-x_addr+1,yDot-x_addr,w_buffer,1) - """******************************************************************************** - funtion : Drawing pic - parameter : - xStart : x start address - yStart : y start address - DisBuffer : Display data - xSize : Displays the x length of the image - ySize : Displays the y length of the image - Remarks: - The sample image is 32 * 32 - ********************************************************************************""" - def Dis_Drawing(self,xStart,yStart,DisBuffer,xSize,ySize): - x_addr = xStart*8 - y_addr = yStart*8 - self.EPD_Dis_Part(y_addr,y_addr+xSize-1,yDot-ySize-x_addr,yDot-x_addr-1,DisBuffer,1) - """******************************************************************************** - funtion : show Progress - parameter : - progress_len : Progress bar length - ********************************************************************************""" - def Dis_Progress(self,progress_len): - y = 0 - pheight_pix = 2 - pWidth_pix = 16 - w_buffer = [0xff for i in range(0,5000)] - #1.Initialize the progress bar length and place it in the center of the lower end of the display - for z in range(0,progress_len): - for x in range(0,pWidth_pix*pheight_pix): - if(z == 0): - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_head - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - elif(z == progress_len -1): - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_end - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - else: - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_Spare - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - self.EPD_Dis_Part(xDot-xDot/16-5,xDot-xDot/16+4,(yDot-16*progress_len)/2-1,(yDot-16*progress_len)/2-1+16*progress_len,w_buffer,1) - #2.Load progress bar - y =0 - for z in range(0,progress_len): - for x in range(0,pWidth_pix*pheight_pix): - if(z == 0): - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_zero - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - elif(z == progress_len-1): - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_full - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - else: - temp = [0 for i in range(pheight_pix*pWidth_pix-1)] - temp = progress_start - del w_buffer[y] - w_buffer.insert(y,temp[x]) - y = y + 1 - self.EPD_Dis_Part(xDot-xDot/16-5,xDot-xDot/16+4,(yDot-16*progress_len)/2-1,(yDot-16*progress_len)/2-1+16*progress_len,w_buffer,1) - def Dis_showtime(self,hour,minute,sec): - len_s = 16 - w_buffer = [0xff for i in range(5000)] - for z in range(0,8): - for x in range(0,len_s): - if z == 0 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+hour/10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 1 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+hour%10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 2 : - temp = [0 for i in range(15)] - temp = Font1608[26] - del w_buffer[x + z *16]#delete - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 3 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+minute/10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 4 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+minute%10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 5 : - temp = [0 for i in range(15)] - temp = Font1608[26] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 6 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+sec/10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - elif z == 7 : - temp = [0 for i in range(15)] - temp = Font1608[int(16+sec%10)] - del w_buffer[x + z *16] - w_buffer.insert(x + z *16,~temp[x]&0xff) - else : - return 1 - self.EPD_Dis_Part(int(xDot/10-1),int(xDot/10+8),int((yDot-16*4)/2),int((yDot-16*4)/2-1+16*4),w_buffer,1) - - - - diff --git a/python/epaper-screen/main.py b/python/epaper-screen/main.py deleted file mode 100644 index e29072d..0000000 --- a/python/epaper-screen/main.py +++ /dev/null @@ -1,960 +0,0 @@ -import time -import spidev as SPI -import EPD_driver -import datetime - -EPD2X9 = 0 -EPD02X13 = 1 -EPD1X54 = 0 - -if EPD2X9 == 1: - xDot = 128 - yDot = 296 - DELAYTIME = 0.5 - waveshare = [ - 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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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, - 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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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, - 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,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,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,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,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0X7F,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFE,0X3F,0X03,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFC,0X1E,0X07,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XF8,0X38,0X00,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X07,0XF0,0X70,0X00,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XC0,0XC0,0X00,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0X81,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X3F,0XFF,0XC3,0X83,0XFF,0XFB,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XEF,0XC7,0XFF,0XF3,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X1C,0X7F,0X80,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XF0,0X1C,0X60,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X07,0XF0,0X1C,0X60,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X70,0X07,0XFF,0X1C,0X60,0X1F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XE0,0X03,0X80,0X1C,0X63,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0X03,0X80,0X1C,0X63,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE1,0XC3,0X80,0X1C,0X63,0XFB,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XFF,0X1C,0X60,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE7,0XF0,0X1C,0X60,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XC3,0XC7,0XF0,0X1C,0X60,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X0F,0XF0,0X1C,0X7F,0X87,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XC1,0XFF,0X87,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XFF,0X01,0XFF,0XC1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XF8,0X00,0X3F,0X81,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XC0,0X00,0X03,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0X80,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X3F,0XC0,0X0F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC4,0X3F,0X00,0X0F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF3,0XFF,0XFF,0XFC,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFC,0X00,0X07,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFC,0X00,0X3F,0XC0,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X01,0XFF,0XFC,0X3F,0XFF,0XE3,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X3F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFE,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XC6,0X07,0XC7,0XF1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,0XC6,0X07,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XC6,0X3C,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X03,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X1F,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X7F,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XFF,0XFF,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC6,0X3F,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XC0,0X00,0X46,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X1F,0XC0,0X00,0X46,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X0F,0XC0,0X00,0X46,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X07,0XC0,0X00,0X46,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XC6,0X3F,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X63,0X07,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE3,0XC3,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XC3,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XC6,0X24,0XC6,0X31,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE3,0XE3,0XC6,0X24,0XC0,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XE3,0XC6,0X3C,0XC0,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XE3,0XC6,0X07,0XC0,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XE7,0XC6,0X07,0XC0,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XC7,0XFE,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,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,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,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X0F,0X87,0XF8,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X07,0XC3,0XF8,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X07,0XC3,0XF8,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XE3,0XF8,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XE3,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XC1,0XE3,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE1,0XE3,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0XC3,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0X03,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X07,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF0,0X07,0XF8,0X70,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XF8,0X0F,0X80,0X00,0X00,0X07,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0X80,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X03,0XF8,0X70,0XE1,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XF8,0X00,0X01,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X7F,0XFF,0XF8,0X00,0X01,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XFF,0XFF,0XF8,0X00,0X01,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XF8,0X00,0X01,0X81,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XF8,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFE,0X0F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC3,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XC3,0XFC,0X3F,0XEF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X07,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X70,0X07,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XE0,0X03,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE0,0X03,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE1,0XC3,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XC3,0XFC,0X3F,0XE1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE7,0XC3,0XFC,0X3F,0XC1,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XC3,0XC7,0XC3,0XE0,0X00,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X0F,0XC3,0XC0,0X00,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XC3,0X80,0X00,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XC3,0X80,0X00,0X07,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XC3,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XC2,0X04,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XC2,0X0C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X1C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X3C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7C,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XC0,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XC0,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XC1,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XC3,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X63,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XE3,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE3,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,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,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,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,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,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,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,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,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,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,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,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, - 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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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, - 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,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,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,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,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,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,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,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,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,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,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,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF - ] - -if EPD02X13 == 1: - xDot = 122 - yDot = 250 - DELAYTIME = 2 - waveshare = [ - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XFF,0XEF,0XFB,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFF,0XC7,0XF0,0X7F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X0F,0XFF,0X81,0XC0,0X7F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0XFF,0XFF,0X03,0X80,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XFC,0X07,0X00,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,0XF8,0X0C,0X00,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE3,0XFF,0XFF,0XF0,0X18,0X00,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X30,0X00,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XF0,0XF8,0X3F,0XFF,0XDF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0XF9,0XFC,0XFF,0XFF,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X70,0X07,0XFE,0X01,0XC7,0XF8,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XF0,0X03,0XFE,0X01,0XC6,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE0,0X03,0XFE,0X01,0XC6,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE1,0X83,0XFF,0XF1,0XC6,0X00,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XE0,0X01,0XC6,0X3F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XE0,0X01,0XC6,0X3F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XE0,0X01,0XC6,0X3F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC7,0XE0,0X01,0XC6,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0X87,0XFF,0XF1,0XC6,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0X8F,0XFE,0X01,0XC6,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XFE,0X01,0XC6,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFE,0X01,0XC7,0XFC,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFC,0X3F,0XF8,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XFF,0XE0,0X1F,0XFC,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0X00,0X03,0XFC,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X00,0X30,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0XFF,0XFF,0XE0,0X07,0XF0,0X00,0X7F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XF0,0X07,0XF8,0X00,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XF7,0X86,0X00,0X00,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0X80,0X00,0X10,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XFF,0X80,0X00,0XF8,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XFF,0X80,0X0F,0XFC,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X07,0XFF,0X87,0XFF,0XFE,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XF1,0X80,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X03,0XF1,0X80,0X7C,0X7F,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X07,0XF1,0X80,0X4C,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X3F,0XF1,0X8F,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X01,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0XFF,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X3F,0XF1,0X8F,0XFC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X0F,0XF0,0X00,0X04,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X0F,0XF0,0X00,0X04,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X07,0XF0,0X00,0X04,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X07,0XF0,0X00,0X04,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X43,0X03,0XF0,0X00,0X04,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0X83,0XF1,0X8F,0XFC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0XC3,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XC7,0XF1,0X8C,0XCC,0X63,0X8F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0X87,0XF1,0X8C,0XCC,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0X07,0XF1,0X8F,0XCC,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XF1,0X80,0X4C,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XF1,0X80,0X7C,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X80,0X7C,0X00,0X07,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X7F,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X83,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XC3,0XFE,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X03,0XC3,0XFE,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X83,0XC3,0XFE,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC1,0XC3,0XFE,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC1,0XC3,0XFE,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC0,0X83,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE0,0X07,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE0,0X07,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XF0,0X07,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XF0,0X0F,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1E,0X1E,0X1F,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XE0,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X7F,0XFF,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFE,0X1E,0X1E,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XFF,0XFF,0XFE,0X00,0X00,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFE,0X00,0X00,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XFF,0XFF,0XFE,0X00,0X00,0X1F,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFE,0X00,0X00,0X1E,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XFE,0X00,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XFF,0XFF,0XFF,0XC0,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFF,0XC0,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XFF,0XFF,0XFF,0XE0,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XF0,0X7F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X0F,0XF0,0X7F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X70,0X07,0XF0,0X7F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XF0,0X03,0XF0,0X7F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XE0,0X03,0XF0,0X7F,0X83,0XFE,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE1,0X83,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC3,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0XC7,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XE3,0X87,0XF0,0X7F,0X83,0XFE,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0X8F,0XF0,0X7F,0X83,0XFC,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X78,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XF0,0X70,0X00,0X00,0X0F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X03,0XF0,0X70,0X00,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X03,0XF0,0X70,0X00,0X00,0X1F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X03,0XF0,0X60,0X00,0X00,0X3F,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X60,0X00,0X01,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X41,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X43,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X0F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X0F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X1F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X3F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X03,0XF0,0X3F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XF0,0X7F,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X7F,0XFF,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0X83,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X43,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0X83,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE1,0XC3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0XC3,0XC3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XC7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0X87,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0 - ] -if EPD1X54 == 1: - xDot = 200 - yDot = 200 - DELAYTIME = 0.5 - waveshare = [ - 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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0XFF,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFC,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8, - 0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XC0,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X1F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X00,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0X80,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,0XFF,0XFF,0XDF, - 0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0X8F,0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XFF, - 0XFF,0X07,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFE,0X0E,0X00,0X00,0X3F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00, - 0X01,0XFF,0XFC,0X1C,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X0F,0XFF,0XF0,0X30,0X00,0X00,0X3F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFC,0X00,0XFF,0XFF,0XE0,0X40,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X0F,0XFF,0XFF,0XF0,0XE0,0XFF, - 0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XFB,0XF1,0XFF,0XFC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X07,0X1F,0XE0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFC,0X07,0X18,0X00,0X7F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01, - 0XFF,0XFC,0X07,0X18,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1C,0X01,0XFF,0XFF,0XC7,0X18,0X07,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE, - 0X38,0X00,0XFF,0XE0,0X07,0X18,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0X00,0XFF,0XE0,0X07,0X18,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X78,0X70,0XFF,0XE0,0X07,0X18,0XFE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XFF,0XC7, - 0X18,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFC,0X78,0XF9,0XFF,0XFC,0X07,0X18,0X00,0X7F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X30,0XF1,0XFF, - 0XFC,0X07,0X18,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X03,0XFF,0XFC,0X07,0X1F,0XE1,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00, - 0X00,0XFF,0XFF,0XF0,0X7F,0XE1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF,0XFF,0XC0,0X7F,0XF0,0X7F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFE,0X00,0X00,0XFF,0XFE,0X00,0X0F,0XE0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0XFF,0XF0,0X00,0X00, - 0XC0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XE0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0, - 0X0F,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0X0F,0XC0,0X03,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF, - 0XFF,0XFF,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,0X00,0X01,0XC0,0X7F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X03,0XFF,0XFF,0XFF,0X00,0X0F,0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X7F,0XFF,0XFF,0X0F,0XFF,0XF8, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X00,0X0F,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0XFF, - 0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0XFF,0XF1,0X81,0XF1,0XFC,0X7F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XE0,0XFF,0XF1,0X81,0XF1,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XFF,0XF1,0X8F,0X31,0X8C,0X7F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XE0,0X00,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X07,0XFF,0XF1,0X89,0X31, - 0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFC,0X00,0X1F,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XF1, - 0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF, - 0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD,0XFF,0XFF,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XF1,0X8F,0XF1,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X1F,0XFF,0XF0,0X00,0X11,0X8C, - 0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XC0,0X07,0XFF,0XF0,0X00,0X11,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X03,0XFF,0XF0,0X00, - 0X11,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0X00,0X01,0XFF,0XF0,0X00,0X11,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF, - 0XF1,0X8F,0XF1,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X18,0XC1,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X38, - 0XF0,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF0,0XFF,0XF1,0X89,0X31,0X8C,0X7F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFC,0X78,0XF8,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XF1,0X89,0X31, - 0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XF1,0X89,0X31,0X8C,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X38,0XF8,0XFF,0XF1, - 0X89,0X30,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XF8,0XFF,0XF1,0X8F,0X30,0X00,0X3F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XF8, - 0XFF,0XF1,0X81,0XF0,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XF9,0XFF,0XF1,0X81,0XF0,0X00,0X3F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0X80,0XF1,0XFF,0XFF,0X81,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,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,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, - 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,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X83,0XE1,0XFF, - 0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X01,0XF0,0XFF,0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01, - 0XF0,0XFF,0XFE,0X00,0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XF8,0XFF,0XFE,0X00,0X00,0X0F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFC,0X00,0XF8,0XFF,0XFE,0X1C,0X38,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X30,0X78,0XFF,0XFE,0X1C,0X38, - 0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFC,0X78,0X78,0XFF,0XFE,0X1C,0X38,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0X30,0XFF,0XFE, - 0X1C,0X38,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0X00,0XFF,0XFE,0X1C,0X38,0X7F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X7C,0X01, - 0XFF,0XFE,0X1C,0X38,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X7C,0X01,0XFF,0XFE,0X1C,0X38,0X7F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X3E,0X03,0XFF,0XE0,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XE0,0X00,0X00,0X00, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00, - 0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X1C,0X38,0X78,0X7F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF, - 0XFE,0X1C,0X38,0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFE,0X1C,0X38,0X78,0X7F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00, - 0X00,0XFF,0XFE,0X1C,0X38,0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0X00,0XFF,0XFE,0X1C,0X38,0X78,0X7F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X00,0X00,0X00,0XFF,0XFE,0X1C,0X38,0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8F,0XFF,0XFF,0XFE,0X00,0X00, - 0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0X1F,0XFF,0XFF,0XFE,0X00,0X00,0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X3F,0XFF,0XFF,0XFE, - 0X00,0X00,0X78,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFE,0X00,0X00,0X60,0X7F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF, - 0XFF,0XFE,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0X83, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0X00,0X00,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0XFF, - 0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XF0,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0X0F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0X07,0XFF,0XF0,0XFF,0X0F,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X01,0XFF,0XF0,0XFF,0X0F, - 0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFE,0X1C,0X01,0XFF,0XF0,0XFF,0X0F,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X38,0X00,0XFF,0XF0, - 0XFF,0X0F,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0X00,0XFF,0XF0,0XFF,0X0F,0XF8,0X7F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0X70, - 0XFF,0XF0,0XFF,0X0F,0XF8,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XF0,0XFF,0X0F,0XF8,0X7F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X78,0XF9,0XFF,0XF0,0XFF,0X0F,0XF0,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X30,0XF1,0XFF,0XF0,0XF8,0X00,0X00, - 0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X00,0X03,0XFF,0XF0,0XF0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XF0,0XE0, - 0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF,0XF0,0XE0,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0XFF, - 0XF0,0XC0,0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0XFF,0XF0,0X81,0X0F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0, - 0X00,0XFF,0XF0,0X83,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X0F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XF0,0X07,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0X0F, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X1F,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XF0, - 0X3F,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XF0,0X3F,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00, - 0XFF,0XF0,0X7F,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X00,0X00,0XFF,0XF0,0XFF,0X0F,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X00,0X00,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF,0XFF,0XFF,0XFF,0X0F,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFE,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X3F,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,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,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,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XF0,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X07,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0X80,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X01,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X18,0XC1, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X38,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC, - 0X78,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFC,0X78,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X78,0XF8,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFC,0X38,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XF8,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0XF8,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00, - 0XF9,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XE0,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,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,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,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,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,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,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,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,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,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, - 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,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,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,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,0XFF,0XFF,0XFF,0XFF, - 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF - ] - -#Circle -Circle3232 = [ - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x3F,0xFF,0xFF,0x80,0x07,0xFF, - 0xFE,0x00,0x03,0xFF,0xFC,0x00,0x01,0xFF,0xF8,0x00,0x00,0x7F,0xF0,0x0F,0x80,0x7F, - 0xE0,0x3F,0xE0,0x3F,0xE0,0x7F,0xF0,0x1F,0xC0,0xFF,0xF8,0x1F,0xC1,0xFF,0xFC,0x1F, - 0x81,0xFF,0xFC,0x0F,0x83,0xFF,0xFE,0x0F,0x83,0xFF,0xFE,0x0F,0x83,0xFF,0xFE,0x0F, - 0x83,0xFF,0xFE,0x0F,0x83,0xFF,0xFE,0x0F,0x81,0xFF,0xFC,0x0F,0xC1,0xFF,0xFC,0x1F, - 0xC0,0xFF,0xF8,0x1F,0xC0,0x7F,0xF8,0x1F,0xE0,0x3F,0xE0,0x3F,0xF0,0x0F,0x80,0x7F, - 0xF8,0x00,0x00,0x7F,0xF8,0x00,0x00,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0x00,0x07,0xFF, - 0xFF,0xE0,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -] -#Line -Line3232 = [ - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, - 0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF, -] -bus = 0 -device = 0 - - -disp = EPD_driver.EPD_driver(spi=SPI.SpiDev(bus, device)) - -#init and Clear full screen -print('------------init and Clear full screen------------') -disp.Dis_Clear_full() - -#Show full pic -print('------------Show full pic------------') -disp.Dis_full_pic(waveshare) -time.sleep(DELAYTIME) - -#init and Clear part screen -print('------------init and Clear part screen------------') -disp.Dis_Clear_part() - -#Show part pic -print('------------Show part pic------------') -disp.Dis_part_pic(0,xDot-1,0,yDot-1,waveshare) -time.sleep(DELAYTIME) - -#Drawing -print('------------Show Circle and Line------------') -disp.Dis_Drawing((yDot-32)/8,5,Circle3232,32,32) #Circle -disp.Dis_Drawing((yDot-32)/8,0,Line3232,32,32) #Line -time.sleep(DELAYTIME) - -#String -print('------------Show string------------') -disp.Dis_String(0, 10, "SHOW TIME : ",16) -disp.Dis_String(0, 26, "I am an electronic paper display",12) -time.sleep(DELAYTIME) - -#Progress -print('------------Show Progress------------') -disp.Dis_Progress(9) -time.sleep(DELAYTIME) - -#time -print('------------show time------------') -while 1 : - now = datetime.datetime.now() - now_sec = now.second%10 - next_sec = 11 #Guaranteed next greater than 9 - if now_sec != next_sec: - disp.Dis_showtime(now.hour,now.minute,now.second) - next_sec = now.second%10