mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-08-12 22:48:59 +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_SSDSH1106 2
|
||||
//TFT_SPI_ILI9341_320X240 3
|
||||
//#define DISPLAY_DEVICE TFT_SPI_ILI9341_320X240
|
||||
#define DISPLAY_DEVICE OLED_I2C_SSD1306
|
||||
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
//for ILI9143 edit User_Setup.h of TFT_eSPI library
|
||||
#define DISPLAY_I2C_PIN_SDA 4
|
||||
#define DISPLAY_I2C_PIN_SCL 15
|
||||
#define DISPLAY_I2C_PIN_RST 16 //comment if not applicable
|
||||
#define DISPLAY_I2C_PIN_SCL 5
|
||||
//#define DISPLAY_I2C_PIN_RST 16 //comment if not applicable
|
||||
#define DISPLAY_I2C_ADDR 0x3c
|
||||
//#define DISPLAY_FLIP_VERTICALY 1 //comment to disable
|
||||
#define DISPLAY_FLIP_VERTICALY 1 //comment to disable
|
||||
#endif //DISPLAY_DEVICE
|
||||
//DHT_DEVICE: send update of temperature / humidity based on DHT 11/22
|
||||
//#define DHT_DEVICE
|
||||
@ -68,9 +69,9 @@
|
||||
#endif //DHT_DEVICE
|
||||
|
||||
//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)
|
||||
#define ESP3D_RESET_PIN 4
|
||||
#define ESP3D_RESET_PIN 2
|
||||
#endif //PIN_RESET_FEATURE
|
||||
//SDCARD_FEATURE: to access SD Card files directly instead of access by serial using printer Board FW
|
||||
//#define SDCARD_FEATURE
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include "esp3doutput.h"
|
||||
#include "../modules/boot_delay/boot_delay.h"
|
||||
|
||||
|
||||
bool Esp3D::restart = false;
|
||||
|
||||
//Contructor
|
||||
@ -64,6 +65,8 @@ bool Esp3D::begin()
|
||||
BootDelay bd;
|
||||
Hal::begin();
|
||||
DEBUG_ESP3D_INIT
|
||||
//init output
|
||||
ESP3DOutput::isOutput(ESP_ALL_CLIENTS, true);
|
||||
bool res = true;
|
||||
#if defined(CONNECTED_DEVICES_FEATURE)
|
||||
if (!DevicesServices::begin()) {
|
||||
@ -72,7 +75,11 @@ bool Esp3D::begin()
|
||||
}
|
||||
#endif //CONNECTED_DEVICES_FEATURE
|
||||
//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());
|
||||
|
||||
if (!Settings_ESP3D::begin()) {
|
||||
@ -81,8 +88,6 @@ bool Esp3D::begin()
|
||||
//Restart ESP3D
|
||||
restart_esp();
|
||||
}
|
||||
//init output
|
||||
ESP3DOutput::isOutput(ESP_ALL_CLIENTS, true);
|
||||
//BT do not start automaticaly so should be OK
|
||||
//Serial service
|
||||
if (!serial_service.begin()) {
|
||||
|
@ -40,8 +40,9 @@ uint8_t ESP3DOutput::_outputflags = ESP_ALL_CLIENTS;
|
||||
#include <ESP8266WebServer.h>
|
||||
#endif //ARDUINO_ARCH_ESP8266
|
||||
#endif //HTTP_FEATURE
|
||||
|
||||
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
#include "../modules/display/display.h"
|
||||
#endif //DISPLAY_DEVICE
|
||||
|
||||
//constructor
|
||||
ESP3DOutput::ESP3DOutput(uint8_t client)
|
||||
@ -204,6 +205,9 @@ size_t ESP3DOutput::printMSG(const char * s)
|
||||
display+= s;
|
||||
return printLN(display.c_str());
|
||||
}
|
||||
if (_client == ESP_SCREEN_CLIENT){
|
||||
return print(s);
|
||||
}
|
||||
switch(Settings_ESP3D::GetFirmwareTarget()) {
|
||||
case GRBL:
|
||||
display = "[MSG:";
|
||||
@ -230,6 +234,9 @@ size_t ESP3DOutput::printERROR(const char * s, int code_error)
|
||||
if (!isOutput(_client)) {
|
||||
return 0;
|
||||
}
|
||||
if (_client == ESP_SCREEN_CLIENT){
|
||||
return print(s);
|
||||
}
|
||||
#ifdef HTTP_FEATURE
|
||||
_code = code_error;
|
||||
if (_client == ESP_HTTP_CLIENT) {
|
||||
@ -350,6 +357,11 @@ size_t ESP3DOutput::write(const uint8_t *buffer, size_t size)
|
||||
}
|
||||
break;
|
||||
#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)
|
||||
case ESP_BT_CLIENT:
|
||||
if(bt_service.started()) {
|
||||
|
@ -25,7 +25,7 @@
|
||||
#define ESP_WEBSOCKET_TERMINAL_CLIENT 8
|
||||
#define ESP_PRINTER_LCD_CLIENT 16
|
||||
#define ESP_BT_CLIENT 32
|
||||
#define ESP_OLED_CLIENT 64
|
||||
#define ESP_SCREEN_CLIENT 64
|
||||
#define ESP_WEBSOCKET_CLIENT 128
|
||||
#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 (Settings_ESP3D::read_byte(ESP_TARGET_FW));
|
||||
output->printf ("\",\"H\":\"Output msg\",\"O\":[{\"M117\":\"%d\"}", ESP_PRINTER_LCD_CLIENT);
|
||||
#ifdef ESP_OLED_FEATURE
|
||||
output->printf (",{\"Oled\":\"%d\"}", ESP_OLED_CLIENT);
|
||||
#endif //ESP_OLED_FEATURE
|
||||
#ifdef DISPLAY_DEVICE
|
||||
output->printf (",{\"Screen\":\"%d\"}", ESP_SCREEN_CLIENT);
|
||||
#endif //DISPLAY_DEVICE
|
||||
output->printf (",{\"Serial\":\"%d\"}", ESP_SERIAL_CLIENT);
|
||||
#ifdef WS_DATA_FEATURE
|
||||
output->printf (",{\"Web Socket\":\"%d\"}", ESP_WEBSOCKET_CLIENT);
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define _VERSION_ESP3D_H
|
||||
|
||||
//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"
|
||||
|
||||
#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);
|
||||
switch (event) {
|
||||
case ESP_SPP_SRV_OPEN_EVT: { //Server connection open
|
||||
case ESP_SPP_SRV_OPEN_EVT:
|
||||
{ //Server connection open
|
||||
char str[18];
|
||||
str[17]='\0';
|
||||
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 ";
|
||||
stmp += str;
|
||||
output.printMSG(stmp.c_str());
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
outputscr.printMSG(stmp.c_str());
|
||||
#endif //DISPLAY_DEVICE
|
||||
}
|
||||
break;
|
||||
|
||||
case ESP_SPP_CLOSE_EVT://Client connection closed
|
||||
case ESP_SPP_CLOSE_EVT:
|
||||
{//Client connection closed
|
||||
output.printMSG("BT Disconnected");
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
outputscr.printMSG("BT Disconnected");
|
||||
#endif //DISPLAY_DEVICE
|
||||
BTService::setClientAddress("");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -77,6 +77,6 @@ private :
|
||||
void flushbuffer();
|
||||
};
|
||||
|
||||
extern BTService bt_service;
|
||||
extern BTService bt_service;
|
||||
|
||||
#endif //_BT_SERVICE_H
|
||||
|
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"
|
||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306
|
||||
#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
|
||||
#if DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||
#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_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||
#include <TFT_eSPI.h>
|
||||
TFT_eSPI esp_display = TFT_eSPI();
|
||||
TFT_eSPI esp3d_screen = TFT_eSPI();
|
||||
#include "esp3d_logob.h"
|
||||
#include "TFT_ILI9341_240X320.h"
|
||||
#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
|
||||
|
||||
Display esp3d_display;
|
||||
|
||||
bool Display::splash()
|
||||
{
|
||||
log_esp3d("Splash");
|
||||
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||
return false;
|
||||
}
|
||||
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");
|
||||
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;
|
||||
return true;
|
||||
}
|
||||
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)
|
||||
{
|
||||
clear_screen();
|
||||
_screenID = screenID;
|
||||
}
|
||||
|
||||
@ -74,18 +326,8 @@ Display::Display()
|
||||
_started = false;
|
||||
_screenID = SPLASH_SCREEN;
|
||||
_splash_displayed=false;
|
||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306
|
||||
_screenwidth = 128;
|
||||
_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
|
||||
_screenwidth = SCREEN_WIDTH;
|
||||
_screenheight = SCREEN_HEIGHT;
|
||||
}
|
||||
Display::~Display()
|
||||
{
|
||||
@ -96,6 +338,7 @@ bool Display::begin()
|
||||
{
|
||||
bool res = true;
|
||||
_started = false;
|
||||
log_esp3d("Init Display");
|
||||
#if DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||
#if defined(DISPLAY_I2C_PIN_RST)
|
||||
pinMode(DISPLAY_I2C_PIN_RST,OUTPUT);
|
||||
@ -103,17 +346,20 @@ bool Display::begin()
|
||||
delay(10); // wait for a second
|
||||
digitalWrite(DISPLAY_I2C_PIN_RST, HIGH); // turn the LED off by making the voltage LOW
|
||||
#endif //DISPLAY_I2C_PIN_RST
|
||||
log_esp3d("Init Display");
|
||||
esp_display.init();
|
||||
esp_display.clear();
|
||||
esp3d_screen.init();
|
||||
esp3d_screen.clear();
|
||||
#if defined(DISPLAY_FLIP_VERTICALY)
|
||||
esp_display.flipScreenVertically();
|
||||
esp3d_screen.flipScreenVertically();
|
||||
#endif
|
||||
#endif //DISPLAY_DEVICE == OLED_I2C_SSD1306 || DISPLAY_DEVICE == OLED_I2C_SSDSH1106
|
||||
#if DISPLAY_DEVICE == TFT_SPI_ILI9341_320X240
|
||||
esp_display.begin(); // Initialise the display
|
||||
esp_display.setRotation(3);
|
||||
esp_display.fillScreen(TFT_BLACK); // Black screen fill
|
||||
esp3d_screen.begin(); // Initialise the display
|
||||
#if defined(DISPLAY_FLIP_VERTICALY)
|
||||
esp3d_screen.setRotation(3);
|
||||
#else
|
||||
esp3d_screen.setRotation(1);
|
||||
#endif
|
||||
esp3d_screen.fillScreen(SCREEN_BG); // Black screen fill
|
||||
#endif //TFT_SPI_ILI9341_320X240
|
||||
show_screenID(SPLASH_SCREEN);
|
||||
update_screen();
|
||||
@ -129,48 +375,63 @@ void Display::end()
|
||||
if(!_started) {
|
||||
return;
|
||||
}
|
||||
_status ="";
|
||||
_started = false;
|
||||
_screenID = SPLASH_SCREEN;
|
||||
_splash_displayed=false;
|
||||
clear_screen();
|
||||
}
|
||||
|
||||
void Display::SetStatus(const char * status)
|
||||
{
|
||||
_status= status;
|
||||
}
|
||||
|
||||
void Display::clear_screen()
|
||||
{
|
||||
log_esp3d("clear screen");
|
||||
#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
|
||||
#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
|
||||
}
|
||||
|
||||
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) {
|
||||
case SPLASH_SCREEN:
|
||||
need_update = splash();
|
||||
if (!_splash_displayed) {
|
||||
need_update = splash();
|
||||
}
|
||||
break;
|
||||
case MAIN_SCREEN:
|
||||
log_esp3d("Mainscreen");
|
||||
clear_screen();
|
||||
need_update = true;
|
||||
need_update = main_screen();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (need_update) {
|
||||
#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
|
||||
Hal::wait(0);
|
||||
}
|
||||
}
|
||||
|
||||
void Display::handle()
|
||||
{
|
||||
static uint32_t last_update = millis();
|
||||
|
||||
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||
return;
|
||||
}
|
||||
if (_started) {
|
||||
if ((millis()- last_update) > DISPLAY_REFRESH_TIME) {
|
||||
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
|
||||
|
@ -34,18 +34,33 @@ public:
|
||||
void end();
|
||||
void handle();
|
||||
void show_screenID(uint8_t screenID);
|
||||
void update_screen();
|
||||
void update_screen(bool force=false);
|
||||
void clear_screen();
|
||||
void progress(uint8_t v);
|
||||
void SetStatus(const char * status);
|
||||
private:
|
||||
bool main_screen();
|
||||
bool splash();
|
||||
void showStatus();
|
||||
bool _started;
|
||||
uint8_t _screenID;
|
||||
bool _splash_displayed;
|
||||
uint _screenwidth;
|
||||
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 void display_progress(uint8_t v);
|
||||
|
||||
#endif //_DISPLAY_H
|
||||
|
||||
|
@ -24,319 +24,319 @@
|
||||
#define ESP3D_Logo_width 200
|
||||
#define ESP3D_Logo_height 150
|
||||
const unsigned char ESP3D_Logo[] PROGMEM = {
|
||||
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,
|
||||
0xA4, 0x69, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xC0, 0xFD, 0xFF, 0x7F, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xF5, 0xFF, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
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, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x0F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
|
||||
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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 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, 0xC0,
|
||||
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 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, 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, 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,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
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, 0x80, 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, 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, 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,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF,
|
||||
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,
|
||||
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,
|
||||
0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 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, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF0, 0x3F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF8, 0x3F, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFC, 0x7F, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
|
||||
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, 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, 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, 0x80, 0xFF, 0xFF, 0xFF, 0x01, 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, 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
|
||||
|
@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
#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
|
||||
#define WIFI_EVENT_STAMODE_CONNECTED SYSTEM_EVENT_STA_CONNECTED
|
||||
#define WIFI_EVENT_STAMODE_DISCONNECTED SYSTEM_EVENT_STA_DISCONNECTED
|
||||
@ -46,7 +46,7 @@ String NetConfig::_hostname = "";
|
||||
bool NetConfig::_needReconnect2AP = false;
|
||||
bool NetConfig::_events_registered = false;
|
||||
bool NetConfig::_started = false;
|
||||
|
||||
uint8_t NetConfig::_mode = ESP_RADIO_OFF;
|
||||
NetConfig::NetConfig()
|
||||
{
|
||||
}
|
||||
@ -127,40 +127,42 @@ bool NetConfig::isValidIP(const char * string)
|
||||
//wifi event
|
||||
void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
||||
{
|
||||
ESP3DOutput output(ESP_PRINTER_LCD_CLIENT);
|
||||
ESP3DOutput output(ESP_ALL_CLIENTS);
|
||||
switch (event) {
|
||||
case WIFI_EVENT_STAMODE_CONNECTED:
|
||||
_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;
|
||||
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) {
|
||||
output.printMSG ("Disconnected");
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
#endif //DISPLAY_DEVICE
|
||||
_needReconnect2AP = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WIFI_EVENT_STAMODE_GOT_IP:
|
||||
{
|
||||
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());
|
||||
#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;
|
||||
case WIFI_EVENT_SOFTAPMODE_STACONNECTED:
|
||||
{
|
||||
output.printMSG ("New client");
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
outputscr.printMSG("New client");
|
||||
#endif //DISPLAY_DEVICE
|
||||
}
|
||||
break;
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
case SYSTEM_EVENT_STA_LOST_IP:
|
||||
@ -170,10 +172,22 @@ void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
||||
break;
|
||||
#ifdef ETH_FEATURE
|
||||
case SYSTEM_EVENT_ETH_CONNECTED:
|
||||
{
|
||||
output.printMSG ("Cable connected");
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
outputscr.printMSG("Cable connected");
|
||||
#endif //DISPLAY_DEVICE
|
||||
}
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
||||
{
|
||||
output.printMSG ("Cable disconnected");
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
ESP3DOutput outputscr(ESP_SCREEN_CLIENT);
|
||||
outputscr.printMSG("Cable disconnected");
|
||||
#endif //DISPLAY_DEVICE
|
||||
}
|
||||
break;
|
||||
case SYSTEM_EVENT_ETH_GOT_IP:
|
||||
output.printMSG (ETH.localIP().toString().c_str());
|
||||
@ -183,7 +197,11 @@ void NetConfig::onWiFiEvent(WiFiEvent_t event)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t NetConfig::getMode()
|
||||
{
|
||||
return _mode;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -211,6 +229,7 @@ bool NetConfig::begin()
|
||||
//Get hostname
|
||||
_hostname = Settings_ESP3D::read_string(ESP_HOSTNAME);
|
||||
int8_t espMode =Settings_ESP3D::read_byte(ESP_RADIO_MODE);
|
||||
_mode = espMode;
|
||||
if (espMode == NO_NETWORK) {
|
||||
return true;
|
||||
}
|
||||
@ -270,7 +289,7 @@ bool NetConfig::begin()
|
||||
void NetConfig::end()
|
||||
{
|
||||
NetServices::end();
|
||||
|
||||
_mode = ESP_RADIO_OFF;
|
||||
#if defined (WIFI_FEATURE)
|
||||
WiFiConfig::end();
|
||||
_needReconnect2AP=false;
|
||||
|
@ -66,6 +66,7 @@ public:
|
||||
static bool begin();
|
||||
static void end();
|
||||
static void handle();
|
||||
static uint8_t getMode();
|
||||
static bool started()
|
||||
{
|
||||
return _started;
|
||||
@ -76,6 +77,7 @@ private :
|
||||
static bool _needReconnect2AP;
|
||||
static bool _events_registered;
|
||||
static bool _started;
|
||||
static uint8_t _mode;
|
||||
};
|
||||
|
||||
#endif //_NET_CONFIG_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user