mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-08-11 20:49:01 +08:00
Add Touch base code for calibration
Add [ESP214] and [ESP215] Fix Telnet not getting commands Fix HTTP and Telnet not taking start condition Add code base for input Increase EEPROM size from 1024 to 2048 as now we are at 1003 for future next setting Fix display for ILI9341 for main page Change version for tracking
This commit is contained in:
parent
6f5d87a927
commit
688b8a079a
@ -70,6 +70,12 @@ if PULLUP=YES set input pull up (for GPIO16(ESP8266) INPUT_PULLDOWN_16), if not
|
||||
if RAW=YES do not set pinmode just read value
|
||||
Flash pins (6~11) cannot be used
|
||||
|
||||
* Output to esp screen status
|
||||
[ESP214]<Text>pwd=<user password>
|
||||
|
||||
* Touch Calibration
|
||||
[ESP215]<CALIBRATE>[pwd=<user password>]
|
||||
|
||||
* Get full EEPROM settings content
|
||||
but do not give any passwords
|
||||
[ESP400] pwd=<admin password>
|
||||
@ -86,11 +92,11 @@ ESP_STA_IP_VALUE 100 //4 bytes xxx.xxx.xxx.xxx
|
||||
ESP_STA_MASK_VALUE 104 //4 bytes xxx.xxx.xxx.xxx
|
||||
ESP_STA_GATEWAY_VALUE 108 //4 bytes xxx.xxx.xxx.xxx
|
||||
ESP_BAUD_RATE 112 //4 bytes = int
|
||||
ESP_STA_PHY_MODE 116 //1 byte = flag
|
||||
ESP_SLEEP_MODE 117 //1 byte = flag
|
||||
ESP_NOTIFICATION_TYPE 116 //1 byte = flag
|
||||
ESP_CALIBRATION 117 //1 byte = flag
|
||||
ESP_AP_CHANNEL 118 //1 byte = flag
|
||||
ESP_AP_AUTH_TYPE 119 //1 byte = flag
|
||||
ESP_SSID_VISIBLE 120 //1 byte = flag
|
||||
FREE 119 //1 byte = flag
|
||||
FREE 120 //1 byte = flag
|
||||
ESP_HTTP_PORT 121 //4 bytes = int
|
||||
ESP_TELNET_PORT 125 //4 bytes = int
|
||||
ESP_OUTPUT_FLAG 129 //1 bytes = flag
|
||||
@ -102,12 +108,14 @@ ESP_USER_PWD 197 //21 bytes 20+1 = string ; warning does not su
|
||||
ESP_AP_SSID 218 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese
|
||||
ESP_AP_PASSWORD 251 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese
|
||||
ESP_AP_IP_VALUE 316 //4 bytes xxx.xxx.xxx.xxx
|
||||
|
||||
ESP_BOOT_DELAY 320 //4 bytes xxx.xxx.xxx.xxx
|
||||
ESP_WEBSOCKET_PORT 324 //4 bytes xxx.xxx.xxx.xxx
|
||||
ESP_HTTP_ON 328 //1 byte = flag
|
||||
ESP_TELNET_ON 329 //1 byte = flag
|
||||
ESP_AP_PHY_MODE 330 //1 byte = flag
|
||||
ESP_WEBSOCKET_ON 330 //1 byte = flag
|
||||
ESP_SD_SPEED_DIV 331 //1 byte = flag
|
||||
|
||||
ESP_NOTIFICATION_TOKEN1 332 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese
|
||||
ESP_NOTIFICATION_TOKEN2 396 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese
|
||||
ESP_DHT_TYPE 460//1 bytes = flag
|
||||
ESP_TARGET_FW 461 //1 bytes = flag
|
||||
ESP_TIMEZONE 462//1 bytes = flag
|
||||
@ -120,6 +128,12 @@ ESP_PRIMARY_SD 851//1 bytes = flag
|
||||
ESP_SECONDARY_SD 852//1 bytes = flag
|
||||
ESP_DIRECT_SD_CHECK 853//1 bytes = flag
|
||||
ESP_SD_CHECK_UPDATE_AT_BOOT 854//1 bytes = flag
|
||||
ESP_NOTIFICATION_SETTINGS 855//128 bytes 127+1 = string ; warning does not support multibyte char like chinese
|
||||
ESP_CALIBRATION_1 983
|
||||
ESP_CALIBRATION_2 987
|
||||
ESP_CALIBRATION_3 991
|
||||
ESP_CALIBRATION_4 995
|
||||
ESP_CALIBRATION_5 999
|
||||
|
||||
*Get available AP list (limited to 30)
|
||||
output is JSON or plain text according parameter
|
||||
|
@ -43,13 +43,13 @@
|
||||
#define TELNET_FEATURE
|
||||
|
||||
//WS_DATA_FEATURE: allow to connect serial from Websocket
|
||||
#define WS_DATA_FEATURE
|
||||
//#define WS_DATA_FEATURE
|
||||
|
||||
//DISPLAY_DEVICE: allow screen output
|
||||
//OLED_I2C_SSD1306 1
|
||||
//OLED_I2C_SSDSH1106 2
|
||||
//TFT_SPI_ILI9341_320X240 3
|
||||
//#define DISPLAY_DEVICE OLED_I2C_SSD1306
|
||||
//#define DISPLAY_DEVICE TFT_SPI_ILI9341_320X240
|
||||
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
//for ILI9143 edit User_Setup.h of TFT_eSPI library
|
||||
@ -58,9 +58,16 @@
|
||||
#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_TOUCH_DRIVER XPT2046_SPI
|
||||
#endif //DISPLAY_DEVICE
|
||||
|
||||
//INPUT_DEVICE: allow input
|
||||
//ROTARY_ENCODER 1
|
||||
//#define INPUT_DEVICE ROTARY_ENCODER
|
||||
|
||||
//DHT_DEVICE: send update of temperature / humidity based on DHT 11/22
|
||||
//#define DHT_DEVICE
|
||||
|
||||
#ifdef DHT_DEVICE
|
||||
#define ESP3D_DHT_PIN 22
|
||||
//USE_CELSIUS
|
||||
|
@ -65,6 +65,8 @@ void Commands::process(uint8_t * sbuf, size_t len, ESP3DOutput * output, level_a
|
||||
//check if current line is an [ESPXXX] command
|
||||
bool Commands::is_esp_command(uint8_t * sbuf, size_t len)
|
||||
{
|
||||
//TODO
|
||||
//M117 should be handled here and transfered to [ESP214] if it is an host
|
||||
if (len < 8) {
|
||||
return false;
|
||||
}
|
||||
@ -337,6 +339,20 @@ bool Commands::execute_internal_command (int cmd, const char* cmd_params, level_
|
||||
response = ESP210(cmd_params, auth_type, output);
|
||||
break;
|
||||
#endif //#ifdef DHT_DEVICE
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
//Output to esp screen status
|
||||
//[ESP214]<Text>pwd=<user password>
|
||||
case 214:
|
||||
response = ESP214(cmd_params, auth_type, output);
|
||||
break;
|
||||
#if defined(DISPLAY_TOUCH_DRIVER)
|
||||
//Touch Calibration
|
||||
//[ESP215]<CALIBRATE>[pwd=<user password>]
|
||||
case 215:
|
||||
response = ESP215(cmd_params, auth_type, output);
|
||||
break;
|
||||
#endif //DISPLAY_TOUCH_DRIVER
|
||||
#endif //DISPLAY_DEVICE
|
||||
//Get full ESP3D settings
|
||||
//[ESP400]<pwd=admin>
|
||||
case 400:
|
||||
|
@ -78,6 +78,12 @@ public:
|
||||
#ifdef DIRECT_PIN_FEATURE
|
||||
bool ESP201(const char* cmd_params, level_authenticate_type auth_level, ESP3DOutput * output);
|
||||
#endif //DIRECT_PIN_FEATURE
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
bool ESP214(const char* cmd_params, level_authenticate_type auth_level, ESP3DOutput * output);
|
||||
#if defined(DISPLAY_TOUCH_DRIVER)
|
||||
bool ESP215(const char* cmd_params, level_authenticate_type auth_level, ESP3DOutput * output);
|
||||
#endif //DISPLAY_TOUCH_DRIVER
|
||||
#endif //DISPLAY_DEVICE
|
||||
#ifdef DHT_DEVICE
|
||||
bool ESP210(const char* cmd_params, level_authenticate_type auth_level, ESP3DOutput * output);
|
||||
#endif //DHT_DEVICE
|
||||
|
@ -62,7 +62,6 @@ bool Commands::ESP130(const char* cmd_params, level_authenticate_type auth_type,
|
||||
output->printERROR ("Set failed!");
|
||||
response = false;
|
||||
}
|
||||
|
||||
output->printMSG ("ok");
|
||||
}
|
||||
}
|
||||
|
47
esp3d/src/core/espcmd/ESP214.cpp
Normal file
47
esp3d/src/core/espcmd/ESP214.cpp
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
ESP214.cpp - ESP3D command class
|
||||
|
||||
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
|
||||
*/
|
||||
#include "../../include/esp3d_config.h"
|
||||
#if defined (DISPLAY_DEVICE)
|
||||
#include "../commands.h"
|
||||
#include "../esp3doutput.h"
|
||||
#include "../settings_esp3d.h"
|
||||
#include "../../modules/display/display.h"
|
||||
#include "../../modules/authentication/authentication_service.h"
|
||||
//Output to esp screen status
|
||||
//[ESP214]<Text>pwd=<user password>
|
||||
bool Commands::ESP214(const char* cmd_params, level_authenticate_type auth_type, ESP3DOutput * output)
|
||||
{
|
||||
bool response = true;
|
||||
String parameter;
|
||||
#ifdef AUTHENTICATION_FEATURE
|
||||
if (auth_type == LEVEL_GUEST) {
|
||||
output->printERROR("Wrong authentication!", 401);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
(void)auth_type;
|
||||
#endif //AUTHENTICATION_FEATURE
|
||||
parameter = get_param (cmd_params, "");
|
||||
esp3d_display.SetStatus(parameter.c_str());
|
||||
output->printMSG ("ok");
|
||||
return response;
|
||||
}
|
||||
|
||||
#endif //DISPLAY_DEVICE
|
57
esp3d/src/core/espcmd/ESP215.cpp
Normal file
57
esp3d/src/core/espcmd/ESP215.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
ESP215.cpp - ESP3D command class
|
||||
|
||||
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
|
||||
*/
|
||||
#include "../../include/esp3d_config.h"
|
||||
#if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
|
||||
#include "../commands.h"
|
||||
#include "../esp3doutput.h"
|
||||
#include "../settings_esp3d.h"
|
||||
#include "../../modules/authentication/authentication_service.h"
|
||||
#include "../../modules/display/display.h"
|
||||
//Touch Calibration
|
||||
//[ESP215]<CALIBRATE>[pwd=<user password>]
|
||||
bool Commands::ESP215(const char* cmd_params, level_authenticate_type auth_type, ESP3DOutput * output)
|
||||
{
|
||||
bool response = true;
|
||||
String parameter;
|
||||
#ifdef AUTHENTICATION_FEATURE
|
||||
if (auth_type == LEVEL_GUEST) {
|
||||
output->printERROR("Wrong authentication!", 401);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
(void)auth_type;
|
||||
#endif //AUTHENTICATION_FEATURE
|
||||
parameter = get_param (cmd_params, "");
|
||||
//get
|
||||
if (parameter.length() == 0) {
|
||||
output->printMSG((Settings_ESP3D::read_byte(ESP_CALIBRATION)==1)?"Done":"Not done");
|
||||
} else { //set
|
||||
parameter.toUpperCase();
|
||||
if (parameter == "CALIBRATE") {
|
||||
output->printMSG("Please follow screen instructions");
|
||||
esp3d_display.startCalibration();
|
||||
} else {
|
||||
output->printERROR("Invalid parameter!");
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
#endif //DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
|
@ -26,7 +26,7 @@
|
||||
#if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
|
||||
#include <EEPROM.h>
|
||||
//EEPROM SIZE (Up to 4096)
|
||||
#define EEPROM_SIZE 1024 //max is 1024
|
||||
#define EEPROM_SIZE 2048 //max is 2048
|
||||
#endif //SETTINGS_IN_EEPROM
|
||||
|
||||
#if defined (WIFI_FEATURE) || defined(ETH_FEATURE)
|
||||
@ -115,6 +115,8 @@
|
||||
#define DEFAULT_TELNET_PORT 23L
|
||||
#define DEFAULT_DHT_INTERVAL 30000L
|
||||
#define DEFAULT_BOOT_DELAY 10000L
|
||||
#define DEFAULT_CALIBRATION_VALUE 0
|
||||
#define DEFAULT_CALIBRATION_DONE 0
|
||||
|
||||
#ifdef WIFI_FEATURE
|
||||
//default string values
|
||||
@ -267,10 +269,6 @@ uint8_t Settings_ESP3D::get_default_byte_value(int pos)
|
||||
case ESP_SD_SPEED_DIV:
|
||||
res = DEFAULT_SDREADER_SPEED;
|
||||
break;
|
||||
#endif //SDCARD_FEATURE
|
||||
case ESP_TARGET_FW:
|
||||
res = DEFAULT_FW;
|
||||
break;
|
||||
case ESP_PRIMARY_SD:
|
||||
res = DEFAULT_PRIMARY_SD;
|
||||
break;
|
||||
@ -283,6 +281,13 @@ uint8_t Settings_ESP3D::get_default_byte_value(int pos)
|
||||
case ESP_SD_CHECK_UPDATE_AT_BOOT:
|
||||
res = DEFAULT_SD_CHECK_UPDATE_AT_BOOT;
|
||||
break;
|
||||
case ESP_IS_DIRECT_SD:
|
||||
res = DEFAULT_IS_DIRECT_SD;
|
||||
break;
|
||||
#endif //SDCARD_FEATURE
|
||||
case ESP_TARGET_FW:
|
||||
res = DEFAULT_FW;
|
||||
break;
|
||||
#ifdef TIMESTAMP_FEATURE
|
||||
case ESP_TIMEZONE:
|
||||
res = DEFAULT_TIME_ZONE;
|
||||
@ -290,9 +295,6 @@ uint8_t Settings_ESP3D::get_default_byte_value(int pos)
|
||||
case ESP_TIME_IS_DST:
|
||||
res = DEFAULT_TIME_DST;
|
||||
break;
|
||||
case ESP_IS_DIRECT_SD:
|
||||
res = DEFAULT_IS_DIRECT_SD;
|
||||
break;
|
||||
#endif //TIMESTAMP_FEATURE
|
||||
|
||||
#if defined(DHT_DEVICE)
|
||||
@ -300,6 +302,11 @@ uint8_t Settings_ESP3D::get_default_byte_value(int pos)
|
||||
res = DEFAULT_DHT_TYPE;
|
||||
break;
|
||||
#endif //DHT_DEVICE
|
||||
#if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
|
||||
case ESP_CALIBRATION:
|
||||
res = DEFAULT_CALIBRATION_DONE;
|
||||
break;
|
||||
#endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
|
||||
default:
|
||||
res = DEFAULT_ESP_BYTE;
|
||||
}
|
||||
@ -317,6 +324,15 @@ uint32_t Settings_ESP3D::get_default_int32_value(int pos)
|
||||
case ESP_BOOT_DELAY:
|
||||
res = DEFAULT_BOOT_DELAY;
|
||||
break;
|
||||
#if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
|
||||
case ESP_CALIBRATION_1:
|
||||
case ESP_CALIBRATION_2:
|
||||
case ESP_CALIBRATION_3:
|
||||
case ESP_CALIBRATION_4:
|
||||
case ESP_CALIBRATION_5:
|
||||
res = DEFAULT_CALIBRATION_VALUE;
|
||||
break;
|
||||
#endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
|
||||
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE)
|
||||
case ESP_AP_IP_VALUE:
|
||||
case ESP_STA_IP_VALUE:
|
||||
@ -949,6 +965,17 @@ bool Settings_ESP3D::reset()
|
||||
#if ESP_SAVE_SETTINGS == SETTINGS_IN_EEPROM
|
||||
log_esp3d("clear EEPROM");
|
||||
|
||||
#if defined(DISPLAY_DEVICE) && defined(DISPLAY_TOUCH_DRIVER)
|
||||
//Calibration done (internal only)
|
||||
Settings_ESP3D::write_byte(ESP_CALIBRATION,Settings_ESP3D::get_default_byte_value(ESP_CALIBRATION));
|
||||
//Calibration data (internal only)
|
||||
Settings_ESP3D::write_uint32 (ESP_CALIBRATION_1, Settings_ESP3D::get_default_int32_value(ESP_CALIBRATION_1));
|
||||
Settings_ESP3D::write_uint32 (ESP_CALIBRATION_2, Settings_ESP3D::get_default_int32_value(ESP_CALIBRATION_2));
|
||||
Settings_ESP3D::write_uint32 (ESP_CALIBRATION_3, Settings_ESP3D::get_default_int32_value(ESP_CALIBRATION_3));
|
||||
Settings_ESP3D::write_uint32 (ESP_CALIBRATION_4, Settings_ESP3D::get_default_int32_value(ESP_CALIBRATION_4));
|
||||
Settings_ESP3D::write_uint32 (ESP_CALIBRATION_5, Settings_ESP3D::get_default_int32_value(ESP_CALIBRATION_5));
|
||||
#endif // DISPLAY_DEVICE && DISPLAY_TOUCH_DRIVER
|
||||
|
||||
#if defined (WIFI_FEATURE) || defined (BLUETOOTH_FEATURE) || defined (ETH_FEATURE)
|
||||
//Hostname
|
||||
Settings_ESP3D::write_string(ESP_HOSTNAME,Settings_ESP3D::get_default_string_value(ESP_HOSTNAME).c_str());
|
||||
@ -1057,6 +1084,7 @@ bool Settings_ESP3D::reset()
|
||||
//set version in settings
|
||||
if (res) {
|
||||
log_esp3d("Reset Setting Version");
|
||||
//Settings version (internal only)
|
||||
res = Settings_ESP3D::write_string(ESP_SETTINGS_VERSION, CURRENT_SETTINGS_VERSION);
|
||||
}
|
||||
return res;
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
settings_esp3d.h - settings esp3d functions class
|
||||
|
||||
@ -44,7 +45,7 @@
|
||||
#define ESP_STA_GATEWAY_VALUE 108 //4 bytes xxx.xxx.xxx.xxx
|
||||
#define ESP_BAUD_RATE 112 //4 bytes = int
|
||||
#define ESP_NOTIFICATION_TYPE 116 //1 byte = flag
|
||||
//#define ESP_SLEEP_MODE 117 //1 byte = flag
|
||||
#define ESP_CALIBRATION 117 //1 byte = flag
|
||||
#define ESP_AP_CHANNEL 118 //1 byte = flag
|
||||
//#define ESP_AP_AUTH_TYPE 119 //1 byte = flag
|
||||
//#define ESP_SSID_VISIBLE 120 //1 byte = flag
|
||||
@ -80,6 +81,12 @@
|
||||
#define ESP_DIRECT_SD_CHECK 853//1 bytes = flag
|
||||
#define ESP_SD_CHECK_UPDATE_AT_BOOT 854//1 bytes = flag
|
||||
#define ESP_NOTIFICATION_SETTINGS 855//128 bytes 127+1 = string ; warning does not support multibyte char like chinese
|
||||
#define ESP_CALIBRATION_1 983
|
||||
#define ESP_CALIBRATION_2 987
|
||||
#define ESP_CALIBRATION_3 991
|
||||
#define ESP_CALIBRATION_4 995
|
||||
#define ESP_CALIBRATION_5 999
|
||||
|
||||
//Hidden password
|
||||
#define HIDDEN_PASSWORD "********"
|
||||
|
||||
|
@ -43,6 +43,12 @@
|
||||
#define OLED_I2C_SSDSH1106 2
|
||||
#define TFT_SPI_ILI9341_320X240 3
|
||||
|
||||
//Touch
|
||||
#define XPT2046_SPI 1
|
||||
|
||||
//Input
|
||||
#define ROTARY_ENCODER 1
|
||||
|
||||
//File systems
|
||||
#define ESP_SPIFFS_FILESYSTEM 1
|
||||
#define ESP_FAT_FILESYSTEM 2
|
||||
|
@ -22,7 +22,7 @@
|
||||
#define _VERSION_ESP3D_H
|
||||
|
||||
//version and sources location
|
||||
#define FW_VERSION "3.0.0.a7"
|
||||
#define FW_VERSION "3.0.0.a8"
|
||||
#define REPOSITORY "https://github.com/luc-github/ESP3D"
|
||||
|
||||
#endif //_VERSION_ESP3D_H
|
||||
|
@ -30,12 +30,16 @@
|
||||
#define SSID_FG TFT_WHITE
|
||||
#define IP_FG TFT_WHITE
|
||||
#define STATUS_FG TFT_WHITE
|
||||
#define CALIBRATION_BG TFT_BLACK
|
||||
#define CALIBRATION_FG TFT_GREEN
|
||||
#define CALIBRATION_CORNER TFT_RED
|
||||
|
||||
//Fonts
|
||||
#define FONTSIGNAL 2
|
||||
#define FONTSSID 2
|
||||
#define FONTIP 3
|
||||
#define FONTIP 2
|
||||
#define FONTSTATUS 2
|
||||
#define FONTCALIBRATION 2
|
||||
|
||||
//Positions
|
||||
#define SIGNAL_X 320-34
|
||||
@ -61,6 +65,6 @@
|
||||
#define IP_AREA_H 16
|
||||
|
||||
#define STATUS_AREA_X 0
|
||||
#define STATUS_AREA_Y 48
|
||||
#define STATUS_AREA_Y 223
|
||||
#define STATUS_AREA_W 320
|
||||
#define STATUS_AREA_H 16
|
||||
|
@ -60,6 +60,40 @@ TFT_eSPI esp3d_screen = TFT_eSPI();
|
||||
|
||||
Display esp3d_display;
|
||||
|
||||
bool Display::startCalibration()
|
||||
{
|
||||
bool res = false;
|
||||
#if defined(DISPLAY_TOUCH_DRIVER)
|
||||
#if DISPLAY_TOUCH_DRIVER == XPT2046_SPI
|
||||
uint16_t calibrationData[5];
|
||||
clear_screen();
|
||||
//display instructions
|
||||
uint size = getStringWidth("Touch corners as indicated");
|
||||
setTextFont(FONTCALIBRATION);
|
||||
drawString("Touch corners as indicated", (SCREEN_WIDTH-size)/2, (SCREEN_HEIGHT-16)/2, CALIBRATION_FG);
|
||||
esp3d_screen.calibrateTouch(calibrationData, CALIBRATION_CORNER, CALIBRATION_BG, 15);
|
||||
res = true;
|
||||
for (uint8_t i = 0; i < 5; i++) {
|
||||
if(!Settings_ESP3D::write_uint32 (ESP_CALIBRATION_1+(4*i), calibrationData[i])) {
|
||||
res= false;
|
||||
}
|
||||
}
|
||||
if (!Settings_ESP3D::write_byte (ESP_CALIBRATION, 1)) {
|
||||
res= false;
|
||||
}
|
||||
clear_screen();
|
||||
if(res) {
|
||||
SetStatus("Calibration done");
|
||||
} else {
|
||||
SetStatus("Calibration error");
|
||||
}
|
||||
update_screen(true);
|
||||
#endif //XPT2046_SPI
|
||||
|
||||
#endif //DISPLAY_TOUCH_DRIVER
|
||||
return res;
|
||||
}
|
||||
|
||||
bool Display::splash()
|
||||
{
|
||||
//log_esp3d("Splash");
|
||||
@ -75,16 +109,22 @@ bool Display::splash()
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void Display::showStatus()
|
||||
bool Display::showStatus(bool force)
|
||||
{
|
||||
//Display Status
|
||||
String status = _status;
|
||||
bool refresh_status = force;
|
||||
static String status;
|
||||
if (status != _status) {
|
||||
status = _status;
|
||||
refresh_status = true;
|
||||
}
|
||||
|
||||
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;
|
||||
refresh_status = true;
|
||||
status+=" ";
|
||||
//log_esp3d("current %s", status.c_str());
|
||||
if (status_shift > status.length()) {
|
||||
@ -106,119 +146,173 @@ void Display::showStatus()
|
||||
}
|
||||
//log_esp3d("sized %s", status.c_str());
|
||||
}
|
||||
if (refresh_status) {
|
||||
//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);
|
||||
}
|
||||
return refresh_status;
|
||||
}
|
||||
|
||||
bool Display::main_screen()
|
||||
bool Display::display_signal(bool force)
|
||||
{
|
||||
//log_esp3d("Mainscreen");
|
||||
//Signal
|
||||
int sig = -1;
|
||||
|
||||
static int sig = -1;
|
||||
bool refresh_signal = false;
|
||||
bool refresh_label = false;
|
||||
static String label;
|
||||
#if defined (WIFI_FEATURE)
|
||||
if (WiFiConfig::started()) {
|
||||
String ssid;
|
||||
|
||||
if (WiFi.getMode() == WIFI_AP) {
|
||||
if (sig != 100) {
|
||||
sig = 100;
|
||||
ssid = WiFiConfig::AP_SSID();
|
||||
refresh_signal = true;
|
||||
}
|
||||
if (label != WiFiConfig::AP_SSID()) {
|
||||
label = WiFiConfig::AP_SSID();
|
||||
refresh_label = true;
|
||||
}
|
||||
} else {
|
||||
if (WiFi.isConnected()) {
|
||||
if (sig != WiFiConfig::getSignal (WiFi.RSSI ())) {
|
||||
sig = WiFiConfig::getSignal (WiFi.RSSI ());
|
||||
ssid = WiFi.SSID();
|
||||
refresh_signal = true;
|
||||
}
|
||||
if (label != WiFi.SSID()) {
|
||||
label = WiFi.SSID();
|
||||
refresh_label = true;
|
||||
}
|
||||
} else {
|
||||
if (sig != -1) {
|
||||
sig = -1;
|
||||
refresh_signal = true;
|
||||
}
|
||||
if (label != "") {
|
||||
label = "";
|
||||
refresh_label = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Display SSID
|
||||
setTextFont(FONTSSID);
|
||||
uint16_t size = sizetoFitSpace(ssid.c_str(), SSID_AREA_W);
|
||||
uint16_t size = sizetoFitSpace(label.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;
|
||||
if (size < label.length()) {
|
||||
refresh_label = true;
|
||||
static int label_shift = -1;
|
||||
label+=" ";
|
||||
//log_esp3d("current %s", label.c_str());
|
||||
if (label_shift > label.length()) {
|
||||
label_shift = -1;
|
||||
}
|
||||
//log_esp3d("shift %d", ssid_shift);
|
||||
if (ssid_shift > 0) {
|
||||
ssid.remove(0,ssid_shift);
|
||||
//log_esp3d("shift %d", label_shift);
|
||||
if (label_shift > 0) {
|
||||
label.remove(0,label_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()) {
|
||||
//log_esp3d("shifted %s", label.c_str());
|
||||
size = sizetoFitSpace(label.c_str(), SSID_AREA_W);
|
||||
//log_esp3d("size available %d existing %d",size, label.length());
|
||||
if (size < label.length()) {
|
||||
//cut
|
||||
ssid = ssid.substring(0,size);
|
||||
ssid_shift++;
|
||||
label = label.substring(0,size);
|
||||
label_shift++;
|
||||
} else {
|
||||
ssid_shift = -1;
|
||||
label_shift = -1;
|
||||
}
|
||||
//log_esp3d("sized %s", ssid.c_str());
|
||||
//log_esp3d("sized %s", label.c_str());
|
||||
}
|
||||
if (refresh_label || force) {
|
||||
//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);
|
||||
drawString(label.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||
}
|
||||
}
|
||||
#endif // WIFI_FEATURE
|
||||
|
||||
#if defined (ETH_FEATURE)
|
||||
if (EthConfig::started()) {
|
||||
if (sig != -2) {
|
||||
sig = -2;
|
||||
refresh_signal = true;
|
||||
}
|
||||
//display connection speed
|
||||
if(ETH.linkUp()) {
|
||||
String tmp = ETH.linkSpeed();
|
||||
tmp+= "Mbps";
|
||||
if (label != tmp) {
|
||||
label = tmp;
|
||||
refresh_label = true;
|
||||
}
|
||||
} else {
|
||||
if (label !="") {
|
||||
label ="";
|
||||
refresh_label = true;
|
||||
}
|
||||
}
|
||||
if (refresh_label || force) {
|
||||
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);
|
||||
drawString(label.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||
}
|
||||
}
|
||||
#endif //ETH_FEATURE
|
||||
|
||||
#if defined (BLUETOOTH_FEATURE)
|
||||
if (bt_service.started()) {
|
||||
if (sig!=-3) {
|
||||
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;
|
||||
refresh_signal = true;
|
||||
}
|
||||
//log_esp3d("shift %d", hostname_shift);
|
||||
if (hostname_shift > 0) {
|
||||
hostname.remove(0,hostname_shift);
|
||||
|
||||
//Display hostname
|
||||
if (label != bt_service.hostname()) {
|
||||
refresh_label = true;
|
||||
label = bt_service.hostname();
|
||||
}
|
||||
setTextFont(FONTSSID);
|
||||
uint16_t size = sizetoFitSpace(label.c_str(), SSID_AREA_W);
|
||||
//check the need for resize
|
||||
if (size < label.length()) {
|
||||
refresh_label = true;
|
||||
static int label_shift = -1;
|
||||
label+=" ";
|
||||
//log_esp3d("current %s", hostname.c_str());
|
||||
if (label_shift > label.length()) {
|
||||
label_shift = -1;
|
||||
}
|
||||
//log_esp3d("shift %d", label_shift);
|
||||
if (label_shift > 0) {
|
||||
label.remove(0,label_shift);
|
||||
}
|
||||
//log_esp3d("shifted %s", hostname.c_str());
|
||||
size = sizetoFitSpace(hostname.c_str(), SSID_AREA_W);
|
||||
size = sizetoFitSpace(label.c_str(), SSID_AREA_W);
|
||||
//log_esp3d("size available %d existing %d",size, hostname.length());
|
||||
if (size < hostname.length()) {
|
||||
if (size < label.length()) {
|
||||
//cut
|
||||
hostname = hostname.substring(0,size);
|
||||
hostname_shift++;
|
||||
label = label.substring(0,size);
|
||||
label_shift++;
|
||||
} else {
|
||||
hostname_shift = -1;
|
||||
label_shift = -1;
|
||||
}
|
||||
//log_esp3d("sized %s", hostname.c_str());
|
||||
}
|
||||
if( refresh_label || force) {
|
||||
//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);
|
||||
if (label.length()>0) {
|
||||
drawString(label.c_str(), SSID_AREA_X, SSID_AREA_Y, SSID_FG);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif //BLUETOOTH_FEATURE
|
||||
|
||||
if (refresh_signal || force) {
|
||||
String s;
|
||||
//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);
|
||||
@ -263,12 +357,21 @@ bool Display::main_screen()
|
||||
}
|
||||
//Show Connection type
|
||||
drawString(s.c_str(), SIGNAL_X, SIGNAL_Y, SIGNAL_FG);
|
||||
}
|
||||
if (refresh_signal || refresh_label || force) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//IP
|
||||
setTextFont(FONTIP);
|
||||
fillRect(IP_AREA_X, IP_AREA_Y, IP_AREA_W, IP_AREA_H, SCREEN_BG);
|
||||
bool Display::display_IP(bool force)
|
||||
{
|
||||
bool refresh_label = force;
|
||||
static String label;
|
||||
#if defined (WIFI_FEATURE) || defined (ETH_FEATURE) || defined (BLUETOOTH_FEATURE)
|
||||
if (NetConfig::started()) {
|
||||
String s;
|
||||
switch(NetConfig::getMode()) {
|
||||
#if defined (WIFI_FEATURE)
|
||||
case ESP_WIFI_STA:
|
||||
@ -292,14 +395,45 @@ bool Display::main_screen()
|
||||
s="";
|
||||
break;
|
||||
}
|
||||
if (s.length()>0) {
|
||||
drawString(s.c_str(), IP_AREA_X, IP_AREA_Y, IP_FG);
|
||||
if (s!= label) {
|
||||
label = s;
|
||||
refresh_label = true;
|
||||
}
|
||||
if (refresh_label) {
|
||||
if (label.length()>0) {
|
||||
setTextFont(FONTIP);
|
||||
fillRect(IP_AREA_X, IP_AREA_Y, IP_AREA_W, IP_AREA_H, SCREEN_BG);
|
||||
drawString(label.c_str(), IP_AREA_X, IP_AREA_Y, IP_FG);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (label != "") {
|
||||
label = "";
|
||||
refresh_label = true;
|
||||
fillRect(IP_AREA_X, IP_AREA_Y, IP_AREA_W, IP_AREA_H, SCREEN_BG);
|
||||
}
|
||||
}
|
||||
#endif //WIFI_FEATURE || ETH_FEATURE || BLUETOOTH_FEATURE
|
||||
//status
|
||||
showStatus();
|
||||
return refresh_label;
|
||||
}
|
||||
|
||||
bool Display::main_screen(bool force)
|
||||
{
|
||||
bool res = false;
|
||||
if (display_signal(force)) {
|
||||
res = true;
|
||||
}
|
||||
if (display_IP(force)) {
|
||||
res = true;
|
||||
}
|
||||
if (showStatus(force)) {
|
||||
res = true;
|
||||
}
|
||||
if (res) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t Display::sizetoFitSpace(const char * string, uint16_t maxwidth)
|
||||
@ -319,6 +453,7 @@ void Display::show_screenID(uint8_t screenID)
|
||||
{
|
||||
clear_screen();
|
||||
_screenID = screenID;
|
||||
update_screen(true);
|
||||
}
|
||||
|
||||
Display::Display()
|
||||
@ -329,6 +464,7 @@ Display::Display()
|
||||
_screenwidth = SCREEN_WIDTH;
|
||||
_screenheight = SCREEN_HEIGHT;
|
||||
}
|
||||
|
||||
Display::~Display()
|
||||
{
|
||||
end();
|
||||
@ -363,6 +499,15 @@ bool Display::begin()
|
||||
#endif //TFT_SPI_ILI9341_320X240
|
||||
show_screenID(SPLASH_SCREEN);
|
||||
update_screen();
|
||||
#if defined(DISPLAY_TOUCH_DRIVER)
|
||||
if(Settings_ESP3D::read_byte(ESP_CALIBRATION)==1) {
|
||||
uint16_t calibrationData[5];
|
||||
for (uint8_t i = 0; i < 5; i++) {
|
||||
calibrationData[i] = Settings_ESP3D::read_uint32 (ESP_CALIBRATION_1+(4*i));
|
||||
}
|
||||
esp3d_screen.setTouch(calibrationData);
|
||||
}
|
||||
#endif //DISPLAY_TOUCH_DRIVER
|
||||
res = true;
|
||||
if (!res) {
|
||||
end();
|
||||
@ -370,6 +515,7 @@ bool Display::begin()
|
||||
_started = res;
|
||||
return _started;
|
||||
}
|
||||
|
||||
void Display::end()
|
||||
{
|
||||
if(!_started) {
|
||||
@ -404,7 +550,11 @@ void Display::update_screen(bool force)
|
||||
if ( !ESP3DOutput::isOutput(ESP_SCREEN_CLIENT)) {
|
||||
return;
|
||||
}
|
||||
static uint32_t last_update = millis();
|
||||
bool need_update = force;
|
||||
if (((millis()- last_update) > DISPLAY_REFRESH_TIME) || force) {
|
||||
last_update = millis();
|
||||
|
||||
switch(_screenID) {
|
||||
case SPLASH_SCREEN:
|
||||
if (!_splash_displayed) {
|
||||
@ -412,7 +562,7 @@ void Display::update_screen(bool force)
|
||||
}
|
||||
break;
|
||||
case MAIN_SCREEN:
|
||||
need_update = main_screen();
|
||||
need_update = main_screen(force);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -425,20 +575,17 @@ void Display::update_screen(bool force)
|
||||
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();
|
||||
update_screen();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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)
|
||||
@ -484,6 +631,7 @@ void Display::fillRect(int16_t x, int16_t y, int16_t width, int16_t height, int1
|
||||
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
|
||||
@ -500,6 +648,7 @@ void Display::setTextFont(uint8_t font)
|
||||
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)) {
|
||||
@ -530,8 +679,6 @@ void Display::drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, int16
|
||||
#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)) {
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#define SPLASH_SCREEN 0
|
||||
#define MAIN_SCREEN 1
|
||||
#define CALIBRATION_SCREEN 2
|
||||
|
||||
#ifndef _DISPLAY_H
|
||||
#define _DISPLAY_H
|
||||
@ -38,10 +39,13 @@ public:
|
||||
void clear_screen();
|
||||
void progress(uint8_t v);
|
||||
void SetStatus(const char * status);
|
||||
bool startCalibration();
|
||||
private:
|
||||
bool main_screen();
|
||||
bool main_screen(bool force = false);
|
||||
bool display_signal(bool force = false);
|
||||
bool display_IP(bool force = false);
|
||||
bool splash();
|
||||
void showStatus();
|
||||
bool showStatus(bool force = false);
|
||||
bool _started;
|
||||
uint8_t _screenID;
|
||||
bool _splash_displayed;
|
||||
|
@ -116,6 +116,9 @@ bool HTTP_Server::begin()
|
||||
{
|
||||
bool no_error = true;
|
||||
end();
|
||||
if (Settings_ESP3D::read_byte(ESP_HTTP_ON) !=1) {
|
||||
return no_error;
|
||||
}
|
||||
_port = Settings_ESP3D::read_uint32(ESP_HTTP_PORT);
|
||||
_webserver= new WEBSERVER(_port);
|
||||
if (!_webserver) {
|
||||
|
73
esp3d/src/modules/input/input.cpp
Normal file
73
esp3d/src/modules/input/input.cpp
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
input.cpp - input functions class
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
#include "../../include/esp3d_config.h"
|
||||
#if defined (INPUT_DEVICE)
|
||||
#include "input.h"
|
||||
#include "../../core/settings_esp3d.h"
|
||||
#include "../../core/esp3doutput.h"
|
||||
|
||||
|
||||
Input esp3d_input;
|
||||
|
||||
|
||||
Input::Input()
|
||||
{
|
||||
_started = false;
|
||||
}
|
||||
|
||||
Input::~Input()
|
||||
{
|
||||
end();
|
||||
}
|
||||
|
||||
bool Input::begin()
|
||||
{
|
||||
bool res = true;
|
||||
_started = false;
|
||||
if (!res) {
|
||||
end();
|
||||
}
|
||||
_started = res;
|
||||
return _started;
|
||||
}
|
||||
|
||||
void Input::end()
|
||||
{
|
||||
if(!_started) {
|
||||
return;
|
||||
}
|
||||
_started = false;
|
||||
}
|
||||
|
||||
bool Input::started()
|
||||
{
|
||||
return _started;
|
||||
}
|
||||
|
||||
|
||||
void Input::handle()
|
||||
{
|
||||
if (_started) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif //INPUT_DEVICE
|
40
esp3d/src/modules/input/input.h
Normal file
40
esp3d/src/modules/input/input.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
input.h - input functions class
|
||||
|
||||
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
|
||||
*/
|
||||
#ifndef _INPUT_H
|
||||
#define _INPUT_H
|
||||
|
||||
|
||||
class Input
|
||||
{
|
||||
public:
|
||||
Input();
|
||||
~Input();
|
||||
bool begin();
|
||||
void end();
|
||||
void handle();
|
||||
bool started();
|
||||
private:
|
||||
bool _started;
|
||||
};
|
||||
|
||||
extern Input esp3d_input;
|
||||
|
||||
#endif //_INPUT_H
|
||||
|
@ -182,23 +182,28 @@ bool NetServices::begin()
|
||||
}
|
||||
}
|
||||
#endif //CAPTIVE_PORTAL_FEATURE
|
||||
|
||||
#ifdef HTTP_FEATURE
|
||||
if (!HTTP_Server::begin()) {
|
||||
res= false;
|
||||
output.printERROR("HTTP server failed");
|
||||
} else {
|
||||
if(HTTP_Server::started()) {
|
||||
String stmp = "HTTP server started port " + String(HTTP_Server::port());
|
||||
output.printMSG(stmp.c_str());
|
||||
}
|
||||
}
|
||||
#endif //HTTP_FEATURE
|
||||
#ifdef TELNET_FEATURE
|
||||
if (!telnet_server.begin()) {
|
||||
res= false;
|
||||
output.printERROR("Telnet server failed");
|
||||
} else {
|
||||
if(telnet_server.started()) {
|
||||
String stmp = "Telnet server started port " + String(telnet_server.port());
|
||||
output.printMSG(stmp.c_str());
|
||||
}
|
||||
}
|
||||
#endif //TELNET_FEATURE
|
||||
#ifdef WS_DATA_FEATURE
|
||||
if (!websocket_data_server.begin(Settings_ESP3D::read_uint32(ESP_WEBSOCKET_PORT))) {
|
||||
@ -221,7 +226,7 @@ bool NetServices::begin()
|
||||
#endif //MDNS_FEATURE
|
||||
#ifdef SSDP_FEATURE
|
||||
//SSDP service presentation
|
||||
if(WiFi.getMode() != WIFI_AP) {
|
||||
if(WiFi.getMode() != WIFI_AP && HTTP_Server::started()) {
|
||||
//Add specific for SSDP
|
||||
String stmp = String(Hal::getChipID());
|
||||
SSDP.setSchemaURL ("description.xml");
|
||||
@ -229,13 +234,13 @@ bool NetServices::begin()
|
||||
SSDP.setName (hostname.c_str());
|
||||
SSDP.setURL ("/");
|
||||
SSDP.setDeviceType ("upnp:rootdevice");
|
||||
SSDP.setSerialNumber (stmp.c_str());
|
||||
// SSDP.setSerialNumber (stmp.c_str());
|
||||
//Any customization could be here
|
||||
SSDP.setModelName (ESP_MODEL_NAME);
|
||||
SSDP.setModelURL (ESP_MODEL_URL);
|
||||
SSDP.setModelNumber (ESP_MODEL_NUMBER);
|
||||
SSDP.setManufacturer (ESP_MANUFACTURER_NAME);
|
||||
SSDP.setManufacturerURL (ESP_MANUFACTURER_URL);
|
||||
// SSDP.setModelName (ESP_MODEL_NAME);
|
||||
// SSDP.setModelURL (ESP_MODEL_URL);
|
||||
// SSDP.setModelNumber (ESP_MODEL_NUMBER);
|
||||
// SSDP.setManufacturer (ESP_MANUFACTURER_NAME);
|
||||
// SSDP.setManufacturerURL (ESP_MANUFACTURER_URL);
|
||||
SSDP.begin();
|
||||
stmp = "SSDP started with '" + hostname + "'";
|
||||
output.printMSG(stmp.c_str());
|
||||
|
@ -93,6 +93,9 @@ Telnet_Server::~Telnet_Server()
|
||||
bool Telnet_Server::begin(uint16_t port, bool debug)
|
||||
{
|
||||
end();
|
||||
if (Settings_ESP3D::read_byte(ESP_TELNET_ON) !=1) {
|
||||
return true;
|
||||
}
|
||||
//Get telnet port
|
||||
if (port == 0) {
|
||||
_port = Settings_ESP3D::read_uint32(ESP_TELNET_PORT);
|
||||
@ -183,7 +186,7 @@ void Telnet_Server::handle()
|
||||
|
||||
void Telnet_Server::flushbuffer()
|
||||
{
|
||||
if (!_buffer || _started) {
|
||||
if (!_buffer || !_started) {
|
||||
_buffer_size = 0;
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user