Merge branch 'work' of github.com:espterm/espterm-firmware into work

http-comm
Ondřej Hruška 7 years ago
commit 1454987fcf
  1. 37
      README.md

@ -5,7 +5,7 @@
![Photo][photo-hw]<br> ![Photo][photo-hw]<br>
*Fig 1: Breadboard adapter developed for ESPTerm* *Fig 1: Breadboard adapter developed for ESPTerm*
Version 1.0.0 **passes most of VTTEST test cases** (from the main menu and some Xterm specific), making it As of release 1.0, ESPTerm **passes most of VTTEST test cases** (from the main menu and some Xterm specific), making it
functionally comparable to eg. gnome-terminal, terminator, konsole, GtkTerm or PuTTY. functionally comparable to eg. gnome-terminal, terminator, konsole, GtkTerm or PuTTY.
ESPTerm is **capable of running Midnight Commander** through agetty, **including full ESPTerm is **capable of running Midnight Commander** through agetty, **including full
mouse support**, provided agetty is made to believe it's Xterm, which shows ESPTerm is sufficiently well mouse support**, provided agetty is made to believe it's Xterm, which shows ESPTerm is sufficiently well
@ -27,23 +27,24 @@ You can try the web user interface here: [espterm.github.io][demo-term]
The demo is almost identical to the real thing, except, of course, it doesn't do much without the The demo is almost identical to the real thing, except, of course, it doesn't do much without the
emulator backend that runs on the ESP8266. The web version will be updated to match this repository emulator backend that runs on the ESP8266. The web version will be updated to match this repository
after each minor release. after each minor release (and sometimes in between for testing; the version currently being show-cased
can be read on the About page of the demo).
## Main features ## Main features
- **Almost complete VT102 emulation** with some extras from Xterm, eg. - **Almost complete VT102 emulation** with some extras from Xterm, eg.
- Screen size up to 80x25 - Screen size up to 80x25 (the limit can be modified when compiling from source)
- All standard text styles and 16 colors supported - All standard text styles and 16 colors supported
- Full UTF-8 support, alternate character sets - Full UTF-8 support, alternate character sets
- Standard mouse tracking modes - Standard mouse tracking modes
- You can dynamically set screen title, button labels... - You can dynamically set screen title, button labels...
- **Web Interface** - **Web Terminal Interface**
- Real-time screen update via WebSocket - Real-time screen update via WebSocket
- Button to open keyboard on Android - Mouse and keyboard input, works also on mobile
- 5 buttons under the screen for quick commands - 5 optional buttons for quick commands
- Text file upload tool with configurable delays and line endings - Text file upload tool with adjustable delays and line endings
- *Built-in help page* ([demo][demo-help]) with basic troubleshooting and command reference - *Built-in help page* ([demo][demo-help]) with basic troubleshooting and command reference
- **Robust WiFi configuration interface** (Demo: [WiFi][demo-wifi], [network][demo-network] config) - **User-friendly comprehensive WiFi configuration** (Demo: [WiFi][demo-wifi], [network][demo-network] config)
- Static IP, DHCP, channel selection, power - Static IP, DHCP, channel selection, power
- SSID search utility for finding your existing network - SSID search utility for finding your existing network
@ -121,8 +122,7 @@ and changes required by the project.
``` ```
- Install Ragel if you wish to make modifications to the ANSI sequence parser. - Install Ragel if you wish to make modifications to the ANSI sequence parser.
If not, comment out its call in `build_parser.sh`. The `.rl` file is the actual source, the `.c` is generated. If not, comment out its call in `build_parser.sh`. The `.rl` file is the actual source, the `.c` is generated.
- Install Ruby and then the `sass` package with `gem install sass` (or try some other implementation, such as - Install dependencies of the front-end submodule (`yarn install` in the front-end folder, installed PHP)
`sassc`)
- Make sure your `esphttpdconfig.mk` is set up properly - link to the SDK etc. - Make sure your `esphttpdconfig.mk` is set up properly - link to the SDK etc.
The IoT SDK is now included in the project due to problems with obtaining the correct version and patching it. The IoT SDK is now included in the project due to problems with obtaining the correct version and patching it.
@ -131,24 +131,23 @@ than welcome!
### Web resources ### Web resources
The web resources are in `html_orig`. To prepare for a build, run `build_web.sh`, which packs them and The web resources are in the `front-end` git submodule. To prepare the web resources for a build,
copies over to `html`. The compression and minification is handled by scripts in libesphttpd, specifically, run `make web`. The resulting files are copied to `html/`. The `html/` folder is then embedded in the firmware image.
it runs yuicompressor on js and css and gzip or heatshrink on the other files. The `html` folder is
then embedded in the firmware image.
It's kind of tricky to develop the web resources locally; you might want to try the "split image" It's kind of tricky to develop the web resources locally; you might want to try the "split image"
Makefile option, then you can flash just the html portion with `make htmlflash`. I haven't tried this. Makefile option, then you can flash just the html portion with `make htmlflash`. I haven't tried this.
For local development, use the `server.sh` script in `html_orig`. It's possible to talk to API of a running For local development, use the `server.sh` script in `html_orig` (more details in the front-end repo's readme).
ESP8266 from here, if you configure `_env.php` with its IP. It's possible to talk to the API endpoints of a running ESP8266 from a page served by your local server
if you configure `_env.php` with its IP.
### Flashing ### Flashing
The Makefile should automatically build the parser and web resources for you when you run `make`. The Makefile should automatically build the parser and web resources for you when you run `make`.
Sometimes it does not, particularly with `make -B`. Try just plain `make`. You can always run those The web resources are normally no re-built, because the build process is quite slow. To manually rebuild them,
build scripts manually, too. run `make web` before `make`.
To flash, just run `make flash`. To flash, just run `make flash`. It will use parameters you setup in the `esphttpdconfig.mk` file.
[releases]: https://github.com/MightyPork/esp-vt100-firmware/releases [releases]: https://github.com/MightyPork/esp-vt100-firmware/releases
[httpdlib]: https://github.com/MightyPork/libesphttpd [httpdlib]: https://github.com/MightyPork/libesphttpd

Loading…
Cancel
Save