diff --git a/.gitignore b/.gitignore index 329f8d1e5..2256f1518 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,7 @@ node_modules .vscode build server +repomix-output.xml +generate-context.ps1 +.env +languages/backup/ diff --git a/Memo/Commands.md b/Memo/Commands.md deleted file mode 100644 index e91412e55..000000000 --- a/Memo/Commands.md +++ /dev/null @@ -1,311 +0,0 @@ -# Direct ESP3D commands (V3.x) - -## Conventions - -1 - add space to separate parameters -2 - if parameter has space add \\ in front of space to not be seen as separator -3 - json json=YES json=TRUE json=1 are paremeters to switch output to json -By default output is plain text, to get json formated output -add json or json=yes after main parameters -The json format is { -cmd:"", //the id of requested command -status:"" //give if it is success or an failure -data:"" // response corresponding to answer in json format too -} - -## Commands - -- Show commands help - `[ESP] json=` - -- Set/Get STA SSID - `[ESP100] json= pwd=` - -- Set STA Password - `[ESP101] json= pwd=` - -- Set/Get STA IP mode (DHCP/STATIC) - `[ESP102] json= pwd=` - -- Set/Get STA IP/Mask/GW/DNS - `[ESP103]IP= MSK= GW= DNS= json= pwd=` - -- Set/Get sta fallback mode which can be WIFI-AP, BT, OFF - `[ESP104] json= pwd=` - -- Set/Get AP SSID - `[ESP105] json= pwd=` - -- Change AP Password - `[ESP106] json= pwd=` - -- Set/Get AP IP - `[ESP107] json= pwd=` - -- Set/Get AP channel - `[ESP108] json= pwd=` - -- Set/Get radio state which can be WIFI-STA, WIFI-AP, BT, ETH-STA, ETH-AP, OFF - `[ESP110] json= pwd=` - -- Get current IP - `[ESP111]json=` - -- Get/Set hostname - `[ESP112] json= pwd=` - -- Get /Set Boot radio state which can be ON, OFF - `[ESP114] json= pwd=` - -- Get/Set immediate network(WiFi/BT/Ethernet) state which can be ON, OFF - `[ESP115] json= pwd=` - -- Get/Set HTTP state which can be ON, OFF - `[ESP120] json= pwd=` - -- Get/Set HTTP port - `[ESP121] json= pwd=` - -- Get/Set Telnet state which can be ON, OFF, CLOSE - `[ESP130] json= pwd=` - -- Get/Set Telnet port - `[ESP131] json= pwd=` - -- Sync / Set / Get current time - `[ESP140] json= pwd=` - -- Get/Set display/set boot delay in ms / Verbose boot - `[ESP150]pwd=` - -- Get/Set WebSocket state which can be ON, OFF - `[ESP160] json= pwd=` - -- Get/Set WebSocket port - `[ESP161] json= pwd=` - -- Get/Set Camera command value / list all values in JSON/plain - label can be: light/framesize/quality/contrast/brightness/saturation/gainceiling/colorbar/awb/agc/aec/hmirror/vflip/awb_gain/agc_gain/aec_value/aec2/cw/bpc/wpc/raw_gma/lenc/special_effect/wb_mode/ae_level - `[ESP170] json= pwd=` - -- Save frame to target path and filename (default target = today date, default name=timestamp.jpg) - `[ESP171] ` - -- Get/Set Ftp state which can be ON, OFF, CLOSE - `[ESP180] json= pwd=` - -- Get/Set Ftp ports - `[ESP181]ctrl= active= passive= json= pwd=` - -- Get/Set WebDav state which can be ON, OFF, CLOSE - `[ESP190] json= pwd=` - -- Get/Set WebDav port - `[ESP191] json= pwd=` - -- Get/Set SD Card Status - `[ESP200] json= pwd=` - `RELEASE` will force the release of SD from ESP3D if SD is shared - `REFRESH` will refresh the SD info is available` - -- Get/Set pin value - `[ESP201]P= V= [PULLUP=YES RAW=YES ANALOG=NO ANALOG_RANGE=255]pwd=` - - - if no V= get P= value - - if V= 0/1 set INPUT_PULLUP value, but for GPIO16(ESP8266) INPUT_PULLDOWN_16 - - if PULLUP=YES set input pull up (for GPIO16(ESP8266) INPUT_PULLDOWN_16), if not set input - - if RAW=YES do not set pinmode just read value - - Note: Flash pins according chip cannot be used - -- Get/Set SD card Speed factor 1 2 4 6 8 16 32 - `[ESP202]SPEED= json= pwd=` - -- Get Sensor Value / type/Set Sensor type - `[ESP210] json= pwd=` - -- Output to esp screen status - `[ESP214] json= pwd=` - -- Touch Calibration - `[ESP215] json= pwd=` - -- Show defined pins - `[ESP220] json= pwd=` - -- Play sound - `[ESP250]F= D= json= pwd=` - Note: No parameter just play beep - -- Delay command - `[ESP290] json=pwd=` - -- Get full EEPROM settings content - `[ESP400] pwd=` - Note: do not give any passwords - -\*Set EEPROM setting - position in EEPROM, type: B(byte), I(integer/long), S(string), A(IP address / mask) - `[ESP401]P= T= V= json= pwd=` - -``` - Description: Positions: - ESP_RADIO_MODE 0 //1 byte = flag - ESP_STA_SSID 1 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese - ESP_STA_PASSWORD 34 //65 bytes 64 +1 = string ;warning does not support multibyte char like chinese - ESP_STA_IP_MODE 99 //1 byte = flag - 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_NOTIFICATION_TYPE 116 //1 byte = flag - ESP_CALIBRATION 117 //1 byte = flag - ESP_AP_CHANNEL 118 //1 byte = flag - ESP_BUZZER 119 //1 byte = flag - ESP_INTERNET_TIME 120 //1 byte = flag - ESP_HTTP_PORT 121 //4 bytes = int - ESP_TELNET_PORT 125 //4 bytes = int - FREE 129 //1 bytes = flag - ESP_HOSTNAME 130 //33 bytes 32+1 = string ; warning does not support multibyte char like chinese - ESP_SENSOR_INTERVAL 164 //4 bytes = int - ESP_SETTINGS_VERSION 168 //8 bytes = 7+1 = string ESP3D + 2 digits - ESP_ADMIN_PWD 176 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese - ESP_USER_PWD 197 //21 bytes 20+1 = string ; warning does not support multibyte char like chinese - 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 = int - ESP_WEBSOCKET_PORT 324 //4 bytes= int - ESP_HTTP_ON 328 //1 byte = flag - ESP_TELNET_ON 329 //1 byte = flag - ESP_WEBSOCKET_ON 330 //1 byte = flag - ESP_SD_SPEED_DIV 331 //1 byte = flag - ESP_NOTIFICATION_TOKEN1 332 //251 bytes 250+1 = string ; warning does not support multibyte char like chinese - ESP_NOTIFICATION_TOKEN2 583 //64 bytes 63+1 = string ; warning does not support multibyte char like chinese - ESP_SENSOR_TYPE 647 //1 bytes = flag - ESP_TARGET_FW 648 //1 bytes = flag - FREE 649 //1 bytes = flag - FREE 650 //1 bytes = flag - ESP_TIME_SERVER1 651 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese - ESP_TIME_SERVER2 780 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese - ESP_TIME_SERVER3 909 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese - ESP_REMOTE_SCREEN 1038 //1 bytes = flag - ESP_SD_MOUNT 1039 //1 bytes = flag - ESP_SESSION_TIMEOUT 1040 //1 bytes = flag - FREE FLAG 1041 //1 bytes = flag - ESP_SD_CHECK_UPDATE_AT_BOOT 1042//1 bytes = flag - ESP_NOTIFICATION_SETTINGS 1043 //129 bytes 128+1 = string ; warning does not support multibyte char like chinese - ESP_CALIBRATION_1 1172 //4 bytes = int - ESP_CALIBRATION_2 1176 //4 bytes = int - ESP_CALIBRATION_3 1180 //4 bytes = int - ESP_CALIBRATION_4 1184 //4 bytes = int - ESP_CALIBRATION_5 1188 //4 bytes = int - ESP_SETUP 1192 //1 byte = flag - FREE 1193 //1 byte = flag - FREE 1194 //1 byte = flag - FREE 1195 //1 byte = flag - ESP_FTP_CTRL_PORT 1196 //4 bytes = int - ESP_FTP_DATA_ACTIVE_PORT 1200 //4 bytes = int - ESP_FTP_DATA_PASSIVE_PORT 1204 //4 bytes = int - ESP_FTP_ON 1208 //1 byte = flag - ESP_AUTO_NOTIFICATION 1209 //1 byte = flag - ESP_VERBOSE_BOOT 1210 //1 byte = flag - ESP_WEBDAV_ON 1211 //1 byte = flag - ESP_WEBDAV_PORT 1212 //4 bytes = int - ESP_STA_DNS_VALUE 1216 //4 bytes= int - ESP_SECURE_SERIAL 1220 //1 byte = flag - ESP_SERIAL_BRIDGE_ON 1223 //1 byte = flag - FREE 1224 //1 byte = flag - ESP_SERIAL_BRIDGE_BAUD 1225 //4 bytes= int - ESP_TIME_ZONE 1229 //7 bytes= string -``` - -- Get/Set Check update at boot state which can be ON, OFF - `[ESP402] json= pwd=` - -- Get available AP list (limited to 30) - output is JSON or plain text according parameter - `[ESP410]json= ` - -- Get current settings of ESP3D - Output is JSON or plain text according parameter - `[ESP420]json= ` - -- Set ESP State - `cmd` can be `RESTART` to restart board or `RESET` to reset all setting to defaults values - `[ESP444] json= ` - -- Get available ESP3D list - output is JSON or plain text according parameter - `[ESP450]json= ` - -- Change admin password - `[ESP550] json= pwd=` - -- Change user password - `[ESP555] json= pwd=` - -- Send Notification - `[ESP600]msg json= pwd=` - -- Set/Get Notification settings - `[ESP610]type= T1= T2= TS= json= [pwd=]` - Get will give type and settings only, not the protected T1/T2 - -- Send Notification using URL - `[ESP620]URL= json= pwd=` - -- Read / Stream / Process FS file - `[ESP700] json= pwd=` - -- Query and Control ESP700 stream - `[ESP701]action= json= pwd=` - -- Format ESP Filesystem - `[ESP710]FORMATFS json= pwd=` - -- Format SD Filesystem - `[ESP715]FORMATSD json= pwd=` - -- List ESP Filesystem - `[ESP720] json= pwd=` - -- Action on ESP Filesystem - Action can be `rmdir` to remove empty directory / `remove` to delete file / `mkdir` to create directory / `exists` to check if file or directory exists / `create` create an empty file - `[ESP730]= json= pwd=` - -- List SD Filesystem - `[ESP740] json= pwd=` - -- Action on SD Filesystem - Action can be `rmdir` to remove empty directory / `remove` to delete file / `mkdir` to create directory / `exists` to check if file or directory exists / `create` create an empty file - `[ESP750]= json= pwd=` - -- List Global Filesystem - `[ESP780] json= pwd=` - -- Action on Global Filesystem - Action can be `rmdir` to remove empty directory / `remove` to delete file / `mkdir` to create directory / `exists` to check if file or directory exists / `create` create an empty file - `[ESP790]= json= pwd=` - -- FW Informations - `[ESP800]json= pwd= ` - -- Get state / Set Enable / Disable Serial Communication - `[ESP900] json= pwd=` -- Get / Set Serial Baud Rate - `[ESP901] json= pwd=` - -- Get state / Set Enable / Disable buzzer - `[ESP910] json= pwd=` - -- Get state / Set state of output message clients - `[ESP920]= json= pwd=` - -- Get state / Set Enable / Disable Serial Bridge Communication - `[ESP930] json= pwd=` -- Get / Set Serial Bridge Baud Rate - `[ESP931] json= pwd=` - -- Set quiet boot if strapping pin is High - `[ESP999]QUIETBOOT pwd=` diff --git a/Memo/ESP3D [ESP400] format.md b/Memo/ESP3D [ESP400] format.md deleted file mode 100644 index c145178be..000000000 --- a/Memo/ESP3D [ESP400] format.md +++ /dev/null @@ -1,102 +0,0 @@ -# ESP3D [ESP400] format - -Only sent in JSON format - -``` -{"cmd":"400","status":"ok","data":[ -{"F":"network/network","P":"130","T":"S","V":"esp3d","H":"hostname","S":"32","M":"1"}, -{"F":"network/network","P":"0","T":"B","V":"1","H":"radio mode","O":[{"none":"0"}, -{"sta":"1"}, -{"ap":"2"}]}, -{"F":"network/sta","P":"1","T":"S","V":"WIFI_OFFICE_B2G","S":"32","H":"SSID","M":"1"}, -{"F":"network/sta","P":"34","T":"S","N":"1","V":"********","S":"64","H":"pwd","M":"8"}, -{"F":"network/sta","P":"99","T":"B","V":"1","H":"ip mode","O":[{"dhcp":"1"}, -{"static":"0"}]}, -{"F":"network/sta","P":"100","T":"A","V":"192.168.0.1","H":"ip"}, -{"F":"network/sta","P":"108","T":"A","V":"192.168.0.1","H":"gw"}, -{"F":"network/sta","P":"104","T":"A","V":"255.255.255.0","H":"msk"}, -{"F":"network/ap","P":"218","T":"S","V":"ESP3D","S":"32","H":"SSID","M":"1"}, -{"F":"network/ap","P":"251","T":"S","N":"1","V":"********","S":"64","H":"pwd","M":"8"}, -{"F":"network/ap","P":"316","T":"A","V":"192.168.0.1","H":"ip"}, -{"F":"network/ap","P":"118","T":"B","V":"11","H":"channel","O":[{"1":"1"}, -{"2":"2"}, -{"3":"3"}, -{"4":"4"}, -{"5":"5"}, -{"6":"6"}, -{"7":"7"}, -{"8":"8"}, -{"9":"9"}, -{"10":"10"}, -{"11":"11"}, -{"12":"12"}, -{"13":"13"}, -{"14":"14"}]}, -{"F":"service/http","P":"328","T":"B","V":"1","H":"enable","O":[{"no":"0"}, -{"yes":"1"}]}, -{"F":"service/http","P":"121","T":"I","V":"80","H":"port","S":"65001","M":"1"}, -{"F":"service/telnetp","P":"329","T":"B","V":"1","H":"enable","O":[{"no":"0"}, -{"yes":"1"}]}, -{"F":"service/telnetp","P":"125","T":"I","V":"23","H":"port","S":"65001","M":"1"}, -{"F":"service/ftp","P":"1208","T":"B","V":"1","H":"enable","O":[{"no":"0"}, -{"yes":"1"}]}, -{"F":"service/ftp","P":"1196","T":"I","V":"21","H":"control port","S":"65001","M":"1"}, -{"F":"service/ftp","P":"1200","T":"I","V":"20","H":"active port","S":"65001","M":"1"}, -{"F":"service/ftp","P":"1204","T":"I","V":"55600","H":"passive port","S":"65001","M":"1"}, -{"F":"service/notification","P":"1191","T":"B","V":"1","H":"auto notif","O":[{"no":"0"}, -{"yes":"1"}]}, -{"F":"service/notification","P":"116","T":"B","V":"0","H":"notification","O":[{"none":"0"}, -{"pushover":"1"}, -{"email":"2"}, -{"line":"3"}]}, -{"F":"service/notification","P":"332","T":"S","V":"********","S":"250","H":"t1","M":"0"}, -{"F":"service/notification","P":"583","T":"S","V":"********","S":"63","H":"t2","M":"0"}, -{"F":"service/notification","P":"1042","T":"S","V":" ","S":"127","H":"ts","M":"0"}, -{"F":"system/system","P":"648","T":"B","V":"40","H":"targetfw","O":[{"repetier":"50"}, -{"marlin":"20"}, -{"smoothieware":"40"}, -{"grbl":"10"}, -{"unknown":"0"}]}, -{"F":"system/system","P":"112","T":"I","V":"115200","H":"baud","O":[{"9600":"9600"}, -{"19200":"19200"}, -{"38400":"38400"}, -{"57600":"57600"}, -{"74880":"74880"}, -{"115200":"115200"}, -{"230400":"230400"}, -{"250000":"250000"}, -{"500000":"500000"}, -{"921600":"921600"}]}, -{"F":"system/system","P":"320","T":"I","V":"10000","H":"bootdelay","S":"40000","M":"0"}, -]} -``` - -1 - key : `Settings` -2 - value: array of data formated like this -{"F":"network/network","P":"130","T":"S","V":"esp3d","H":"hostname","S":"32","M":"1"} -or -{"F":"service/notification","P":"1191","T":"B","V":"1","H":"auto notif","O":[{"no":"0"},{"yes":"1"}]} - - - F: is filter formated as section/sub-section, if section is same as sub-section, it means no sub-section - - P: is id (also position reference so it is unique) - - T: is type of data which can be: - - S: for string - - I: for integer - - B: for Byte - - A: for IP address / Mask - - F: for float (only grblHAL) - - M: for bits mask (only grblHAL) - - X: for exclusive bitsfield (only grblHAL) - - V: is current value, if type is string and value is `********`, (8 stars) then it is a password - - E: is integer for exactess / precision of float/double value (only grblHAL) - - U: is text unit of value (only grblHAL) - - H: is text label of value - - S: is max size if type is string, and max possible value if value is number (byte, integer) - - M: is min size if type is string, and min possible value if value is number (byte, integer) - - MS: is additionnal min size if type is string (e.g for password can be 0 or 8, so need additional min size), M should be the more minimal value - so MS value must be between M and S - - O: is an array of {label:value} used for possible values in selection or bits labels list - - R: need restart to be applied - -Note: if Type `M` and `X` use `O` entry to define the label / position, if `O` is `[]` then axis label are used according need `X`, `Y`, `Z`, `A`, `B`, `C` -Note2 : the 2.1 Flag type is no more used, several entries are used instead grouped by sub-section diff --git a/Memo/ESP3D [ESP401] format.md b/Memo/ESP3D [ESP401] format.md deleted file mode 100644 index b99c1be61..000000000 --- a/Memo/ESP3D [ESP401] format.md +++ /dev/null @@ -1,22 +0,0 @@ -# ESP3D [ESP401] format - -WebUI need use json format to get propelry formated answer -As described in Commands.md: - -## Conventions - -1 - add space to separate parameters -2 - if parameter has space add \\ in front of space to not be seen as separator -3 - json json=YES json=TRUE json=1 are paremeters to switch output to json -By default output is plain text, to get json formated output -add json or json=yes after main parameters -The json format is { -cmd:"<401>", //the id of requested command -status:"" //give if it is success or an failure -data:"the position of setting" -} - -Example -`[ESP401]P=1 T=S V=My\ SSID json` -you will get the following if ok -`{"cmd":"401","status":"ok","data":"1"}` diff --git a/Memo/ESP3D [ESP410] format.md b/Memo/ESP3D [ESP410] format.md deleted file mode 100644 index 2e76603dd..000000000 --- a/Memo/ESP3D [ESP410] format.md +++ /dev/null @@ -1,34 +0,0 @@ -# ESP3D [ESP410] format - -This command list all AP available, limited to 30 by API, if signal is too low, AP is not listed to avoid connection problems. - -WebUI need use json format to get propelry formated answer -As described in Commands.md: - -Example -`[ESP410]json` -you will get the following if ok - -``` -{ - "cmd": "410", - "status": "ok", - "data": [ - { - "SSID": "GRBL", - "SIGNAL": "100", - "IS_PROTECTED": "1" - }, - { - "SSID": "luc-ext1", - "SIGNAL": "64", - "IS_PROTECTED": "1" - }, - { - "SSID": "TP-Link_Luc", - "SIGNAL": "62", - "IS_PROTECTED": "1" - } - ] -} -``` diff --git a/Memo/ESP3D [ESP800] format.md b/Memo/ESP3D [ESP800] format.md deleted file mode 100644 index bb6e6cd99..000000000 --- a/Memo/ESP3D [ESP800] format.md +++ /dev/null @@ -1,121 +0,0 @@ -# ESP3D [ESP800] format - -can be in JSON or plain text - -## Input - -`[ESP800] json= pwd=` - - * json=yes - the output format - * time= - to set ESP3D time using ISO 8601 format : `YYYY`-`MM`-`DD`T`HH`:`minutes`:`seconds` - * tz= - to set ESP3D time zone using ISO 8601 format : `+`/`-` `HH`:`MM` - * version - version of webUI - * setup flag - Enable / Disable the setup flag - -## Output - -- In json format - -``` -{ - "cmd":"800", - "status":"ok", - "data":{ - "FWVersion":"bugfix-2.0.x-3.0.0.a200", - "FWTarget":"marlin", - "FWTargetID":"30", - "Setup":"Enabled", - "SDConnection":"shared", - "SerialProtocol":"Socket", - "Authentication":"Disabled", - "WebCommunication":"Synchronous", - "WebSocketIP":"192.168.2.117", - "WebSocketPort":"81", - "Hostname":"esp3d", - "WiFiMode":"STA", - "WebUpdate":"Enabled", - "FlashFileSystem":"LittleFS", - "HostPath":"www", - "Time":"none" - } -} -``` - - * `cmd` - Id of requested command, should be `800` - - * `status` - status of command, should be `ok` - - * `data` - content of response: - * `FWVersion` - Version of ESP3D firmware or targeted FW (Marlin with ESP3DLib / grblHal) - * `FWTarget` - name of targeted Firmware - * `FWTargetID` - numerical ID of targeted FW as same name can have several Ids - * `Setup` - Should be `Enabled` or `Disabled` according flag in EEPROM/Preferences, this allows to WedUI to start wizard automaticaly (or not) - - * `SDConnection` - This is SD capability, SD can be - * `shared` - ESP does share access to SD card reader with main board or Firmware (Marlin with ESP3Dlib, ESP3D with hardware SD share solution) - * `direct` - ESP does have direct access to SD card reader (e.g: ESP3D, grblHal) - * `none` - ESP does not have direct access to SD card reader, (e.g: ESP3D with only serial connection) - * `SerialProtocol` - It define how ESP3D FW communicate with main FW - * `Socket` - ESP and main FW use same FW (e.g: Marlin with ESP3DLib, grblHal) - * `Raw` - Classic serial connection - * `MKS` - Serial connection using MKS protocol - * `Authentication` - Can be `Enabled` or `Disabled` - * `WebCommunication` - currently only `Synchronous`, because `Asychronous` has been put in hold - * `WebSocketIP` - Ip address for the websocket terminal `192.168.2.117` - * `WebSocketPort` - Port for the web socket terminal `81` - * `Hostname` - Hostname of ESP3D or main Baord `esp3d` - * `WiFiMode` - Current wiFi mode in use can be `AP` or `STA` - * `WebUpdate` - Inform webUI the feature is available or not, can be `Enabled` or `Disabled` - * `FlashFileSystem` (currently `FileSystem`, to be updated soon ) - The file system used by ESP board can be `LittleFS`, `SPIFFS`, `Fat`, `none` - * `HostPath` - Path where the preferences.json and index.html.gz are stored and can be updated (e.g: `www`) - * `Time` - Type of time support - * `none` - Time is not supported - * `Auto` - Board use internet to sync time and it is successful - * `Failed to set` - Board use internet to sync time and it is failed - * `Manual` - Board use time of ESP800 to set the time and it is successful - * `Not set` - Board use time of ESP800 to set the time and command did not sent it (time may have been set by previous command) - * `CameraID` - if ESP has camera it contain the camera ID - * `CameraName` - if ESP has camera it contain the camera name - * `Axisletters` - Currently only used for grbHAL - can be : - - XYZABC - - XYZUVZ (supported soon) - - XYZABCUVZ (supported soon) diff --git a/Memo/ESP3D-WebUI-features.xls b/Memo/ESP3D-WebUI-features.xls deleted file mode 100644 index 11bcf63f5..000000000 Binary files a/Memo/ESP3D-WebUI-features.xls and /dev/null differ diff --git a/Memo/Features.md b/Memo/Features.md deleted file mode 100644 index cd9337269..000000000 --- a/Memo/Features.md +++ /dev/null @@ -1,76 +0,0 @@ -# V3 Features - -## Global Features - -- Firmware update -- WebUI update -- List of enabled features /capabilities -- Wifi configuration -- Features configuration -- WebUI features configuration -- Haptic feedback -- Audio feedback -- Terminal commands -- Emmergency stop -- Pluggins support -- Themes support (CSS) -- Language packs support -- Macro commands -- Local FS listing / content management -- External pages/panel support -- PC / Tablet / phone UI -- IP Camera & ESP32 Camera display support -- Import / Export settings -- Restart board support -- Monolitic small footprint -- Single user management support (auto close if not latest connected) -- Authentication support (admin / user) -- Configuration wizard (TBD) -- Firmware supported (3DPrinter / CNC / SandTable): - - ESP3D V3.x: - - Marlin (1.x / 2.x) - - Smoothieware (1.x / 2.x) - - Repetier (1.x / 2.x) - - GRBL (1.1h) - - ESP3D-TFT (ESP3D) - - ESP3DLib - - Marlin (2.x) - currently need custom version of Marlin : https://github.com/luc-github/Marlin/tree/ESP3DLibV3.0 - - grblHAL (ongoing) - - Makerbase TFT (ESP3D) - - Bigtreetech TFT (ESP3D) -- Firmware NOT yet supported: - - Reprap - -## 3D Printer Features - -- Target firmware configuration -- Jog control / monitoring -- Temperatures control / monitoring -- Additionnal sensors support -- Chart support for temperatures / sensors -- Multiple extruder support -- Target Firmware SD listing / content management (if supported) -- TFT SD/USB listing / content management (if supported) -- Fan control / monitoring (if supported) -- Flow rate control / monitoring (if supported) -- Feed rate control / monitoring (if supported) -- Print control / monitoring -- More to come... - -## CNC Features - -- Target firmware configuration -- Jog control / monitoring -- Laser control -- Spindle control -- Status monitoring -- Probing control / monitoring -- Code streaming using ESP3D V3 -- More to come... - -## Sand Table Features - -- Target firmware configuration -- Jog control / monitoring -- Status monitoring -- More to come... diff --git a/Memo/Handlers.md b/Memo/Handlers.md deleted file mode 100644 index 192cd0a17..000000000 --- a/Memo/Handlers.md +++ /dev/null @@ -1,175 +0,0 @@ -# Web Handlers - -### / - -root is the default handler where all files will be served, if no file is defined, it looks for index.html or index.html.gz (compressed) -if you call specific file, it will look for the filename and filename.gz (compressed) -if no file is defined and there is not index.html(.gz) it will display embedded page -another way to show the embedded page is /?forcefallback=yes - -### /sd/ - -it will serve any file from SD card if there is one, it is only a wrapper to read SD card, no upload - -### /files - -this handler handle all commands for FS, including upload on FS. - possible options/arguments are: - -- `quiet=yes` can be used when you don't want list files but just upload them -- `path=...` define the path to the file -- `action=...` define the action to execute which can be: - - delete - delete the file defined by `filename=...` it will also use `path=...` to do full path - - deletedir - delete the directory defined by `filename=...` it will also use `path=...` to do full path - - createdir - create the directory defined by `filename=...` it will also use `path=...` to do full path -- `createPath=yes` when doing upload and the path do not exists, it will create it, POST only -- `S=...` give the size of uploaded file with name, need to be set before file is set in upload, POST only - -the output is a json file: - - ``` - { - "files":[ //the files list - { - "name":"index.html.gz", //the name of the file - "size":"83.46 KB", //the formated size of the file - "time":"2022-09-04 11:56:05" //the time when the file was modified last time, this one is optional and depend on (FILESYSTEM_TIMESTAMP_FEATURE) - }, - { - "name":"subdir", //the name of the file / directory - "size":"-1", //the size is -1 because it is a directory - "time":"" //no time for directories optional as depend on (FILESYSTEM_TIMESTAMP_FEATURE) - } - ], - "path":"/", //current path - "occupation":"52", //% of occupation - "status":"subdir created", //status - "total":"192.00 KB", //Formated total space of Filesystem - "used":"100.00 KB" //Formated used space of Filesystem - } - ``` - -### /sdfiles - -this handler handle all commands for SD, including upload on SD (only shared and direct SD) -this handler handle all commands for FS, including upload on FS. - possible options/arguments are: - -- `quiet=yes` can be used when you don't want list files but just upload them -- `path=...` define the path to the file -- `action=...` define the action to execute which can be: - - list - Will refresh the stats of the files - delete - delete the file defined by `filename=...` it will also use `path=...` to do full path - - deletedir - delete the directory defined by `filename=...` it will also use `path=...` to do full path - - createdir - create the directory defined by `filename=...` it will also use `path=...` to do full path -- `createPath=yes` when doing upload and the path do not exists, it will create it, POST only -- `S=...` give the size of uploaded file with name, need to be set before file is set in upload, POST only - -the output is a json file: - - ``` - { - "files":[ //the files list - { - "name":"3Oc-pika2.gco",//the name of the file - "shortname":"3Oc-pika2.gco", //the 8.3 shortname if available, if not the name of the file - "size":"83.46 KB", //the formated size of the file - "time":"2022-09-04 11:56:05" //the time when the file was modified last time, this one is optional and depend on (SD_TIMESTAMP_FEATURE) - }, - { - "name":"subdir", //the name of the file / directory - "size":"-1", //the size is -1 because it is a directory - "time":"" //no time for directories optional as depend on (SD_TIMESTAMP_FEATURE) - } - ], - "path":"/", //current path - "occupation":"52", //% of occupation - "status":"subdir created", //status - "total":"192.00 KB", //Formated total space of Filesystem - "used":"100.00 KB" //Formated used space of Filesystem - } - ``` - -### /upload - -this handler is for MKS boards using MKS communication protocol if enabled, it handle only upload on SD - -### /command - -this handler is for all commands the parameter is `cmd=...` -if it is an `[ESPXXX]` command the answer is the `[ESPXXX]` response -if it is not an `[ESPXXX]` command the answer is `ESP3D says: command forwarded` and can be ignored - -### /login - -this handler is for authentication function if enabled -possible options/arguments are: - - `DISCONNECT=YES` -it will clear current session, remove authentication cookie, set status to `disconnected` and response code to 401 - `SUBMIT=YES` -to login it will need also `PASSWORD=...` and `USER=...`, the answer will be 200 if success and 401 if failed -if user is already authenticated it can use `NEWPASSWORD=...` instead of `PASSWORD=...` to change his password, if successful answer will be returned with code 200, otherwise code will be 500 if change failed or if password format is invalid - -Output: - -- if authentified and no submission: - `{"status":"Identified","authentication_lvl":"admin"}` and code 200 -- if not authenticated and no submission: - `{"status":"Wrong authentication!","authentication_lvl":"guest"}` and code 401 - -### /config - -this handler is a shortcut to [ESP420] command in text mode, to get output in json add `json=yes` - -### /updatefw - -this handler is for FW upload and update -Answer output is : -`{"status":"..."}` if upload is successful the ESP will restart - -### /snap - -this handler is on esp32cam with camera enabled to capture a Frame -it answer by sending a jpg image - -### /description.xml - -this handler is for SSDP if enabled to present device informations - -``` - - - 1 - 0 - - http://192.168.2.178:80/ - - urn:schemas-upnp-org:device:upnp:rootdevice:1 - esp3d - / - 52332 - ESP Board - - ESP3D 3.0 - https://www.espressif.com/en/products/devkits - Espressif Systems - https://www.espressif.com - uuid:38323636-4558-4dda-9188-cda0e600cc6c - - - - -``` - -### Captive portal bypass handlers - -to avoid a redirect to index.html and so a refresh of the page, some classic handler have been added so they all go to / handler actually - -- /generate_204 -- /gconnectivitycheck.gstatic.com -- /fwlink/ diff --git a/Memo/README.md b/Memo/README.md new file mode 100644 index 000000000..53f78b307 --- /dev/null +++ b/Memo/README.md @@ -0,0 +1,8 @@ +# Memo (deprecated) + +All documentation formerly in this folder has been moved to **docs/**. + +- **Index:** [docs/MEMO_INDEX.md](../docs/MEMO_INDEX.md) +- Preferences, language packs, variables, realtime commands, Target FW, features, data structure: see **docs/**. + +This folder is kept only to avoid broken links; new content should go in **docs/**. diff --git a/Memo/data structure.odt b/Memo/data structure.odt deleted file mode 100644 index 8c540c44e..000000000 Binary files a/Memo/data structure.odt and /dev/null differ diff --git a/Memo/languagepack.md b/Memo/languagepack.md deleted file mode 100644 index 9c2867c86..000000000 --- a/Memo/languagepack.md +++ /dev/null @@ -1,62 +0,0 @@ -# Language packs - -## Generate template files - -Use the script `npm run template` to geenrate up todate template files for all packs - -Currently: - -- CNC GRBL in `languages/cncgrblpack` -- CNC grblHAL `languages/cncgrblhalpack` -- 3D Printers (all) `languages/printerpack` -- Sand Table (all) `languages/sandtablepack` - -## Generate language pack files - -- Rename the template file according the language code http://www.lingoes.net/en/translator/langcode.htm using `_` instead of `-` and add `lang-` in from of name. - so for example : - - - for french language pack, `en.json` file would be renamed to `lang-fr.json` - - for simplified chinese language pack, `en.json` file would be renamed to `lang-zh_cn.json` - - for simplified chinese language pack, `en.json` file would be renamed to `lang-zh_cn.json` - - for german language pack, `en.json` file would be renamed to `lang-de.json` - -- Modify the language pack file according to the language and test it against the WebUI - -- Compress the final pack - use the following command to compress the final pack targeting the file : - `npm run package target=languages//lang-.json` - - so for French language pack for example: - `npm run package target=languages/printerpack/lang-fr.json` - -## Compare template pack with language pack file - -This script is used to compare current language pack content against the template language pack to see if the language pack need to be updated. - -`npm run check reference=