mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-08-14 04:05:54 +08:00
Add screen basic notification
Dsiplay SSID / SIGNAL / IP and status like in 2.X
This commit is contained in:
parent
76bad8d262
commit
3b380bac12
@ -49,14 +49,15 @@
|
|||||||
//OLED_I2C_SSD1306 1
|
//OLED_I2C_SSD1306 1
|
||||||
//OLED_I2C_SSDSH1106 2
|
//OLED_I2C_SSDSH1106 2
|
||||||
//TFT_SPI_ILI9341_320X240 3
|
//TFT_SPI_ILI9341_320X240 3
|
||||||
//#define DISPLAY_DEVICE TFT_SPI_ILI9341_320X240
|
#define DISPLAY_DEVICE OLED_I2C_SSD1306
|
||||||
|
|
||||||
#if defined (DISPLAY_DEVICE)
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
//for ILI9143 edit User_Setup.h of TFT_eSPI library
|
||||||
#define DISPLAY_I2C_PIN_SDA 4
|
#define DISPLAY_I2C_PIN_SDA 4
|
||||||
#define DISPLAY_I2C_PIN_SCL 15
|
#define DISPLAY_I2C_PIN_SCL 5
|
||||||
#define DISPLAY_I2C_PIN_RST 16 //comment if not applicable
|
//#define DISPLAY_I2C_PIN_RST 16 //comment if not applicable
|
||||||
#define DISPLAY_I2C_ADDR 0x3c
|
#define DISPLAY_I2C_ADDR 0x3c
|
||||||
//#define DISPLAY_FLIP_VERTICALY 1 //comment to disable
|
#define DISPLAY_FLIP_VERTICALY 1 //comment to disable
|
||||||
#endif //DISPLAY_DEVICE
|
#endif //DISPLAY_DEVICE
|
||||||
//DHT_DEVICE: send update of temperature / humidity based on DHT 11/22
|
//DHT_DEVICE: send update of temperature / humidity based on DHT 11/22
|
||||||
//#define DHT_DEVICE
|
//#define DHT_DEVICE
|
||||||
@ -68,9 +69,9 @@
|
|||||||
#endif //DHT_DEVICE
|
#endif //DHT_DEVICE
|
||||||
|
|
||||||
//PIN_RESET_FEATURE : allow to reset settings by setting low a pin
|
//PIN_RESET_FEATURE : allow to reset settings by setting low a pin
|
||||||
#define PIN_RESET_FEATURE
|
//#define PIN_RESET_FEATURE
|
||||||
#if defined (PIN_RESET_FEATURE)
|
#if defined (PIN_RESET_FEATURE)
|
||||||
#define ESP3D_RESET_PIN 4
|
#define ESP3D_RESET_PIN 2
|
||||||
#endif //PIN_RESET_FEATURE
|
#endif //PIN_RESET_FEATURE
|
||||||
//SDCARD_FEATURE: to access SD Card files directly instead of access by serial using printer Board FW
|
//SDCARD_FEATURE: to access SD Card files directly instead of access by serial using printer Board FW
|
||||||
//#define SDCARD_FEATURE
|
//#define SDCARD_FEATURE
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include "esp3doutput.h"
|
#include "esp3doutput.h"
|
||||||
#include "../modules/boot_delay/boot_delay.h"
|
#include "../modules/boot_delay/boot_delay.h"
|
||||||
|
|
||||||
|
|
||||||
bool Esp3D::restart = false;
|
bool Esp3D::restart = false;
|
||||||
|
|
||||||
//Contructor
|
//Contructor
|
||||||
@ -64,6 +65,8 @@ bool Esp3D::begin()
|
|||||||
BootDelay bd;
|
BootDelay bd;
|
||||||
Hal::begin();
|
Hal::begin();
|
||||||
DEBUG_ESP3D_INIT
|
DEBUG_ESP3D_INIT
|
||||||
|
//init output
|
||||||
|
ESP3DOutput::isOutput(ESP_ALL_CLIENTS, true);
|
||||||
bool res = true;
|
bool res = true;
|
||||||
#if defined(CONNECTED_DEVICES_FEATURE)
|
#if defined(CONNECTED_DEVICES_FEATURE)
|
||||||
if (!DevicesServices::begin()) {
|
if (!DevicesServices::begin()) {
|
||||||
@ -72,7 +75,11 @@ bool Esp3D::begin()
|
|||||||
}
|
}
|
||||||
#endif //CONNECTED_DEVICES_FEATURE
|
#endif //CONNECTED_DEVICES_FEATURE
|
||||||
//delayto avoid to disturb printer
|
//delayto avoid to disturb printer
|
||||||
bd.begin(/*&outserialfn*/);
|
#ifdef DISPLAY_DEVICE
|
||||||
|
bd.begin(&display_progress);
|
||||||
|
#else
|
||||||
|
bd.begin();
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
log_esp3d("Mode %d", WiFi.getMode());
|
log_esp3d("Mode %d", WiFi.getMode());
|
||||||
|
|
||||||
if (!Settings_ESP3D::begin()) {
|
if (!Settings_ESP3D::begin()) {
|
||||||
@ -81,8 +88,6 @@ bool Esp3D::begin()
|
|||||||
//Restart ESP3D
|
//Restart ESP3D
|
||||||
restart_esp();
|
restart_esp();
|
||||||
}
|
}
|
||||||
//init output
|
|
||||||
ESP3DOutput::isOutput(ESP_ALL_CLIENTS, true);
|
|
||||||
//BT do not start automaticaly so should be OK
|
//BT do not start automaticaly so should be OK
|
||||||
//Serial service
|
//Serial service
|
||||||
if (!serial_service.begin()) {
|
if (!serial_service.begin()) {
|
||||||
|
@ -40,8 +40,9 @@ uint8_t ESP3DOutput::_outputflags = ESP_ALL_CLIENTS;
|
|||||||
#include <ESP8266WebServer.h>
|
#include <ESP8266WebServer.h>
|
||||||
#endif //ARDUINO_ARCH_ESP8266
|
#endif //ARDUINO_ARCH_ESP8266
|
||||||
#endif //HTTP_FEATURE
|
#endif //HTTP_FEATURE
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
#include "../modules/display/display.h"
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
|
|
||||||
//constructor
|
//constructor
|
||||||
ESP3DOutput::ESP3DOutput(uint8_t client)
|
ESP3DOutput::ESP3DOutput(uint8_t client)
|
||||||
@ -204,6 +205,9 @@ size_t ESP3DOutput::printMSG(const char * s)
|
|||||||
display+= s;
|
display+= s;
|
||||||
return printLN(display.c_str());
|
return printLN(display.c_str());
|
||||||
}
|
}
|
||||||
|
if (_client == ESP_SCREEN_CLIENT){
|
||||||
|
return print(s);
|
||||||
|
}
|
||||||
switch(Settings_ESP3D::GetFirmwareTarget()) {
|
switch(Settings_ESP3D::GetFirmwareTarget()) {
|
||||||
case GRBL:
|
case GRBL:
|
||||||
display = "[MSG:";
|
display = "[MSG:";
|
||||||
@ -230,6 +234,9 @@ size_t ESP3DOutput::printERROR(const char * s, int code_error)
|
|||||||
if (!isOutput(_client)) {
|
if (!isOutput(_client)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (_client == ESP_SCREEN_CLIENT){
|
||||||
|
return print(s);
|
||||||
|
}
|
||||||
#ifdef HTTP_FEATURE
|
#ifdef HTTP_FEATURE
|
||||||
_code = code_error;
|
_code = code_error;
|
||||||
if (_client == ESP_HTTP_CLIENT) {
|
if (_client == ESP_HTTP_CLIENT) {
|
||||||
@ -350,6 +357,11 @@ size_t ESP3DOutput::write(const uint8_t *buffer, size_t size)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif //HTTP_FEATURE
|
#endif //HTTP_FEATURE
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
case ESP_SCREEN_CLIENT:
|
||||||
|
esp3d_display.SetStatus((const char *)buffer);
|
||||||
|
return size;
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
#if defined (BLUETOOTH_FEATURE)
|
#if defined (BLUETOOTH_FEATURE)
|
||||||
case ESP_BT_CLIENT:
|
case ESP_BT_CLIENT:
|
||||||
if(bt_service.started()) {
|
if(bt_service.started()) {
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#define ESP_WEBSOCKET_TERMINAL_CLIENT 8
|
#define ESP_WEBSOCKET_TERMINAL_CLIENT 8
|
||||||
#define ESP_PRINTER_LCD_CLIENT 16
|
#define ESP_PRINTER_LCD_CLIENT 16
|
||||||
#define ESP_BT_CLIENT 32
|
#define ESP_BT_CLIENT 32
|
||||||
#define ESP_OLED_CLIENT 64
|
#define ESP_SCREEN_CLIENT 64
|
||||||
#define ESP_WEBSOCKET_CLIENT 128
|
#define ESP_WEBSOCKET_CLIENT 128
|
||||||
#define ESP_ALL_CLIENTS 255
|
#define ESP_ALL_CLIENTS 255
|
||||||
|
|
||||||
|
@ -444,9 +444,9 @@ bool Commands::ESP400(const char* cmd_params, level_authenticate_type auth_type,
|
|||||||
output->print ("\",\"T\":\"F\",\"V\":\"");
|
output->print ("\",\"T\":\"F\",\"V\":\"");
|
||||||
output->print (Settings_ESP3D::read_byte(ESP_TARGET_FW));
|
output->print (Settings_ESP3D::read_byte(ESP_TARGET_FW));
|
||||||
output->printf ("\",\"H\":\"Output msg\",\"O\":[{\"M117\":\"%d\"}", ESP_PRINTER_LCD_CLIENT);
|
output->printf ("\",\"H\":\"Output msg\",\"O\":[{\"M117\":\"%d\"}", ESP_PRINTER_LCD_CLIENT);
|
||||||
#ifdef ESP_OLED_FEATURE
|
#ifdef DISPLAY_DEVICE
|
||||||
output->printf (",{\"Oled\":\"%d\"}", ESP_OLED_CLIENT);
|
output->printf (",{\"Screen\":\"%d\"}", ESP_SCREEN_CLIENT);
|
||||||
#endif //ESP_OLED_FEATURE
|
#endif //DISPLAY_DEVICE
|
||||||
output->printf (",{\"Serial\":\"%d\"}", ESP_SERIAL_CLIENT);
|
output->printf (",{\"Serial\":\"%d\"}", ESP_SERIAL_CLIENT);
|
||||||
#ifdef WS_DATA_FEATURE
|
#ifdef WS_DATA_FEATURE
|
||||||
output->printf (",{\"Web Socket\":\"%d\"}", ESP_WEBSOCKET_CLIENT);
|
output->printf (",{\"Web Socket\":\"%d\"}", ESP_WEBSOCKET_CLIENT);
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#define _VERSION_ESP3D_H
|
#define _VERSION_ESP3D_H
|
||||||
|
|
||||||
//version and sources location
|
//version and sources location
|
||||||
#define FW_VERSION "3.0.0.a5"
|
#define FW_VERSION "3.0.0.a6"
|
||||||
#define REPOSITORY "https://github.com/luc-github/ESP3D"
|
#define REPOSITORY "https://github.com/luc-github/ESP3D"
|
||||||
|
|
||||||
#endif //_VERSION_ESP3D_H
|
#endif //_VERSION_ESP3D_H
|
||||||
|
@ -69,7 +69,8 @@ static void my_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
|
|||||||
{
|
{
|
||||||
ESP3DOutput output(ESP_ALL_CLIENTS);
|
ESP3DOutput output(ESP_ALL_CLIENTS);
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case ESP_SPP_SRV_OPEN_EVT: { //Server connection open
|
case ESP_SPP_SRV_OPEN_EVT:
|
||||||
|
{ //Server connection open
|
||||||
char str[18];
|
char str[18];
|
||||||
str[17]='\0';
|
str[17]='\0';
|
||||||
uint8_t * addr = param->srv_open.rem_bda;
|
uint8_t * addr = param->srv_open.rem_bda;
|
||||||
@ -78,12 +79,22 @@ static void my_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
|
|||||||
String stmp = "BT Connected with ";
|
String stmp = "BT Connected with ";
|
||||||
stmp += str;
|
stmp += str;
|
||||||
output.printMSG(stmp.c_str());
|
output.printMSG(stmp.c_str());
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG(stmp.c_str());
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ESP_SPP_CLOSE_EVT://Client connection closed
|
case ESP_SPP_CLOSE_EVT:
|
||||||
|
{//Client connection closed
|
||||||
output.printMSG("BT Disconnected");
|
output.printMSG("BT Disconnected");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG("BT Disconnected");
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
BTService::setClientAddress("");
|
BTService::setClientAddress("");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
67
esp3d/src/modules/display/OLED_SSD1306.h
Normal file
67
esp3d/src/modules/display/OLED_SSD1306.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
OLED_SSD1306.h - ESP3D display data file
|
||||||
|
|
||||||
|
Copyright (c) 2014 Luc Lebosse. All rights reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
//Screen size
|
||||||
|
#define SCREEN_WIDTH 128
|
||||||
|
#define SCREEN_HEIGHT 64
|
||||||
|
//Colors
|
||||||
|
#define TFT_BLACK BLACK
|
||||||
|
#define TFT_WHITE WHITE
|
||||||
|
#define SPLASH_FG TFT_BLACK
|
||||||
|
#define SPLASH_BG TFT_WHITE
|
||||||
|
#define SCREEN_BG TFT_BLACK
|
||||||
|
#define PROGRESS_FG TFT_WHITE
|
||||||
|
#define SIGNAL_FG TFT_WHITE
|
||||||
|
#define SSID_FG TFT_WHITE
|
||||||
|
#define IP_FG TFT_WHITE
|
||||||
|
#define STATUS_FG TFT_WHITE
|
||||||
|
|
||||||
|
//Fonts
|
||||||
|
#define FONTSIGNAL 2
|
||||||
|
#define FONTSSID 2
|
||||||
|
#define FONTIP 3
|
||||||
|
#define FONTSTATUS 2
|
||||||
|
|
||||||
|
//Positions
|
||||||
|
#define SIGNAL_X 128-27
|
||||||
|
#define SIGNAL_Y 0
|
||||||
|
#define SIGNAL_W 46
|
||||||
|
#define SIGNAL_H 10
|
||||||
|
|
||||||
|
#define SIGNAL_ICON_X 128-43
|
||||||
|
#define SIGNAL_ICON_Y 2
|
||||||
|
#define SIGNAL_ICON_W 15
|
||||||
|
#define SIGNAL_ICON_H 10
|
||||||
|
#define SIGNAL_ICON_W_BAR 3
|
||||||
|
#define SIGNAL_ICON_SPACER_X 1
|
||||||
|
|
||||||
|
#define SSID_AREA_X 0
|
||||||
|
#define SSID_AREA_Y 0
|
||||||
|
#define SSID_AREA_W 85
|
||||||
|
#define SSID_AREA_H 12
|
||||||
|
|
||||||
|
#define IP_AREA_X 0
|
||||||
|
#define IP_AREA_Y 16
|
||||||
|
#define IP_AREA_W 128
|
||||||
|
#define IP_AREA_H 16
|
||||||
|
|
||||||
|
#define STATUS_AREA_X 0
|
||||||
|
#define STATUS_AREA_Y 48
|
||||||
|
#define STATUS_AREA_W 128
|
||||||
|
#define STATUS_AREA_H 16
|
67
esp3d/src/modules/display/OLED_SSDSH1106.h
Normal file
67
esp3d/src/modules/display/OLED_SSDSH1106.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*
|
||||||
|
OLED_SSDSH1106.h - ESP3D display data file
|
||||||
|
|
||||||
|
Copyright (c) 2014 Luc Lebosse. All rights reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
//Screen size
|
||||||
|
#define SCREEN_WIDTH 132
|
||||||
|
#define SCREEN_HEIGHT 64
|
||||||
|
//Colors
|
||||||
|
#define TFT_BLACK BLACK
|
||||||
|
#define TFT_WHITE WHITE
|
||||||
|
#define SPLASH_FG TFT_BLACK
|
||||||
|
#define SPLASH_BG TFT_WHITE
|
||||||
|
#define SCREEN_BG TFT_BLACK
|
||||||
|
#define PROGRESS_FG TFT_WHITE
|
||||||
|
#define SIGNAL_FG TFT_WHITE
|
||||||
|
#define SSID_FG TFT_WHITE
|
||||||
|
#define IP_FG TFT_WHITE
|
||||||
|
#define STATUS_FG TFT_WHITE
|
||||||
|
|
||||||
|
//Fonts
|
||||||
|
#define FONTSIGNAL 2
|
||||||
|
#define FONTSSID 2
|
||||||
|
#define FONTIP 3
|
||||||
|
#define FONTSTATUS 2
|
||||||
|
|
||||||
|
//Positions
|
||||||
|
#define SIGNAL_X 132-27
|
||||||
|
#define SIGNAL_Y 0
|
||||||
|
#define SIGNAL_W 46
|
||||||
|
#define SIGNAL_H 10
|
||||||
|
|
||||||
|
#define SIGNAL_ICON_X 132-43
|
||||||
|
#define SIGNAL_ICON_Y 2
|
||||||
|
#define SIGNAL_ICON_W 15
|
||||||
|
#define SIGNAL_ICON_H 10
|
||||||
|
#define SIGNAL_ICON_W_BAR 3
|
||||||
|
#define SIGNAL_ICON_SPACER_X 1
|
||||||
|
|
||||||
|
#define SSID_AREA_X 0
|
||||||
|
#define SSID_AREA_Y 0
|
||||||
|
#define SSID_AREA_W 85
|
||||||
|
#define SSID_AREA_H 12
|
||||||
|
|
||||||
|
#define IP_AREA_X 0
|
||||||
|
#define IP_AREA_Y 16
|
||||||
|
#define IP_AREA_W 132
|
||||||
|
#define IP_AREA_H 16
|
||||||
|
|
||||||
|
#define STATUS_AREA_X 0
|
||||||
|
#define STATUS_AREA_Y 48
|
||||||
|
#define STATUS_AREA_W 132
|
||||||
|
#define STATUS_AREA_H 16
|
66
esp3d/src/modules/display/TFT_ILI9341_240X320.h
Normal file
66
esp3d/src/modules/display/TFT_ILI9341_240X320.h
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
OLED_SSD1306.h - ESP3D display data file
|
||||||
|
|
||||||
|
Copyright (c) 2014 Luc Lebosse. All rights reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
//Screen size
|
||||||
|
#define SCREEN_WIDTH 320
|
||||||
|
#define SCREEN_HEIGHT 240
|
||||||
|
|
||||||
|
//Colors
|
||||||
|
#define SPLASH_FG TFT_BLACK
|
||||||
|
#define SPLASH_BG TFT_WHITE
|
||||||
|
#define SCREEN_BG TFT_BLACK
|
||||||
|
#define PROGRESS_FG TFT_WHITE
|
||||||
|
#define SIGNAL_FG TFT_WHITE
|
||||||
|
#define SSID_FG TFT_WHITE
|
||||||
|
#define IP_FG TFT_WHITE
|
||||||
|
#define STATUS_FG TFT_WHITE
|
||||||
|
|
||||||
|
//Fonts
|
||||||
|
#define FONTSIGNAL 2
|
||||||
|
#define FONTSSID 2
|
||||||
|
#define FONTIP 3
|
||||||
|
#define FONTSTATUS 2
|
||||||
|
|
||||||
|
//Positions
|
||||||
|
#define SIGNAL_X 320-34
|
||||||
|
#define SIGNAL_Y 0
|
||||||
|
#define SIGNAL_W 34
|
||||||
|
#define SIGNAL_H 16
|
||||||
|
|
||||||
|
#define SIGNAL_ICON_X 320-50
|
||||||
|
#define SIGNAL_ICON_Y 2
|
||||||
|
#define SIGNAL_ICON_W 15
|
||||||
|
#define SIGNAL_ICON_H 10
|
||||||
|
#define SIGNAL_ICON_W_BAR 3
|
||||||
|
#define SIGNAL_ICON_SPACER_X 1
|
||||||
|
|
||||||
|
#define SSID_AREA_X 0
|
||||||
|
#define SSID_AREA_Y 0
|
||||||
|
#define SSID_AREA_W 269
|
||||||
|
#define SSID_AREA_H 16
|
||||||
|
|
||||||
|
#define IP_AREA_X 0
|
||||||
|
#define IP_AREA_Y 16
|
||||||
|
#define IP_AREA_W 320
|
||||||
|
#define IP_AREA_H 16
|
||||||
|
|
||||||
|
#define STATUS_AREA_X 0
|
||||||
|
#define STATUS_AREA_Y 48
|
||||||
|
#define STATUS_AREA_W 320
|
||||||
|
#define STATUS_AREA_H 16
|
@ -29,43 +29,295 @@
|
|||||||
#include "esp3d_logo.h"
|
#include "esp3d_logo.h"
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306
|
||||||
#include <SSD1306.h>
|
#include <SSD1306.h>
|
||||||
SSD1306 esp_display(DISPLAY_I2C_ADDR, DISPLAY_I2C_PIN_SDA, DISPLAY_I2C_PIN_SCL);
|
SSD1306 esp3d_screen(DISPLAY_I2C_ADDR, DISPLAY_I2C_PIN_SDA, DISPLAY_I2C_PIN_SCL);
|
||||||
|
#include "OLED_SSD1306.h"
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306
|
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#if DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#include <SH1106.h>
|
#include <SH1106.h>
|
||||||
SH1106 esp_display(DISPLAY_I2C_ADDR, (DISPLAY_I2C_PIN_SDA==-1)?SDA:DISPLAY_I2C_PIN_SDA, (DISPLAY_I2C_PIN_SCL==-1)?SCL:DISPLAY_I2C_PIN_SCL);
|
SH1106 esp3d_screen(DISPLAY_I2C_ADDR, (DISPLAY_I2C_PIN_SDA==-1)?SDA:DISPLAY_I2C_PIN_SDA, (DISPLAY_I2C_PIN_SCL==-1)?SCL:DISPLAY_I2C_PIN_SCL);
|
||||||
|
#include "OLED_SSDSH1106.h"
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#endif //DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
#include <TFT_eSPI.h>
|
#include <TFT_eSPI.h>
|
||||||
TFT_eSPI esp_display = TFT_eSPI();
|
TFT_eSPI esp3d_screen = TFT_eSPI();
|
||||||
#include "esp3d_logob.h"
|
#include "esp3d_logob.h"
|
||||||
|
#include "TFT_ILI9341_240X320.h"
|
||||||
#endif //TFT_SPI_ILI9341_240X320
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
#if defined (WIFI_FEATURE)
|
||||||
|
#include "../wifi/wificonfig.h"
|
||||||
|
#endif // WIFI_FEATURE
|
||||||
|
#if defined (ETH_FEATURE)
|
||||||
|
#include "../ethernet/ethconfig.h"
|
||||||
|
#endif //ETH_FEATURE
|
||||||
|
#if defined (BLUETOOTH_FEATURE)
|
||||||
|
#include "../bluetooth/BT_service.h"
|
||||||
|
#endif //BLUETOOTH_FEATURE
|
||||||
|
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
|
||||||
|
#include "../network/netconfig.h"
|
||||||
|
#endif //WIFI_FEATURE || ETH_FEATURE) ||BLUETOOTH_FEATURE
|
||||||
#define DISPLAY_REFRESH_TIME 1000
|
#define DISPLAY_REFRESH_TIME 1000
|
||||||
|
|
||||||
Display esp3d_display;
|
Display esp3d_display;
|
||||||
|
|
||||||
bool Display::splash()
|
bool Display::splash()
|
||||||
{
|
{
|
||||||
if (!_splash_displayed) {
|
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
|
||||||
esp_display.drawXbm((_screenwidth-ESP3D_Logo_width)/2, (_screenheight-ESP3D_Logo_height)/2, ESP3D_Logo_width, ESP3D_Logo_height, ESP3D_Logo);
|
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
|
||||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
|
||||||
esp_display.drawXBitmap((_screenwidth-ESP3D_Logo_width)/2, (_screenheight-ESP3D_Logo_height)/2, ESP3D_Logo, ESP3D_Logo_width, ESP3D_Logo_height, TFT_WHITE);
|
|
||||||
#endif //TFT_SPI_ILI9341_240X320
|
|
||||||
log_esp3d("Splash");
|
log_esp3d("Splash");
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!_splash_displayed) {
|
||||||
|
drawXbm((_screenwidth-ESP3D_Logo_width)/2, (_screenheight-ESP3D_Logo_height)/2, ESP3D_Logo_width, ESP3D_Logo_height, SPLASH_FG, SPLASH_BG ,ESP3D_Logo);
|
||||||
|
log_esp3d("Display Splash");
|
||||||
_splash_displayed = true;
|
_splash_displayed = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Display::showStatus()
|
||||||
|
{
|
||||||
|
//Display Status
|
||||||
|
String status = _status;
|
||||||
|
setTextFont(FONTSTATUS);
|
||||||
|
uint16_t size = sizetoFitSpace(status.c_str(), STATUS_AREA_W);
|
||||||
|
//check the need for resize
|
||||||
|
if (size < status.length()){
|
||||||
|
static int status_shift = -1;
|
||||||
|
status+=" ";
|
||||||
|
log_esp3d("current %s", status.c_str());
|
||||||
|
if (status_shift > status.length()){
|
||||||
|
status_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("shift %d", status_shift);
|
||||||
|
if (status_shift > 0){
|
||||||
|
status.remove(0,status_shift);
|
||||||
|
}
|
||||||
|
log_esp3d("shifted %s", status.c_str());
|
||||||
|
size = sizetoFitSpace(status.c_str(), STATUS_AREA_W);
|
||||||
|
log_esp3d("size available %d existing %d",size, status.length());
|
||||||
|
if (size < status.length()){
|
||||||
|
//cut
|
||||||
|
status = status.substring(0,size);
|
||||||
|
status_shift++;
|
||||||
|
} else{
|
||||||
|
status_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("sized %s", status.c_str());
|
||||||
|
}
|
||||||
|
//clear area
|
||||||
|
fillRect(STATUS_AREA_X, STATUS_AREA_Y, STATUS_AREA_W, STATUS_AREA_H, SCREEN_BG);
|
||||||
|
drawString(status.c_str(), STATUS_AREA_X, STATUS_AREA_Y, STATUS_FG);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Display::main_screen()
|
||||||
|
{
|
||||||
|
log_esp3d("Mainscreen");
|
||||||
|
//Signal
|
||||||
|
int sig = -1;
|
||||||
|
|
||||||
|
#if defined (WIFI_FEATURE)
|
||||||
|
if (WiFiConfig::started()){
|
||||||
|
String ssid;
|
||||||
|
if (WiFi.getMode() == WIFI_AP) {
|
||||||
|
sig = 100;
|
||||||
|
ssid = WiFiConfig::AP_SSID();
|
||||||
|
} else {
|
||||||
|
if (WiFi.isConnected()) {
|
||||||
|
sig = WiFiConfig::getSignal (WiFi.RSSI ());
|
||||||
|
ssid = WiFi.SSID();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Display SSID
|
||||||
|
setTextFont(FONTSSID);
|
||||||
|
uint16_t size = sizetoFitSpace(ssid.c_str(), SSID_AREA_W);
|
||||||
|
//check the need for resize
|
||||||
|
if (size < ssid.length()){
|
||||||
|
static int ssid_shift = -1;
|
||||||
|
ssid+=" ";
|
||||||
|
log_esp3d("current %s", ssid.c_str());
|
||||||
|
if (ssid_shift > ssid.length()){
|
||||||
|
ssid_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("shift %d", ssid_shift);
|
||||||
|
if (ssid_shift > 0){
|
||||||
|
ssid.remove(0,ssid_shift);
|
||||||
|
}
|
||||||
|
log_esp3d("shifted %s", ssid.c_str());
|
||||||
|
size = sizetoFitSpace(ssid.c_str(), SSID_AREA_W);
|
||||||
|
log_esp3d("size available %d existing %d",size, ssid.length());
|
||||||
|
if (size < ssid.length()){
|
||||||
|
//cut
|
||||||
|
ssid = ssid.substring(0,size);
|
||||||
|
ssid_shift++;
|
||||||
|
} else{
|
||||||
|
ssid_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("sized %s", ssid.c_str());
|
||||||
|
}
|
||||||
|
//clear area
|
||||||
|
fillRect(SSID_AREA_X, SSID_AREA_Y, SSID_AREA_W, SSID_AREA_H, SCREEN_BG);
|
||||||
|
drawString(ssid.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||||
|
}
|
||||||
|
#endif // WIFI_FEATURE
|
||||||
|
#if defined (ETH_FEATURE)
|
||||||
|
if (EthConfig::started()){
|
||||||
|
sig = -2;
|
||||||
|
setTextFont(FONTSSID);
|
||||||
|
//clear area
|
||||||
|
fillRect(SSID_AREA_X, SSID_AREA_Y, SSID_AREA_W, SSID_AREA_H, SCREEN_BG);
|
||||||
|
//display connection speed
|
||||||
|
if(ETH.linkUp()){
|
||||||
|
ssid = ETH.linkSpeed();
|
||||||
|
ssid+= "Mbps";
|
||||||
|
drawString(ssid.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //ETH_FEATURE
|
||||||
|
#if defined (BLUETOOTH_FEATURE)
|
||||||
|
if (bt_service.started()){
|
||||||
|
sig = -3;
|
||||||
|
//Display hostname
|
||||||
|
String hostname = bt_service.hostname();
|
||||||
|
setTextFont(FONTSSID);
|
||||||
|
uint16_t size = sizetoFitSpace(hostname.c_str(), SSID_AREA_W);
|
||||||
|
//check the need for resize
|
||||||
|
if (size < hostname.length()){
|
||||||
|
static int hostname_shift = -1;
|
||||||
|
hostname+=" ";
|
||||||
|
log_esp3d("current %s", hostname.c_str());
|
||||||
|
if (hostname_shift > hostname.length()){
|
||||||
|
hostname_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("shift %d", hostname_shift);
|
||||||
|
if (hostname_shift > 0){
|
||||||
|
hostname.remove(0,hostname_shift);
|
||||||
|
}
|
||||||
|
log_esp3d("shifted %s", hostname.c_str());
|
||||||
|
size = sizetoFitSpace(hostname.c_str(), SSID_AREA_W);
|
||||||
|
log_esp3d("size available %d existing %d",size, hostname.length());
|
||||||
|
if (size < hostname.length()){
|
||||||
|
//cut
|
||||||
|
hostname = hostname.substring(0,size);
|
||||||
|
hostname_shift++;
|
||||||
|
} else{
|
||||||
|
hostname_shift = -1;
|
||||||
|
}
|
||||||
|
log_esp3d("sized %s", hostname.c_str());
|
||||||
|
}
|
||||||
|
//clear area
|
||||||
|
fillRect(SSID_AREA_X, SSID_AREA_Y, SSID_AREA_W, SSID_AREA_H, SCREEN_BG);
|
||||||
|
if (hostname.length()>0){
|
||||||
|
drawString(hostname.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //BLUETOOTH_FEATURE
|
||||||
|
//set current font size
|
||||||
|
setTextFont(FONTSIGNAL);
|
||||||
|
fillRect(SIGNAL_X, SIGNAL_Y, SIGNAL_W, SIGNAL_H,SCREEN_BG);
|
||||||
|
fillRect(SIGNAL_ICON_X, SIGNAL_ICON_Y, SIGNAL_ICON_W, SIGNAL_ICON_H,SCREEN_BG);
|
||||||
|
String s;
|
||||||
|
if (sig > 0) {
|
||||||
|
//Signal %
|
||||||
|
s = String(sig);
|
||||||
|
s+="%";
|
||||||
|
//Signal Icon according %
|
||||||
|
if (sig > 0) {
|
||||||
|
fillRect(SIGNAL_ICON_X, SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.6), SIGNAL_ICON_W_BAR, SIGNAL_ICON_H * 0.4, SIGNAL_FG);
|
||||||
|
} else {
|
||||||
|
drawRect(SIGNAL_ICON_X, SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.6), SIGNAL_ICON_W_BAR, SIGNAL_ICON_H * 0.4, SIGNAL_FG);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sig >= 25) {
|
||||||
|
fillRect(SIGNAL_ICON_X + SIGNAL_ICON_SPACER_X +SIGNAL_ICON_W_BAR, SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.4), SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H * 0.6), SIGNAL_FG);
|
||||||
|
} else {
|
||||||
|
drawRect(SIGNAL_ICON_X + SIGNAL_ICON_SPACER_X + SIGNAL_ICON_W_BAR, SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.4), SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H * 0.6), SIGNAL_FG);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sig >= 50) {
|
||||||
|
fillRect(SIGNAL_ICON_X + (2*(SIGNAL_ICON_SPACER_X + SIGNAL_ICON_W_BAR)), SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.2), SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H * 0.8), SIGNAL_FG);
|
||||||
|
} else {
|
||||||
|
drawRect(SIGNAL_ICON_X + (2*(SIGNAL_ICON_SPACER_X + SIGNAL_ICON_W_BAR)), SIGNAL_ICON_Y + (SIGNAL_ICON_H * 0.2), SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H * 0.8), SIGNAL_FG);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sig >= 75) {
|
||||||
|
fillRect(SIGNAL_ICON_X + (3*(SIGNAL_ICON_SPACER_X + SIGNAL_ICON_W_BAR)), SIGNAL_ICON_Y, SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H), SIGNAL_FG);
|
||||||
|
} else {
|
||||||
|
drawRect(SIGNAL_ICON_X + (3*(SIGNAL_ICON_SPACER_X + SIGNAL_ICON_W_BAR)), SIGNAL_ICON_Y, SIGNAL_ICON_W_BAR, (SIGNAL_ICON_H), SIGNAL_FG);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//No signal / no connection
|
||||||
|
if (sig == -1) {
|
||||||
|
s = " X";
|
||||||
|
}
|
||||||
|
//Ethernet is connected
|
||||||
|
if (sig == -2) {
|
||||||
|
s = "Eth";
|
||||||
|
}
|
||||||
|
//BT is active
|
||||||
|
if (sig == -3) {
|
||||||
|
s = "BT";
|
||||||
|
}
|
||||||
|
//Show Connection type
|
||||||
|
drawString(s.c_str(), SIGNAL_X, SIGNAL_Y, SIGNAL_FG);
|
||||||
|
|
||||||
|
//IP
|
||||||
|
setTextFont(FONTIP);
|
||||||
|
fillRect(IP_AREA_X, IP_AREA_Y, IP_AREA_W, IP_AREA_H, SCREEN_BG);
|
||||||
|
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
|
||||||
|
if (NetConfig::started()){
|
||||||
|
switch(NetConfig::getMode()){
|
||||||
|
#if defined (WIFI_FEATURE)
|
||||||
|
case ESP_WIFI_STA:
|
||||||
|
s = WiFi.localIP().toString();
|
||||||
|
break;
|
||||||
|
case ESP_WIFI_AP:
|
||||||
|
s = WiFi.softAPIP().toString();
|
||||||
|
break;
|
||||||
|
#endif //WIFI_FEATURE
|
||||||
|
#if defined (ETH_FEATURE)
|
||||||
|
case ESP_ETH_STA:
|
||||||
|
s = ETH.localIP().toString();
|
||||||
|
break;
|
||||||
|
#endif //ETH_FEATURE
|
||||||
|
#if defined (BLUETOOTH_FEATURE)
|
||||||
|
case ESP_BT:
|
||||||
|
s = bt_service.isConnected()?"Connected":"";
|
||||||
|
break;
|
||||||
|
#endif //BLUETOOTH_FEATURE
|
||||||
|
default:
|
||||||
|
s="";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (s.length()>0){
|
||||||
|
drawString(s.c_str(), IP_AREA_X, IP_AREA_Y, IP_FG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
|
||||||
|
//status
|
||||||
|
showStatus();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t Display::sizetoFitSpace(const char * string, uint16_t maxwidth)
|
||||||
|
{
|
||||||
|
String s = string;
|
||||||
|
while (getStringWidth(s.c_str()) > maxwidth) {
|
||||||
|
if (s.length() > 0) {
|
||||||
|
s.remove(s.length()-1);
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s.length();
|
||||||
|
}
|
||||||
|
|
||||||
void Display::show_screenID(uint8_t screenID)
|
void Display::show_screenID(uint8_t screenID)
|
||||||
{
|
{
|
||||||
|
clear_screen();
|
||||||
_screenID = screenID;
|
_screenID = screenID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,18 +326,8 @@ Display::Display()
|
|||||||
_started = false;
|
_started = false;
|
||||||
_screenID = SPLASH_SCREEN;
|
_screenID = SPLASH_SCREEN;
|
||||||
_splash_displayed=false;
|
_splash_displayed=false;
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306
|
_screenwidth = SCREEN_WIDTH;
|
||||||
_screenwidth = 128;
|
_screenheight = SCREEN_HEIGHT;
|
||||||
_screenheight = 64;
|
|
||||||
#endif //OLED_I2C_SSD1306
|
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
|
||||||
_screenwidth = 132;
|
|
||||||
_screenheight = 64;
|
|
||||||
#endif //OLED_I2C_SSDSH1106
|
|
||||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
|
||||||
_screenwidth = 320;
|
|
||||||
_screenheight = 240;
|
|
||||||
#endif //TFT_SPI_ILI9341_240X320
|
|
||||||
}
|
}
|
||||||
Display::~Display()
|
Display::~Display()
|
||||||
{
|
{
|
||||||
@ -96,6 +338,7 @@ bool Display::begin()
|
|||||||
{
|
{
|
||||||
bool res = true;
|
bool res = true;
|
||||||
_started = false;
|
_started = false;
|
||||||
|
log_esp3d("Init Display");
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#if defined(DISPLAY_I2C_PIN_RST)
|
#if defined(DISPLAY_I2C_PIN_RST)
|
||||||
pinMode(DISPLAY_I2C_PIN_RST,OUTPUT);
|
pinMode(DISPLAY_I2C_PIN_RST,OUTPUT);
|
||||||
@ -103,17 +346,20 @@ bool Display::begin()
|
|||||||
delay(10); // wait for a second
|
delay(10); // wait for a second
|
||||||
digitalWrite(DISPLAY_I2C_PIN_RST, HIGH); // turn the LED off by making the voltage LOW
|
digitalWrite(DISPLAY_I2C_PIN_RST, HIGH); // turn the LED off by making the voltage LOW
|
||||||
#endif //DISPLAY_I2C_PIN_RST
|
#endif //DISPLAY_I2C_PIN_RST
|
||||||
log_esp3d("Init Display");
|
esp3d_screen.init();
|
||||||
esp_display.init();
|
esp3d_screen.clear();
|
||||||
esp_display.clear();
|
|
||||||
#if defined(DISPLAY_FLIP_VERTICALY)
|
#if defined(DISPLAY_FLIP_VERTICALY)
|
||||||
esp_display.flipScreenVertically();
|
esp3d_screen.flipScreenVertically();
|
||||||
#endif
|
#endif
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
esp_display.begin(); // Initialise the display
|
esp3d_screen.begin(); // Initialise the display
|
||||||
esp_display.setRotation(3);
|
#if defined(DISPLAY_FLIP_VERTICALY)
|
||||||
esp_display.fillScreen(TFT_BLACK); // Black screen fill
|
esp3d_screen.setRotation(3);
|
||||||
|
#else
|
||||||
|
esp3d_screen.setRotation(1);
|
||||||
|
#endif
|
||||||
|
esp3d_screen.fillScreen(SCREEN_BG); // Black screen fill
|
||||||
#endif //TFT_SPI_ILI9341_320X240
|
#endif //TFT_SPI_ILI9341_320X240
|
||||||
show_screenID(SPLASH_SCREEN);
|
show_screenID(SPLASH_SCREEN);
|
||||||
update_screen();
|
update_screen();
|
||||||
@ -129,48 +375,63 @@ void Display::end()
|
|||||||
if(!_started) {
|
if(!_started) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
_status ="";
|
||||||
_started = false;
|
_started = false;
|
||||||
_screenID = SPLASH_SCREEN;
|
_screenID = SPLASH_SCREEN;
|
||||||
_splash_displayed=false;
|
_splash_displayed=false;
|
||||||
clear_screen();
|
clear_screen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Display::SetStatus(const char * status)
|
||||||
|
{
|
||||||
|
_status= status;
|
||||||
|
}
|
||||||
|
|
||||||
void Display::clear_screen()
|
void Display::clear_screen()
|
||||||
{
|
{
|
||||||
|
log_esp3d("clear screen");
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
esp_display.clear();
|
esp3d_screen.clear();
|
||||||
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
esp_display.fillScreen(TFT_BLACK); // Black screen fill
|
log_esp3d("Fill black");
|
||||||
|
esp3d_screen.fillScreen(SCREEN_BG); // Black screen fill
|
||||||
#endif //TFT_SPI_ILI9341_240X320
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display::update_screen()
|
void Display::update_screen(bool force)
|
||||||
{
|
{
|
||||||
bool need_update = false;
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bool need_update = force;
|
||||||
switch(_screenID) {
|
switch(_screenID) {
|
||||||
case SPLASH_SCREEN:
|
case SPLASH_SCREEN:
|
||||||
|
if (!_splash_displayed) {
|
||||||
need_update = splash();
|
need_update = splash();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MAIN_SCREEN:
|
case MAIN_SCREEN:
|
||||||
log_esp3d("Mainscreen");
|
need_update = main_screen();
|
||||||
clear_screen();
|
|
||||||
need_update = true;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (need_update) {
|
if (need_update) {
|
||||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
esp_display.display();
|
esp3d_screen.display();
|
||||||
|
log_esp3d("Update display");
|
||||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
Hal::wait(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Display::handle()
|
void Display::handle()
|
||||||
{
|
{
|
||||||
static uint32_t last_update = millis();
|
static uint32_t last_update = millis();
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (_started) {
|
if (_started) {
|
||||||
if ((millis()- last_update) > DISPLAY_REFRESH_TIME) {
|
if ((millis()- last_update) > DISPLAY_REFRESH_TIME) {
|
||||||
last_update = millis();
|
last_update = millis();
|
||||||
@ -179,4 +440,144 @@ void Display::handle()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw a line from position 0 to position 1
|
||||||
|
void Display::drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t color)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
esp3d_screen.setColor((color == TFT_BLACK)?BLACK:WHITE);
|
||||||
|
esp3d_screen.drawLine(x0, y0, x1, y1);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.drawLine(x0, y0, x1, y1, color);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw the border of a rectangle at the given location
|
||||||
|
void Display::drawRect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
esp3d_screen.setColor((color == TFT_BLACK)?BLACK:WHITE);
|
||||||
|
esp3d_screen.drawRect(x, y, width, height);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.drawRect(x, y, width, height, color);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fill the rectangle
|
||||||
|
void Display::fillRect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
esp3d_screen.setColor((color == TFT_BLACK)?BLACK:WHITE);
|
||||||
|
esp3d_screen.fillRect(x, y, width, height);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.fillRect(x, y, width, height, color);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
void Display::setTextFont(uint8_t font)
|
||||||
|
{
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
switch(font) {
|
||||||
|
case 3:
|
||||||
|
esp3d_screen.setFont(ArialMT_Plain_16);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
default:
|
||||||
|
esp3d_screen.setFont(ArialMT_Plain_10);
|
||||||
|
}
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.setTextFont(font);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
void Display::drawString(const char *string, int32_t poX, int32_t poY, int16_t color)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
esp3d_screen.setColor((color == TFT_BLACK)?BLACK:WHITE);
|
||||||
|
esp3d_screen.drawString(poX, poY, string);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.setTextColor(color);
|
||||||
|
esp3d_screen.drawString(string, poX, poY);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw a XBM
|
||||||
|
void Display::drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color, const unsigned char *xbm)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
(void)color;
|
||||||
|
esp3d_screen.drawXbm(x, y, width, height, (const char *)xbm);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.drawXBitmap(x, y, xbm, width, height,color);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Display::drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t fgcolor, uint16_t bgcolor, const unsigned char *xbm)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
(void)fgcolor;
|
||||||
|
(void)bgcolor;
|
||||||
|
esp3d_screen.drawXbm(x, y, width, height, (const char *)xbm);
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
esp3d_screen.drawXBitmap(x, y, xbm, width, height, fgcolor, bgcolor);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t Display::getStringWidth(const char* text)
|
||||||
|
{
|
||||||
|
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
return esp3d_screen.getStringWidth(text, strlen(text));
|
||||||
|
#endif //#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||||
|
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||||
|
return esp3d_screen.textWidth(text);
|
||||||
|
#endif //TFT_SPI_ILI9341_240X320
|
||||||
|
}
|
||||||
|
|
||||||
|
void Display::progress(uint8_t v)
|
||||||
|
{
|
||||||
|
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
static uint8_t previous = 0;
|
||||||
|
if (previous > v) {
|
||||||
|
//clear
|
||||||
|
fillRect(10, _screenheight-2, _screenwidth-20, 2, SCREEN_BG);
|
||||||
|
}
|
||||||
|
log_esp3d("%d", v);
|
||||||
|
previous = v;
|
||||||
|
//display bar
|
||||||
|
drawRect(10, _screenheight-2, ((_screenwidth-20) * v)/100, 2, PROGRESS_FG);
|
||||||
|
//update screen
|
||||||
|
update_screen(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_progress(uint8_t v)
|
||||||
|
{
|
||||||
|
esp3d_display.progress(v);
|
||||||
|
}
|
||||||
|
|
||||||
#endif //DISPLAY_DEVICE
|
#endif //DISPLAY_DEVICE
|
||||||
|
@ -34,18 +34,33 @@ public:
|
|||||||
void end();
|
void end();
|
||||||
void handle();
|
void handle();
|
||||||
void show_screenID(uint8_t screenID);
|
void show_screenID(uint8_t screenID);
|
||||||
void update_screen();
|
void update_screen(bool force=false);
|
||||||
void clear_screen();
|
void clear_screen();
|
||||||
|
void progress(uint8_t v);
|
||||||
|
void SetStatus(const char * status);
|
||||||
private:
|
private:
|
||||||
|
bool main_screen();
|
||||||
bool splash();
|
bool splash();
|
||||||
|
void showStatus();
|
||||||
bool _started;
|
bool _started;
|
||||||
uint8_t _screenID;
|
uint8_t _screenID;
|
||||||
bool _splash_displayed;
|
bool _splash_displayed;
|
||||||
uint _screenwidth;
|
uint _screenwidth;
|
||||||
uint _screenheight;
|
uint _screenheight;
|
||||||
|
uint16_t sizetoFitSpace(const char * string, uint16_t maxwidth);
|
||||||
|
void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t color);
|
||||||
|
void drawRect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color);
|
||||||
|
void fillRect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color);
|
||||||
|
void setTextFont(uint8_t font);
|
||||||
|
void drawString(const char *string, int32_t poX, int32_t poY, int16_t color);
|
||||||
|
void drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, int16_t color, const unsigned char *xbm);
|
||||||
|
void drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, uint16_t fgcolor, uint16_t bgcolor, const unsigned char *xbm);
|
||||||
|
uint16_t getStringWidth(const char* text);
|
||||||
|
String _status;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Display esp3d_display;
|
extern Display esp3d_display;
|
||||||
|
extern void display_progress(uint8_t v);
|
||||||
|
|
||||||
#endif //_DISPLAY_H
|
#endif //_DISPLAY_H
|
||||||
|
|
||||||
|
@ -24,319 +24,319 @@
|
|||||||
#define ESP3D_Logo_width 200
|
#define ESP3D_Logo_width 200
|
||||||
#define ESP3D_Logo_height 150
|
#define ESP3D_Logo_height 150
|
||||||
const unsigned char ESP3D_Logo[] PROGMEM = {
|
const unsigned char ESP3D_Logo[] PROGMEM = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xA4, 0x69, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x03, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xC0, 0xFD, 0xFF, 0x7F, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0xF5, 0xFF, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x00,
|
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05,
|
0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x03,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
|
||||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x80, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x59, 0x99, 0x96, 0x99,
|
|
||||||
0x96, 0x66, 0x59, 0x55, 0x66, 0x59, 0x55, 0x66, 0x01, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98,
|
|
||||||
0xA4, 0x4A, 0xAA, 0xA4, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xA4, 0x4A,
|
|
||||||
0x94, 0xAA, 0xAA, 0xAA, 0x59, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x5F, 0xA5, 0x56, 0x6A, 0xAA, 0xFE, 0x7F, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00,
|
|
||||||
0x00, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
|
|
||||||
0x01, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xF0, 0x07, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xC0, 0x07, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x80, 0x1F, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x80, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x80, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x07, 0xC0,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03,
|
|
||||||
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
|
||||||
0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x07, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x1E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x07, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xF8, 0x7F, 0x00, 0x00, 0xF0,
|
|
||||||
0xFF, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x01,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xFE, 0x1F, 0x00, 0x00,
|
|
||||||
0xF0, 0x1F, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xF0, 0xFF, 0x01, 0x00, 0xE0,
|
|
||||||
0xFF, 0x01, 0x00, 0x6E, 0x6B, 0x00, 0x00, 0x00, 0x38, 0xFC, 0x3F, 0x00,
|
|
||||||
0x00, 0xF0, 0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00,
|
|
||||||
0xFC, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFE, 0x1F,
|
|
||||||
0x00, 0x00, 0xF8, 0x07, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0x03,
|
|
||||||
0x00, 0xFF, 0xFF, 0x0F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xF8, 0xFC,
|
|
||||||
0x1F, 0x00, 0x00, 0xF0, 0x03, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x80, 0xFF,
|
|
||||||
0x03, 0x00, 0xFF, 0xFF, 0x0F, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xF0,
|
|
||||||
0xFE, 0x1F, 0x00, 0x10, 0xF8, 0x03, 0xF8, 0x81, 0x7F, 0x00, 0x00, 0x00,
|
|
||||||
0xFF, 0x01, 0x80, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
|
||||||
0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01, 0xFC, 0x8F, 0xFF, 0x80, 0x3F,
|
|
||||||
0x00, 0xFE, 0x01, 0x80, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0x03,
|
|
||||||
0x00, 0xF0, 0xFF, 0x3F, 0xE0, 0xFF, 0xFF, 0x03, 0xFE, 0xFF, 0x7F, 0x80,
|
|
||||||
0xFF, 0x00, 0xFE, 0x01, 0x80, 0x1F, 0xF8, 0x3F, 0x80, 0x7F, 0xE1, 0xFF,
|
|
||||||
0x07, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x80, 0xFF, 0x01, 0xFE, 0x01, 0x80, 0x07, 0xE0, 0x3F, 0x80, 0x7F, 0x00,
|
|
||||||
0xFE, 0x0F, 0x00, 0xE0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01, 0xFE, 0xFF,
|
|
||||||
0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x01, 0x00, 0x01, 0xE0, 0x3F, 0x80, 0x7F,
|
|
||||||
0x00, 0xFC, 0x1F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x80, 0xFF, 0x01, 0xFC, 0x01, 0x00, 0x00, 0xC0, 0x3F, 0x80,
|
|
||||||
0x7F, 0x00, 0xF0, 0x1F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0x01,
|
|
||||||
0xFC, 0xFF, 0xFF, 0x80, 0xFF, 0x03, 0xFE, 0x01, 0x00, 0x00, 0xC0, 0x3F,
|
|
||||||
0x80, 0x7F, 0x00, 0xE0, 0x1F, 0x00, 0xE0, 0xFF, 0x3F, 0xE0, 0xFF, 0xFF,
|
|
||||||
0x01, 0xF8, 0xFF, 0x7F, 0x80, 0xFF, 0x03, 0xFE, 0x01, 0x00, 0x00, 0xE0,
|
|
||||||
0x3F, 0x80, 0x7F, 0x00, 0xE0, 0x3F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF,
|
|
||||||
0xFF, 0x01, 0xF8, 0xFF, 0xFF, 0x80, 0xFF, 0x01, 0xFE, 0x01, 0x00, 0x00,
|
|
||||||
0xE0, 0x3F, 0x80, 0x7F, 0x00, 0xE0, 0x3F, 0x00, 0xF0, 0xFF, 0x3F, 0xE0,
|
|
||||||
0xFF, 0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0x80, 0xFF, 0x01, 0xFE, 0x01, 0x00,
|
|
||||||
0x00, 0xE0, 0x1F, 0x80, 0x7F, 0x00, 0xC0, 0x7F, 0x00, 0xE0, 0xFF, 0x1F,
|
|
||||||
0x40, 0x95, 0xFE, 0x07, 0x00, 0xFF, 0x7F, 0x80, 0xFF, 0x01, 0xFE, 0x01,
|
|
||||||
0x00, 0x00, 0xF0, 0x1F, 0x80, 0x7F, 0x00, 0xC0, 0x3F, 0x00, 0xF0, 0xFF,
|
|
||||||
0x1F, 0x00, 0x00, 0xFE, 0x07, 0x00, 0xFC, 0xFF, 0x80, 0xFF, 0x00, 0xFE,
|
|
||||||
0x01, 0x00, 0x00, 0xF9, 0x0F, 0x80, 0x7F, 0x00, 0x80, 0x7F, 0x00, 0xF0,
|
|
||||||
0xFF, 0x1F, 0x00, 0x00, 0xFC, 0x0F, 0x00, 0xF0, 0xFF, 0x80, 0x7F, 0x00,
|
|
||||||
0xFF, 0x01, 0x00, 0x78, 0xFF, 0x07, 0x80, 0x7F, 0x00, 0x80, 0x3F, 0x00,
|
|
||||||
0xF0, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0x3F, 0x00, 0xE0, 0x7F, 0x00, 0x1B,
|
|
||||||
0x00, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x03, 0x80, 0x3F, 0x00, 0x80, 0x7F,
|
|
||||||
0x00, 0xF0, 0xFF, 0x3F, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0xC0, 0xFF, 0x00,
|
|
||||||
0x00, 0x80, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x00, 0x80, 0x7F, 0x00, 0x80,
|
|
||||||
0x7F, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x80, 0xFF,
|
|
||||||
0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x03, 0x80, 0x7F, 0x00,
|
|
||||||
0x80, 0x7F, 0x00, 0xE0, 0xFF, 0x1F, 0xE0, 0xFB, 0xFF, 0xFF, 0x03, 0x00,
|
|
||||||
0x7F, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x0F, 0x80, 0x7F,
|
|
||||||
0x00, 0x80, 0x7F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF, 0x1F,
|
|
||||||
0x00, 0xFF, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x3F, 0x80,
|
|
||||||
0x7F, 0x00, 0x80, 0x7F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x7F, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0xFA, 0x3F,
|
|
||||||
0x80, 0x7F, 0x00, 0x80, 0x3F, 0x00, 0xF0, 0xFF, 0x3F, 0xE0, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x00, 0xFE, 0x00, 0xE0, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF0,
|
|
||||||
0x7F, 0x80, 0x7F, 0x00, 0xC0, 0x7F, 0x00, 0xE0, 0xFF, 0x1F, 0xE0, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
|
|
||||||
0xC0, 0x7F, 0x80, 0x7F, 0x00, 0xC0, 0x3F, 0x00, 0xF0, 0xFF, 0x1F, 0xE0,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x7E, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
|
||||||
0x00, 0xC0, 0xFF, 0x80, 0x7F, 0x00, 0xC0, 0x3F, 0x00, 0xE0, 0xFF, 0x1F,
|
|
||||||
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0x01,
|
|
||||||
0x00, 0x00, 0x80, 0xFF, 0x80, 0x7F, 0x00, 0xC0, 0x3F, 0x00, 0xF0, 0xFF,
|
|
||||||
0x3F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x7E, 0x80, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x01, 0x00, 0x00, 0x80, 0xFF, 0x80, 0x7F, 0x00, 0xE0, 0x3F, 0x00, 0xF0,
|
|
||||||
0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0x80, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x80, 0x7F, 0x00, 0xF0, 0x1F, 0x00,
|
|
||||||
0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xF9, 0xFF, 0x00, 0x7E, 0x80, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x80, 0xFF, 0x80, 0x7F, 0x00, 0xF0, 0x1F,
|
|
||||||
0x00, 0xF0, 0xFF, 0x1F, 0xE0, 0xFF, 0xFF, 0xE1, 0xFF, 0x00, 0xFF, 0x80,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0x80, 0x7F, 0x00, 0xF8,
|
|
||||||
0x1F, 0x00, 0xE0, 0xFF, 0x3F, 0x00, 0xA8, 0xFA, 0x00, 0x0C, 0x80, 0x7F,
|
|
||||||
0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0x01, 0xE0, 0x7F, 0x80, 0x7F, 0x00,
|
|
||||||
0xFE, 0x0F, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x80,
|
|
||||||
0x7F, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0x07, 0xF0, 0x7F, 0x80, 0x7F,
|
|
||||||
0xD4, 0xFF, 0x07, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0xF0, 0x01, 0x00,
|
|
||||||
0xC0, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF, 0x3F, 0x80,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0xF0, 0x01,
|
|
||||||
0x00, 0xE0, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF, 0x3F,
|
|
||||||
0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xF0, 0xFC, 0x3F, 0x00, 0x00, 0xF0,
|
|
||||||
0x03, 0x00, 0xF0, 0x7F, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0xFF, 0xFF,
|
|
||||||
0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xF0, 0xFE, 0x7F, 0x00, 0x00,
|
|
||||||
0xF8, 0x1F, 0x00, 0xFE, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0xFF,
|
|
||||||
0xFF, 0x07, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0xFC, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
|
||||||
0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xF0, 0xFE, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
||||||
0x00, 0xFC, 0xFF, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x78, 0xFC,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
|
||||||
0x00, 0x00, 0x80, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
|
|
||||||
0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x38, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x1C, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x1C, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0xC0, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00,
|
|
||||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x01,
|
|
||||||
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C,
|
|
||||||
0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x7C, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xC0, 0x0F, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xE8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x40,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x80, 0x52, 0xAA, 0xA4, 0x24, 0xAA, 0x49, 0x49, 0x8A, 0xA2,
|
|
||||||
0x22, 0x8A, 0x28, 0x49, 0x8A, 0xA2, 0x22, 0x8A, 0x0D, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6A,
|
|
||||||
0xAA, 0xA6, 0x6A, 0xAA, 0xA6, 0x6A, 0xAA, 0xA6, 0x6A, 0xAA, 0xA6, 0x6A,
|
|
||||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
|
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
||||||
0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xFE,
|
||||||
|
0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
|
||||||
|
0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x0F, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x3F, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x7F, 0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x7F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0x7F, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFC, 0x3F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF8, 0x1F,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8,
|
||||||
|
0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
||||||
|
0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xE1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x1F, 0xC0, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0xF0,
|
||||||
|
0xFF, 0x07, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0xFE,
|
||||||
|
0xFF, 0x01, 0x00, 0xF0, 0xFF, 0xFF, 0x83, 0x83, 0xFF, 0xFF, 0xFF, 0x00,
|
||||||
|
0xFC, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0xFC, 0x7F, 0x00, 0x00,
|
||||||
|
0xFC, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x87, 0x81, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x00, 0xFE, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0xFC, 0x3F, 0x00,
|
||||||
|
0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x87, 0x81, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x00, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0xFC, 0x1F,
|
||||||
|
0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x81, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0xFC,
|
||||||
|
0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x81,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0xFF, 0x03,
|
||||||
|
0xFE, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F,
|
||||||
|
0x80, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x81, 0x3F, 0x80, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x07, 0xFE, 0x1F, 0xF0, 0x03, 0xC0, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF,
|
||||||
|
0x0F, 0x80, 0xFF, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0x3C, 0x80, 0xFF, 0x80,
|
||||||
|
0xFF, 0x07, 0xFE, 0x1F, 0xFE, 0x07, 0xC0, 0xFF, 0x00, 0xFE, 0x03, 0x80,
|
||||||
|
0xFF, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x30, 0x80, 0xFF,
|
||||||
|
0x00, 0xFE, 0x07, 0xFE, 0x9F, 0xFF, 0x0F, 0xC0, 0xFF, 0x00, 0xFE, 0x0F,
|
||||||
|
0x00, 0xFF, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x80,
|
||||||
|
0xFF, 0x00, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF, 0x00, 0xFE,
|
||||||
|
0x3F, 0x00, 0xFE, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00,
|
||||||
|
0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF, 0x00,
|
||||||
|
0xFE, 0x7F, 0x00, 0xFE, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x3F, 0x00,
|
||||||
|
0x00, 0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F, 0xC0, 0xFF,
|
||||||
|
0x00, 0xFE, 0xFF, 0x00, 0xFC, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0, 0x7F,
|
||||||
|
0x00, 0x00, 0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F, 0xC0,
|
||||||
|
0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFC, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xE0,
|
||||||
|
0x7F, 0x00, 0x00, 0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF, 0xFF, 0x1F,
|
||||||
|
0xC0, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xFC, 0x0F, 0x80, 0xFF, 0x00, 0x00,
|
||||||
|
0xE0, 0xFF, 0x01, 0x00, 0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF, 0xFF,
|
||||||
|
0x0F, 0xE0, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xFC, 0x0F, 0x80, 0xFF, 0x00,
|
||||||
|
0x00, 0xC0, 0xFF, 0x03, 0x00, 0x80, 0xFF, 0x00, 0xF8, 0x0F, 0xFE, 0xFF,
|
||||||
|
0xFF, 0x0F, 0xE0, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xF8, 0x0F, 0x80, 0xFF,
|
||||||
|
0xFF, 0x3F, 0xC0, 0xFF, 0x1F, 0x00, 0x80, 0xFF, 0x00, 0xFC, 0x0F, 0xFE,
|
||||||
|
0xFF, 0xFF, 0x07, 0xF0, 0xFF, 0x00, 0xFE, 0xFF, 0x03, 0xF8, 0x0F, 0x80,
|
||||||
|
0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xFC, 0x07,
|
||||||
|
0xFE, 0xFF, 0xFF, 0x01, 0xF8, 0xFF, 0x00, 0xFE, 0xFF, 0x03, 0xF8, 0x0F,
|
||||||
|
0x80, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0x01, 0x80, 0xFF, 0x00, 0xFE,
|
||||||
|
0x07, 0xFE, 0xFF, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFE, 0xFF, 0x03, 0xF8,
|
||||||
|
0x0F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0x80,
|
||||||
|
0xFF, 0x07, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x03,
|
||||||
|
0xF8, 0x0F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0xFE, 0xFF, 0x0F, 0x80, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x03, 0xFE, 0xFF, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0xFE, 0xFF,
|
||||||
|
0x03, 0xF8, 0x0F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0xF8, 0xFF, 0x1F, 0x80,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0xFE,
|
||||||
|
0xFF, 0x03, 0xF8, 0x0F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0xF0, 0xFF, 0x3F,
|
||||||
|
0x80, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xF0, 0xFF, 0x00,
|
||||||
|
0xFE, 0xFF, 0x03, 0xF8, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xC0, 0xFF,
|
||||||
|
0x3F, 0x80, 0xFF, 0xFF, 0x7F, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0xE0, 0xFF,
|
||||||
|
0x00, 0xFE, 0xFF, 0x03, 0xF8, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xFE, 0x7F, 0x80, 0xFF, 0xFF, 0x3F, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0xC0,
|
||||||
|
0xFF, 0x00, 0xFE, 0xFF, 0x03, 0xF8, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xF8, 0x7F, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0xFE, 0xFF, 0xFF, 0x0F,
|
||||||
|
0x80, 0xFF, 0x00, 0xFE, 0xFF, 0x03, 0xF8, 0x0F, 0x80, 0xFF, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xF0, 0xFF, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFF,
|
||||||
|
0x1F, 0x80, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xFC, 0x0F, 0x80, 0xFF, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xC0, 0xFF, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||||
|
0xFF, 0x1F, 0x00, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xFC, 0x0F, 0x80, 0xFF,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE,
|
||||||
|
0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0xFC, 0x0F, 0x80,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x80, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFC, 0x0F,
|
||||||
|
0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x80, 0xFF, 0x00, 0x00,
|
||||||
|
0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFE,
|
||||||
|
0x0F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x80, 0xFF, 0x00,
|
||||||
|
0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0xFE, 0x7F, 0x00,
|
||||||
|
0xFE, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x80, 0xFF,
|
||||||
|
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0xFE, 0x3F,
|
||||||
|
0x00, 0xFE, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x70, 0x00, 0xC0, 0x7F, 0x80,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0xFE, 0xCF, 0xFF, 0x1F, 0x00, 0xFF, 0x00, 0xFE,
|
||||||
|
0x0F, 0x00, 0xFF, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0xF0, 0x01, 0xE0, 0x7F,
|
||||||
|
0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xFF, 0x0F, 0x80, 0xFF, 0x00,
|
||||||
|
0xFE, 0x03, 0x80, 0xFF, 0x0F, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xF8,
|
||||||
|
0x7F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xF8, 0x03, 0x80, 0xFF,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF,
|
||||||
|
0xFF, 0x3F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00, 0xC0,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x81, 0xFF, 0xFF, 0xFF, 0xF0,
|
||||||
|
0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0x0F, 0x00, 0x00,
|
||||||
|
0xC0, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x81, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xF0, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x0F, 0x00,
|
||||||
|
0x00, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0F, 0x81, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xF0, 0xFF, 0xFF, 0x07, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x1F,
|
||||||
|
0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x0F, 0x81, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0x00, 0x00, 0x00, 0xFF,
|
||||||
|
0x3F, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x07, 0x01,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x80,
|
||||||
|
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xF8, 0xFF, 0xFF, 0x87,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0xFF, 0xFF, 0x07, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xC3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xC3, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xC1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF0, 0x3F, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0xFF, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF8, 0x3F, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFC, 0x7F, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFE, 0xFF,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFE,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
|
||||||
|
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x81, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x80, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x3F, 0xE0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xBF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x3F, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
|
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_esp3d_logo_h
|
#endif //_esp3d_logo_h
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../include/esp3d_config.h"
|
#include "../../include/esp3d_config.h"
|
||||||
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
|
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
#define WIFI_EVENT_STAMODE_CONNECTED SYSTEM_EVENT_STA_CONNECTED
|
#define WIFI_EVENT_STAMODE_CONNECTED SYSTEM_EVENT_STA_CONNECTED
|
||||||
#define WIFI_EVENT_STAMODE_DISCONNECTED SYSTEM_EVENT_STA_DISCONNECTED
|
#define WIFI_EVENT_STAMODE_DISCONNECTED SYSTEM_EVENT_STA_DISCONNECTED
|
||||||
@ -46,7 +46,7 @@ String NetConfig::_hostname = "";
|
|||||||
bool NetConfig::_needReconnect2AP = false;
|
bool NetConfig::_needReconnect2AP = false;
|
||||||
bool NetConfig::_events_registered = false;
|
bool NetConfig::_events_registered = false;
|
||||||
bool NetConfig::_started = false;
|
bool NetConfig::_started = false;
|
||||||
|
uint8_t NetConfig::_mode = ESP_RADIO_OFF;
|
||||||
NetConfig::NetConfig()
|
NetConfig::NetConfig()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -127,40 +127,42 @@ bool NetConfig::isValidIP(const char * string)
|
|||||||
//wifi event
|
//wifi event
|
||||||
void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
||||||
{
|
{
|
||||||
ESP3DOutput output(ESP_PRINTER_LCD_CLIENT);
|
ESP3DOutput output(ESP_ALL_CLIENTS);
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case WIFI_EVENT_STAMODE_CONNECTED:
|
case WIFI_EVENT_STAMODE_CONNECTED:
|
||||||
_needReconnect2AP = false;
|
_needReconnect2AP = false;
|
||||||
#ifdef ESP_OLED_FEATURE
|
|
||||||
OLED_DISPLAY::display_signal(wifi_config.getSignal (WiFi.RSSI ()));
|
|
||||||
OLED_DISPLAY::setCursor(0, 0);
|
|
||||||
ESPCOM::print("", OLED_PIPE);
|
|
||||||
#endif //ESP_OLED_FEATURE
|
|
||||||
break;
|
break;
|
||||||
case WIFI_EVENT_STAMODE_DISCONNECTED:
|
case WIFI_EVENT_STAMODE_DISCONNECTED:
|
||||||
#ifdef ESP_OLED_FEATURE
|
{
|
||||||
OLED_DISPLAY::display_signal(-1);
|
|
||||||
OLED_DISPLAY::setCursor(0, 16);
|
|
||||||
ESPCOM::print("", OLED_PIPE);
|
|
||||||
OLED_DISPLAY::setCursor(0, 48);
|
|
||||||
#endif //ESP_OLED_FEATURE
|
|
||||||
if(_started) {
|
if(_started) {
|
||||||
output.printMSG ("Disconnected");
|
output.printMSG ("Disconnected");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
_needReconnect2AP = true;
|
_needReconnect2AP = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case WIFI_EVENT_STAMODE_GOT_IP:
|
case WIFI_EVENT_STAMODE_GOT_IP:
|
||||||
|
{
|
||||||
output.printMSG ("Connected");
|
output.printMSG ("Connected");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
{
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG("Connected");
|
||||||
|
}
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
output.printMSG (WiFi.localIP().toString().c_str());
|
output.printMSG (WiFi.localIP().toString().c_str());
|
||||||
#ifdef ESP_OLED_FEATURE
|
}
|
||||||
OLED_DISPLAY::setCursor(0, 16);
|
|
||||||
ESPCOM::print(WiFi.localIP().toString().c_str(), OLED_PIPE);
|
|
||||||
OLED_DISPLAY::setCursor(0, 48);
|
|
||||||
ESPCOM::print("", OLED_PIPE);
|
|
||||||
#endif //ESP_OLED_FEATURE
|
|
||||||
break;
|
break;
|
||||||
case WIFI_EVENT_SOFTAPMODE_STACONNECTED:
|
case WIFI_EVENT_SOFTAPMODE_STACONNECTED:
|
||||||
|
{
|
||||||
output.printMSG ("New client");
|
output.printMSG ("New client");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG("New client");
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
case SYSTEM_EVENT_STA_LOST_IP:
|
case SYSTEM_EVENT_STA_LOST_IP:
|
||||||
@ -170,10 +172,22 @@ void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
|||||||
break;
|
break;
|
||||||
#ifdef ETH_FEATURE
|
#ifdef ETH_FEATURE
|
||||||
case SYSTEM_EVENT_ETH_CONNECTED:
|
case SYSTEM_EVENT_ETH_CONNECTED:
|
||||||
|
{
|
||||||
output.printMSG ("Cable connected");
|
output.printMSG ("Cable connected");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG("Cable connected");
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
||||||
|
{
|
||||||
output.printMSG ("Cable disconnected");
|
output.printMSG ("Cable disconnected");
|
||||||
|
#if defined (DISPLAY_DEVICE)
|
||||||
|
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||||
|
outputscr.printMSG("Cable disconnected");
|
||||||
|
#endif //DISPLAY_DEVICE
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SYSTEM_EVENT_ETH_GOT_IP:
|
case SYSTEM_EVENT_ETH_GOT_IP:
|
||||||
output.printMSG (ETH.localIP().toString().c_str());
|
output.printMSG (ETH.localIP().toString().c_str());
|
||||||
@ -183,7 +197,11 @@ void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t NetConfig::getMode()
|
||||||
|
{
|
||||||
|
return _mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -211,6 +229,7 @@ bool NetConfig::begin()
|
|||||||
//Get hostname
|
//Get hostname
|
||||||
_hostname = Settings_ESP3D::read_string(ESP_HOSTNAME);
|
_hostname = Settings_ESP3D::read_string(ESP_HOSTNAME);
|
||||||
int8_t espMode =Settings_ESP3D::read_byte(ESP_RADIO_MODE);
|
int8_t espMode =Settings_ESP3D::read_byte(ESP_RADIO_MODE);
|
||||||
|
_mode = espMode;
|
||||||
if (espMode == NO_NETWORK) {
|
if (espMode == NO_NETWORK) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -270,7 +289,7 @@ bool NetConfig::begin()
|
|||||||
void NetConfig::end()
|
void NetConfig::end()
|
||||||
{
|
{
|
||||||
NetServices::end();
|
NetServices::end();
|
||||||
|
_mode = ESP_RADIO_OFF;
|
||||||
#if defined (WIFI_FEATURE)
|
#if defined (WIFI_FEATURE)
|
||||||
WiFiConfig::end();
|
WiFiConfig::end();
|
||||||
_needReconnect2AP=false;
|
_needReconnect2AP=false;
|
||||||
|
@ -66,6 +66,7 @@ public:
|
|||||||
static bool begin();
|
static bool begin();
|
||||||
static void end();
|
static void end();
|
||||||
static void handle();
|
static void handle();
|
||||||
|
static uint8_t getMode();
|
||||||
static bool started()
|
static bool started()
|
||||||
{
|
{
|
||||||
return _started;
|
return _started;
|
||||||
@ -76,6 +77,7 @@ private :
|
|||||||
static bool _needReconnect2AP;
|
static bool _needReconnect2AP;
|
||||||
static bool _events_registered;
|
static bool _events_registered;
|
||||||
static bool _started;
|
static bool _started;
|
||||||
|
static uint8_t _mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_NET_CONFIG_H
|
#endif //_NET_CONFIG_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user