From 563ecc882163b0c7e591c3b84a10d92611d88d5c Mon Sep 17 00:00:00 2001 From: abratchik Date: Sat, 1 Oct 2022 08:54:05 +0400 Subject: [PATCH 01/17] version 5.0 beta 2 --- .gitignore | 9 +- .travis.yml | 4 +- API.md | 61 +- CONTRIBUTING.md | 34 +- Docs/favicon-README.md | 21 - Docs/linearled/README.md | 156 ---- Docs/linearled/linearled.c | 29 - Docs/mygodsitsfullofcats.png | Bin 632096 -> 0 bytes Docs/twocatsactually.png | Bin 568756 -> 0 bytes README.md | 267 +++--- app_httpd.cpp | 885 ------------------ data/default_cam.json | 31 + data/default_conn.json | 10 + data/default_httpd.json | 3 + data/www/dump.html | 140 +++ data/www/error.html | 16 + {Docs => data/www}/favicon-16x16.png | Bin {Docs => data/www}/favicon-32x32.png | Bin {Docs => data/www}/favicon.ico | Bin index_ov2640.h => data/www/index_ov2640.html | 84 +- index_ov3660.h => data/www/index_ov3660.html | 30 +- index_other.h => data/www/index_simple.html | 260 +----- {Docs => data/www}/logo.png | Bin {Docs => data/www}/logo.svg | 0 data/www/portal.html | 27 + data/www/setup.html | 24 + data/www/stream.css | 38 + data/www/streamviewer.html | 106 +++ css.h => data/www/style.css | 20 +- data/www/ws.js | 26 + esp32-cam-webserver.ino | 897 +++---------------- myconfig.sample.h | 197 ---- platformio.ini | 6 +- src/app_cam.cpp | 233 +++++ src/app_cam.h | 93 ++ src/app_component.cpp | 67 ++ src/app_component.h | 46 + src/app_config.h | 70 ++ src/app_conn.cpp | 385 ++++++++ src/app_conn.h | 121 +++ src/app_httpd.cpp | 479 ++++++++++ src/app_httpd.h | 103 +++ camera_pins.h => src/camera_pins.h | 0 src/favicons.h | 520 ----------- src/jsonlib/README.md | 5 - src/jsonlib/jsonlib-LICENSE | 201 ----- src/jsonlib/jsonlib.cpp | 121 --- src/jsonlib/jsonlib.h | 15 - src/logo.h | 137 --- src/parsebytes.h | 5 + src/storage.cpp | 103 +++ src/storage.h | 33 + src/version.h | 4 - storage.cpp | 211 ----- storage.h | 14 - 55 files changed, 2583 insertions(+), 3764 deletions(-) delete mode 100644 Docs/favicon-README.md delete mode 100644 Docs/linearled/README.md delete mode 100644 Docs/linearled/linearled.c delete mode 100644 Docs/mygodsitsfullofcats.png delete mode 100644 Docs/twocatsactually.png delete mode 100644 app_httpd.cpp create mode 100755 data/default_cam.json create mode 100644 data/default_conn.json create mode 100644 data/default_httpd.json create mode 100644 data/www/dump.html create mode 100644 data/www/error.html rename {Docs => data/www}/favicon-16x16.png (100%) rename {Docs => data/www}/favicon-32x32.png (100%) rename {Docs => data/www}/favicon.ico (100%) rename index_ov2640.h => data/www/index_ov2640.html (90%) rename index_ov3660.h => data/www/index_ov3660.html (96%) rename index_other.h => data/www/index_simple.html (54%) rename {Docs => data/www}/logo.png (100%) rename {Docs => data/www}/logo.svg (100%) create mode 100644 data/www/portal.html create mode 100644 data/www/setup.html create mode 100644 data/www/stream.css create mode 100644 data/www/streamviewer.html rename css.h => data/www/style.css (96%) create mode 100644 data/www/ws.js delete mode 100644 myconfig.sample.h create mode 100644 src/app_cam.cpp create mode 100644 src/app_cam.h create mode 100644 src/app_component.cpp create mode 100644 src/app_component.h create mode 100644 src/app_config.h create mode 100644 src/app_conn.cpp create mode 100644 src/app_conn.h create mode 100644 src/app_httpd.cpp create mode 100644 src/app_httpd.h rename camera_pins.h => src/camera_pins.h (100%) delete mode 100644 src/favicons.h delete mode 100644 src/jsonlib/README.md delete mode 100644 src/jsonlib/jsonlib-LICENSE delete mode 100644 src/jsonlib/jsonlib.cpp delete mode 100644 src/jsonlib/jsonlib.h delete mode 100644 src/logo.h create mode 100644 src/storage.cpp create mode 100644 src/storage.h delete mode 100644 src/version.h delete mode 100644 storage.cpp delete mode 100644 storage.h diff --git a/.gitignore b/.gitignore index 4dce4cfb..22006d52 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,12 @@ -myconfig.h .pioenvs .piolibdeps .clang_complete .gcc-flags.json .pio -.vscode \ No newline at end of file +.vscode +.DS_Store +.idea +*.code-workspace +/data/conn.json +/data/cam.json +/data/httpd.json \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f6bdf9b8..df24e30c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,9 +34,7 @@ script: - cd $TRAVIS_BUILD_DIR - export PATH="$HOME/arduino_ide:$PATH" - arduino --board esp32:esp32:esp32:PSRAM=enabled,PartitionScheme=min_spiffs,CPUFreq=240,FlashMode=qio,FlashFreq=80,DebugLevel=none --pref compiler.warning_level=all --save-prefs - - arduino --verbose --verify esp32-cam-webserver.ino - - cp --preserve --verbose myconfig.sample.h myconfig.h - - arduino --verbose --verify esp32-cam-webserver.ino + # - arduino --verbose --verify esp32-cam-webserver.ino - commented to let platformio to download libs - platformio run diff --git a/API.md b/API.md index 563011e5..6fa1db7c 100644 --- a/API.md +++ b/API.md @@ -1,33 +1,28 @@ # Basic HTTP Commands; -It's an API Jim, but not as we know it - -The WebUI and camera server communicate entirely via HTTP requests and responses; this makes controlling all functions of the camera via GET requests possible. An API in effect. +The WebUI and camera server communicate entirely via HTTP requests and responses; +this makes controlling all functions of the camera via GET requests possible. ## URI's -### Http Port -* `/` - Default index -* `/?view=full|simple|portal` - Go direct to specific index -* `/capture` - Return a Jpeg snapshot image -* `/status` - Returns a JSON string with all camera status / pairs listed -* `/control?var=&val=` - Set `` to `` -* `/dump` - Status page -* `/stop` - End all active streams - -### Stream Port -* `/` - Raw stream -* `/view` - Stream viewer +### Web UI pages +* `/` or `/portal` - Default index (portal) +* `/view?mode=full|simple|stream|still` - Go direct to specific page: +* - full: taking still and video with complete set of camera controls +* - simple: taking still and video with limited set of camera controls +* - stream: starting video capture with full screen mode +* - still: taking a still image with full screen mode +* `/dump` - Status page (automatically refreshed every 5 sec) -## *key / val* settings and commands +### Special *key / val* settings and commands -Call the `/status` URI to recieve a JSON response containing all the available settings and current value. +* `/control?var=&val=` - Set a Control Variable specified by `` to `` +* `/status` - JSON response containing camera settings +* `/system` - JSON response containing all parameters displayed on the `/dump` page -Call `/control?var=&val=` with a settings key and value to set camera properties or trigger actions. - -#### Settings +#### Supported Control Variables: ``` lamp - Lamp value in percent; integer, 0 - 100 (-1 = disabled) framesize - See below -min_frame_time - Minimal frame duration in ms; used to limit max FPS. Must be positive integer +frame_rate - Frame rate in FPS. Must be positive integer quality - 10 to 63 (ov3660: 4 to 10) contrast - -2 to 2 (ov3660: -3 to 3) brightness - -2 to 2 (ov3660: -3 to 3) @@ -58,13 +53,7 @@ colorbar - Overlays a color test pattern on the stream; integer, 1 = enab face_detect - Face Detection; 1 = enabled, Only settable if framesize <= 4 (CIF) face_recognize - Face recognition; 1 = enabled, only settable if Face detection is already enabled ``` -#### Read Only -These values are returned in the `/status` JSON response, but cannot be set via the `/control` URI. -``` -cam_name - Camera Name; String -code_ver - Code compile date and time; String -stream_url - Raw stream URL; string -``` + ##### Framesize values These may vary between different ESP framework releases ``` @@ -84,14 +73,16 @@ Only for 3Mp+ camera modules: 14 - FHD (1920x1080) 17 - QXGA (2048x1536) ``` + #### Commands -These are commands; they can be sent by calling the `/control` URI with them as the `` *(a `` must also be supplied, but can be any value and is ignored)*. +These are commands; they can be sent by calling the `/control` URI with them as +the `` *(a `` must also be supplied, but can be any value and is ignored)*. ``` -face_enroll - Enroll a new face in the FaceDB (only when face recognition is avctive) save_prefs - Saves preferences file clear_prefs - Deletes the preferences file -reboot - Reboots the camera +reboot - Reboots the board ``` + ## Examples * Flash light: on/mid/off * `http:///control?var=lamp&val=100` @@ -100,11 +91,13 @@ reboot - Reboots the camera * Set resolution to VGA * `http:///control?var=framesize&val=8` * Show camera details and settings - * All settings are returned via single `status` call in [JSON](https://www.json.org/) format. + * All settings are returned via single `status` call in [JSON](https://www.json.org/) + format. * `http:///status` * Returns: - ``` {"lamp":0,"autolamp":0,"min_frame_time":0,"framesize":9,"quality":10,"xclk":8,"brightness":0,"contrast":0,"saturation":0,"sharpness":0,"special_effect":0,"wb_mode":0,"awb":1,"awb_gain":1,"aec":1,"aec2":0,"ae_level":0,"aec_value":204,"agc":1,"agc_gain":0,"gainceiling":0,"bpc":0,"wpc":1,"raw_gma":1,"lenc":1,"vflip":1,"hmirror":1,"dcw":1,"colorbar":0,"cam_name":"ESP32 test camera","code_ver":"Mar 10 2022 @ 14:00:45","rotate":"0","stream_url":"http://10.0.0.181:81/"}``` + ``` {"lamp":0,"autolamp":0,"frame_rate":0,"framesize":9,"quality":10,"xclk":8,"brightness":0,"contrast":0,"saturation":0,"sharpness":0,"special_effect":0,"wb_mode":0,"awb":1,"awb_gain":1,"aec":1,"aec2":0,"ae_level":0,"aec_value":204,"agc":1,"agc_gain":0,"gainceiling":0,"bpc":0,"wpc":1,"raw_gma":1,"lenc":1,"vflip":1,"hmirror":1,"dcw":1,"colorbar":0,"cam_name":"ESP32 test camera","code_ver":"Mar 10 2022 @ 14:00:45","rotate":"0","stream_url":"ws:///ws"}``` * Reboot the camera * `http:///control?var=reboot&val=0` -You can try these yourself in a browser address bar, from the commandline with `curl` and co. or use them programatically from your scripting language of choice. +You can try these yourself in a browser address bar, from the commandline with `curl` +and co. or use them programatically from your scripting language of choice. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2efd1614..18961d0a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,6 @@ # Contributing to ESP32-CAM revisited -I love your input! and want to make contributing to this project as easy and transparent as possible, whether it's: +We love your input and want to make contributing to this project as easy and transparent +as possible, whether it's: - Reporting a bug - Discussing the current state of the code @@ -7,11 +8,14 @@ I love your input! and want to make contributing to this project as easy and tra - Proposing new features - Becoming a maintainer -## I Develop with Github -I use github to host code, to track issues and feature requests, as well as accept pull requests. +## We Develop with Github +We use github to host code, to track issues and feature requests, as well as accept pull +requests. -## I Use [Github Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests -Pull requests are the best way to propose changes to the codebase (I use [Github Flow](https://guides.github.com/introduction/flow/index.html)). I actively welcome your pull requests: +## We Use [Github Flow](https://guides.github.com/introduction/flow/index.html) +So All Code Changes Happen Through Pull Requests. Pull requests are the best way to +propose changes to the codebase (use [Github Flow](https://guides.github.com/introduction/flow/index.html)). +We actively welcome your pull requests: 1. Fork the repo and create your branch from `master`. 2. Give your branch a clear descriptive name and do your changes there. @@ -20,10 +24,12 @@ Pull requests are the best way to propose changes to the codebase (I use [Github 5. Clearly describe your changes and the reason for them in the pull request. ## Any contributions you make will be under the GNU Lesser General Public License v2.1 -In short, when you submit code changes, your submissions are understood to be under the same [License](./LICENSE) that covers the project. +In short, when you submit code changes, your submissions are understood to be under +the same [License](./LICENSE) that covers the project. -## Report bugs using Github's [issues](https://github.com/easytarget/esp32-cam-webserver/issues) -We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy! +## Report bugs using Github's issues +We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that +easy! ## Write bug reports with detail, background, and sample code @@ -34,16 +40,16 @@ We use GitHub issues to track public bugs. Report a bug by opening a new issue; - Be specific! - What you expected would happen - What actually happens -- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) - -People *love* thorough bug reports. I'm not even kidding. +- Notes (possibly including why you think this might be happening, or stuff you + tried that didn't work) + ## Use a Consistent Coding Style * 4 spaces for indentation rather than tabs in the main code ## License -By contributing, you agree that your contributions will be licensed under its GNU Lesser General Public License v2.1 +By contributing, you agree that your contributions will be licensed under its GNU +Lesser General Public License v2.1 + -## References -This document was adapted from the open-source contribution guidelines for [Facebook's Draft](https://github.com/facebook/draft-js/blob/a9316a723f9e918afde44dea68b5f9f39b7d9b00/CONTRIBUTING.md) diff --git a/Docs/favicon-README.md b/Docs/favicon-README.md deleted file mode 100644 index 524a6a27..00000000 --- a/Docs/favicon-README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Favicons - -Source: A logo I created from the espressif logo, using inkscape - -![logo image](../Docs/logo.svg) - -## The 16x16 and 32x32 png images were extracted from a Favicon Package - -This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) - -A very handy site, dont forget to select compression options in the 'html5' section, they are in a hard to spot tab. Doing this reduced the `.png`sizes by ~74% :-) - -## The favicon.ico itself came from the command line - -The [Imagemagick](https://imagemagick.org/) tool provides a simple image converter that can create `.ico` files from a source image in another format. I simply needed to use this on the 32x32 png icon to make a suitably high-definition icon file. -``` -$ convert favicon-32x32.png favicon.ico -``` - -## favicons.h -The icon files were packed into the `favicons.h` header using `xxd -i ` to generate the C compatible data structures, and then editing that with comments and adding PROGMEM directives to save on ram use. They should be stable and unlikely to change in the future. diff --git a/Docs/linearled/README.md b/Docs/linearled/README.md deleted file mode 100644 index ab87d947..00000000 --- a/Docs/linearled/README.md +++ /dev/null @@ -1,156 +0,0 @@ -## A Simple C program used to debug and examine the log function I used for LED control - -The bit width (precision) for the PWM can be specified (max. 16 bit) - -The Input values are integer percentages from 0-100. - -The Output is a logarithmically scaling integer between 0 and the max PWM value. - -``` C -/* Dump linear led values */ -#include "stdio.h" -#include -#include - -//int pwmBits = 9; // Number of PWM bits - -int main(int argc, char **argv) { - if (argc != 2) { - printf("\nERROR: This utility expects a single parameter; the bit-width of the PWM stream\n\n"); - return 1; } - - int pwmBits = atoi(argv[1]); - - if (pwmBits < 2 || pwmBits > 16) { - printf("\nERROR: '%s' is not an integer in the range 2-16.\n\n", argv[1]); - return 1; } - - int pwmMax = pow(2,pwmBits)-1; - - printf("\nThe PWM Bit width (resolution) specified is %i, pwm range is from 0 to %i\n-----------\n", pwmBits, pwmMax); - - for (int val = 0; val <= 100; val++) { - int pwm = round((pow(2,(1+(val*0.02)))-2)/6*pwmMax); - printf(" %3i : %5i\n", val, pwm); - } - printf("\n"); - return 0; -} -``` - -Adjust the width as necessary and compile with: - - $ gcc linearled.c -o linearled -lm - -And run to see the results: -```bash -$ ./linearled 9 - -The PWM Bit width (resolution) specified is 9, pwm range is from 0 to 511 ------------ - 0 : 0 - 1 : 2 - 2 : 5 - 3 : 7 - 4 : 10 - 5 : 12 - 6 : 15 - 7 : 17 - 8 : 20 - 9 : 23 - 10 : 25 - 11 : 28 - 12 : 31 - 13 : 34 - 14 : 36 - 15 : 39 - 16 : 42 - 17 : 45 - 18 : 48 - 19 : 51 - 20 : 54 - 21 : 58 - 22 : 61 - 23 : 64 - 24 : 67 - 25 : 71 - 26 : 74 - 27 : 77 - 28 : 81 - 29 : 84 - 30 : 88 - 31 : 91 - 32 : 95 - 33 : 99 - 34 : 103 - 35 : 106 - 36 : 110 - 37 : 114 - 38 : 118 - 39 : 122 - 40 : 126 - 41 : 130 - 42 : 135 - 43 : 139 - 44 : 143 - 45 : 148 - 46 : 152 - 47 : 156 - 48 : 161 - 49 : 166 - 50 : 170 - 51 : 175 - 52 : 180 - 53 : 185 - 54 : 190 - 55 : 195 - 56 : 200 - 57 : 205 - 58 : 210 - 59 : 216 - 60 : 221 - 61 : 226 - 62 : 232 - 63 : 238 - 64 : 243 - 65 : 249 - 66 : 255 - 67 : 261 - 68 : 267 - 69 : 273 - 70 : 279 - 71 : 285 - 72 : 292 - 73 : 298 - 74 : 305 - 75 : 311 - 76 : 318 - 77 : 325 - 78 : 332 - 79 : 339 - 80 : 346 - 81 : 353 - 82 : 361 - 83 : 368 - 84 : 375 - 85 : 383 - 86 : 391 - 87 : 399 - 88 : 407 - 89 : 415 - 90 : 423 - 91 : 431 - 92 : 439 - 93 : 448 - 94 : 457 - 95 : 465 - 96 : 474 - 97 : 483 - 98 : 492 - 99 : 502 - 100 : 511 -``` - -The code can be adapted into your custom LED setting function - - diff --git a/Docs/linearled/linearled.c b/Docs/linearled/linearled.c deleted file mode 100644 index 98b2e693..00000000 --- a/Docs/linearled/linearled.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Dump linear led values */ -#include "stdio.h" -#include -#include - -//int pwmBits = 9; // Number of PWM bits - -int main(int argc, char **argv) { - if (argc != 2) { - printf("\nERROR: This utility expects a single parameter; the bit-width of the PWM stream\n\n"); - return 1; } - - int pwmBits = atoi(argv[1]); - - if (pwmBits < 2 || pwmBits > 16) { - printf("\nERROR: '%s' is not an integer in the range 2-16.\n\n", argv[1]); - return 1; } - - int pwmMax = pow(2,pwmBits)-1; - - printf("\nThe PWM Bit width (resolution) specified is %i, pwm range is from 0 to %i\n-----------\n", pwmBits, pwmMax); - - for (int val = 0; val <= 100; val++) { - int pwm = round((pow(2,(1+(val*0.02)))-2)/6*pwmMax); - printf(" %3i : %5i\n", val, pwm); - } - printf("\n"); - return 0; -} diff --git a/Docs/mygodsitsfullofcats.png b/Docs/mygodsitsfullofcats.png deleted file mode 100644 index 0fe2b07bfaae7751fd00c925575c90aa0ad6c88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632096 zcmZsBWl)_<(=G10akq`TySqDq;10nhxU+Ex?y_-7a0w9HJy?P}1b5pwH}7}rd(Wv` zcU4V2{jcZgnbm80dSW!xI(_Ue?M>@Qi?iA ze-VIW6%7SN38g3_spFG(+U1*P^FjCG)z|@iqobR6;sb)ur{-rZK@Lle&*vQ^m`pYgp^I0O7`Q76wj*{6MmIYolNpVtC!@B;q)V)wXniX(k(T)f!_`(qpgJi+F< zFW`~hjc@KPPt?57S&B5gRqsV6G zy;>4>qWI1cY2e{*1N!21!cCpcbol*FwK{lmc$TT)`qtKc6#9AQ3%~21p#!($MYf{V z(5~y(5+ai(NBEI=8~v&uyKFBU1D^w@3GfLX;-Wffe1xnR*a>j4+6P@2>CuS28eoDmWx-FaOdT@xeapljxrA_e+Gm#hs zAAFZ9KJ-J^^<>Js@tu=>UsioJyGdOMiLdjUS1l)ejrViDVwb|~W_6-^4bPaJ zN&8Rim-pVUq9@N8--55sM0TUsLo!Avf{+Z^L}DQCt5Jl869he;3{50Eu;-&r=4D7d zjRCYBRn%ogiLRAM;sV?wSKO$b!9f#ULC)&vonDVhUVfld>P_@$BnRN-k3Y zuhGMm|G;O@QW&l`3swD%FxdO`L+j1mpz)%yE117wivOnj{l-u1_QQ$K4z|4O?R>#- zQ}A`G&z<@khs(pAcxm8{B#UW_c-?!rxOoGjo$n;uN!tl$M?X5`-JEaJhj($k1*tb< z$`DI)B|F0yvXP7aAvjCeKjaH@w;x?=*Rg!amwB-#&4SnR#p|oY&X79r9iE!--9(=I zm@(wNe6>$V7sGy4KHHocQ+?8P|63%@a}LRRCVI5XuF)}&6&Tf_`ldO z4>`kviaB8ujQTqcgge3+CiH6MMo5-DA*^|?Wz(+rjPwo8?=(IK;+;_xBAy?_D1`q` zmWtxFHPLk>0E47;G=I?)`5R`>W-Aw3?u+F$(B?3$!a$nRD)(jBB`9(;a3F%zXRA-- zEPHxCbMsp2K4|eoa69fp;K<`VYya`Z?-?&_2CA2VO&AO1r~8fiIOokaQ?~xKl6XSj z$_69QAKw1|PPe$2+VXiJl!*#-_P!Q{UE$&2v+UBH+S+;lSZ#L`m$B688y~3!(huHEs9uIhEbu|mU<55R zym>dpmK3}idCdzy9A}CRn7)I>cVH{lCN<^BhZ~;*qt4b0eYQ5<+jU(JwYLp65u-?< znpU^%$Qf)h22#N=n-CU(9pw7X_4@<8+Hml@^^!lvy${OEoU%DxZ|F1#{3w~#?ox8y zO}^?A5;*^}uP>?>B92<{WTh|a|K9VQFY(dmC3QP{8f1wPm485<^L!2^vO=xS^bfu# zp6O?LyezqNhHnNfYq$D`I`mw&cD}Guv@JsBGtdK$=HI8>TzpuAgC9`a4jWIB+w%nv z3t_Xw&$5*ubQw{G8`CH{!c(7?dpT`^;waU2^$zi~9j#G}$+bXS9un zoJ`lJBU5^|)%+6h_Z;=E6Gy&HNV+%6iuEO|I7;0kcH6UFn?JVK3j99)7WfVDc2NA> zJ!3#WdO>M}2XYcSRPifWQsd@K7h5*+S{xYmxGQ4{gH*xRv*VA=_%M+P^& zit~12f@^x0*FcOlf7;B= z`q13>*Sg2`2~66JAoxXNZ;ZP4v-visp!mEiDwAN12)S{t6f3hrNYM>zj!Aa#G>&TjQpdt3B&8xU0Axq3c_j{9))N4*=2%GUK()Ozs6 zhw5cTc{|W0N}DY#A+Fw!tn*U$vPm4)wwuV77N&X?-fI>9$CT@Q!rQX0!xk-jsKc=9 z@>#ukY`>jXBsf6O$PMuFC~v+C!(xgme#d;-Suv2!-`_ADZYwXaYoXtR{dT}zUleXk zar|Y87)JcQss2dCXZ3lz);DVv+2sC)oYw8_ZNzMTq;vXwsrj~h`q@oCi0EabV>_e6ycx~p62)i3 zW2?z_AT=?PKpau+6=ltjpn3&)_$KHqw>Gq6xPJa;{c0_iU)v*Hn};PvFjD;uTRp@X ztF;%Mzb{gioUhS_AUfClk*$7$t8Lq_ts^|}KD-@n(FDA;X{!p0%tM5b@{@A2}lp^=m z^+BisrxO|&+%r%Ua`m%joE@Y5by2}jmeWV#hewyYBYo#Lm$AZIJ>3YwPXw1E;_#bi z+Iuo)Uie{s0P>b#an%mkYrlun*JA@18#8VBGFolZT~6{cG1-sS_6M}{8$zCs z5Gld-^agtFLhotKWzRbi+Ye|A0hEm=1cA%VZF~=|y)SXwiSMiPg!e-DKZ7X(wkB&_ z(7`aef$wMsfn+~l5saQ#+m8K~T!{kqtd=fZA6|Pxte>Hd7lT%X%{)M@ugFGz zFrCjgX6T*Q-rEEwFg;i5^&?CVTc&-Aw$dFa8~5ZseN?Xfk3nQz^L5-ea01&-95=KN zuigW1BfXoQ*bA>jYkEW>|02P2qC7lw(y;es6{IUQ_1%&_qa`N6dwt5{-BpOBD>S*! zXZ(}+9{lC8Z3kkf)7F4Xlmi6xs@G={HK0zq1I|sj1kp>rhycU8!`tqfi1Hu?KD&6X zOWIpiQGF+0!iR*n27^O`-(!R60sfP=Zfu0n(f1b{v1(rXZ(z*hZYM=f;>d;>2SOAri~La$AsJ-&z1L)hLy)Gv<| z{nizIf|&#Og{$KlCRsgT2yfe~(8JE>%OQ1W=z?bypV#UB+lEC3=ylJ=0#;~XG1!Go=-gozqCtV*`&MeMDy`rCb?(}M-kFt#5~*&0S9@Z5 z=}+tn4uWSh#5}1BuQNe(zzq2*vKcr(<@!wc^F{q(yyorqIwZnpWRNb+33Ptph1Gd) zyR{n(O;7__{E^^#MN2s%A&9O4dhP>?G}|roUAznBJ(xWBu_??>5BL&D-gw#>_I938 zU+&Qq_7J~qi@FXFei7IZFIn}ibt22;??8Q7W8NO0?o&KCcuR0y9;$B$Zzsy?$-ICm zUETVtU1MXHMMh>8cjxtu;lH1Ii~ReMdtm8JVVNNz1U>t!=f(fp(Xr3rN>Cz3uGjKg zjENEA0n7n!JZ;XRr}u088|tEtg-xAvo^pt0`~E4(84))yt~X?O|cF^|#BggMmeHOp=f()cW_-E&Hh68q8akE<|iM zn)t`Ys^gDsCtAu=3t(+C$)+9o2Ry zd%3c{U0Jf#;ILhqI8b%qkMXX0VxIUaQnnRKQYe#<$lrHV(c8}@aA@YU(^n58aF%*G z4GwV&GjxvB_3vMS$~1w#L3Mret!M0ez!11FG(*XC4nwVrYm zSousNzC4q-ghv<%n0e(9U|Et?${bf-HJpHkx1Q2i8FttOB7JBeAxG`cirrQfKd(GxPn>} z-T%oRl|BLzUYmiC9E}&s?cVb3w9g&lm+YS|zrF`vJZ?flB<7*UP`6ZRKxL1+hBQ1_ z<1MXB0Ts|J=SjFXH$ON>>U!=>HpPQ%G9WbukY2X0&^cQXFW=cbEBoRuv!UBvE%J`V zlV3LYuwY8hL|VT>ykjA!E}G&>Zn?WUwVPo%1dMrd^H6;4`}ZpkPCMz|8$S;SE)caf zH2;gMXn9p=9|7v2GJ2Rb*!Gq8@Aaa)6pdG%`Oji`4P8M7b6(-j-`Y`m(Zev{2+SYxXfW9h~vhkh%$!?96nKe(D^T{bYQk52kE%qe0GhERv?MQ0LmP<{tVRscekJpaEBo6#`i0> z+Qh_yZr@5X8zTxDm-V(#LkBpCf4dch-=gZZlpavFIS}yT89)i#b7xzGh?d)I zCg^{y_uqxTVvwMP`lk;4k3|k&`JYG((O}*u1^l7v+Gq`bUX6^BHteamJo8+FXwa{| zI-a~1m}(O=Kl@*~?5+qGqi^aNdS7z0o-LDg#r8ze?a+{KDqCJDxSV)9M#T9VfdA7gx?aI5THa( zWOrf~QZzMn2$rgXO=U=mhGM0R40;KT;-D0@0nm%vu7~>*cZj)+3Yv1HfsBj>9+u>! z1cBxm2PZW$oDRG)vQ{ykB>YYrO#+Q1aT3&A2p@3vB|s_(R7M_0hBTOs%?YPMxlb`D zuB@a_kZhHNrh=`>0~dy*4-*$n6s8(vNr>gq6Lx`v)ZXJnD17leSg9CKERmMh$VRCI zGYLwIw@Ly;hh|Y0r#ir9q?oFgu8o@#T#4byUS3#+5aH8E!e#)ND4l>xgDM=_ApB&B z_*oKKMsWjb8LD_ZUfF;)Ea;{^gd(6$`mCLd@akMk^3*HL&CQK|_TpQ}BjT^l*H8%( zxp*5JJ6pMECQ&(+7zOHajyr5n&{}w?Lcu{oaj{(i3D<4=tZb3G6u3}XP9^LQ22Q9P zs8DWKdre+5GM7qX@$=*~I|q5wzVDR+&zVLPf0$m`d>Zw-&C^gIt7Cs>?;k!aU# zr0s-=Jw9gaT8I_%>kM2NN&>>l%uMARTn|3AC%(a{(C~VeTWbVv$6U=@00T7@Chp@l zT!T!!aY5B;Ca3QV#>lG4be zkCCWgomi~iRg@v~vA-w2MTbjynJO*UuXWGD|qje_Dy{hU97&si^H$)>HyciR$+@tUO7 z9%Qh}D2|FlrII|9nw@dIE<^co5SXISePFZvjj{0Y4f}9Vg5DodZlhxU60|ij4aSwh zq4rfZWXjLJsO=^XW$>+FQDs|CHFPjwN&?O7x+wV;*thfDkx=qvfml-ev_MwzIbO#^ zfU)>W(S`(HXGY*qN-@Zs0)Ej!!&;1wMefj2eN$dbrJG-Vu_C^Bq|Gk`S+w?pegP~o zab}|8HM!#q{Ukur=x15yBCWC*;^)T1jtySKF^H3els2^)oU%fEe1++tA^cZn_y}&lLS; za;<5la3bt5CMnA7{$TlsGN`gG?z zu*oL_pb<)vTCLTa9ToHYac|O;8 zM@zb@F$lZw!ZuQ$8cQ?IcjCxcQIiJyXlE%sf@4=sJGNGUN4EWtt{Nx?l<2yJ_4$1u z2WIzFC?$p1=@q0hLmA#o;z)%^HW&*zzfV z2VW5?3thCJzws(%P>DLrH?Ra~6?=oS{=q#1Hs|1=z{qf)1V< zD>=%*)mG8~fgTC5uSLK~T4|8UgoNu<8KekT?uq=A#&rQzC@V`DnsPSIaHIs3Vkw!1 ztQp*FCt^L;+!9H}z+DGg@z!@Q7>S$B6g=Plz4md6z*ETx!W&{eTD$P7)a(>wUMfTU zeYuQiWdY4#o2JOLwGeg>c55w3-iiAyhdwRL**e`HMzTqCGZ3HMI zhvBEfoQWvh2$Oh|6iB8(GDiveZqgwE4i%jcQHiRI<0rL0pY^T0j%c`}2^ABhpwetv zTFDjo(Bt83fOCMTz$q5%H|3~jT$rNYGO1d8bWKH^Nl+>F1Uo;wma$Ae3n~nCc2X)&(wvo`Ms$1D^BlVq4h-e{Y8GL* zn9k$!cWS6{hj}X~E+QB3Wp`%mok|{R2$7}Va20(zLSZ4y*ii?af{9^_T}<+1aj~b2 zpPxJC4_Ij~LF$K-6a@p=7+=gdI)z^>V-hJz!bG}UV@J<5DGD<5`SGCvfbd9FxSI=< z7)pa`t7R;-O;Zkh)gtgv3^V=Hm{oo(maDNm4jeoYL?QV~7B?4?$+e6q3u1FLHyZAk zEaPI2ytg5nbM3PJrhv#xZ)D_kuu6Q}CX%3akHkM2H>hsag%wU{k6$zf7a~{IAUoJ7 zRwn0Y=F3s4*c>PyenF{ms7s<(f{GgrhwnJlg#*Q`S6w+A{5OYSL_~9Na}P{TqWu+e z$WwbHJj@N@UV>p#S~O$P{&<{C36|y$6=)3+`u)>ypEOT-Qek3}74%#S?S~R#4r5i9 z<0JDwkN}&_vJ=#hIr&c;4waz8k`Lnm0955XQN>xjm{CH7W#*z=Ml5>{Y^jYb9tIlK zXrihUgVFpCUzLAn_Y~Powb7~# z2gS(zs)%5{$uQ+DJt!`rR|_b{l0v;LO`F*Rep$7`E|r!+Uf|Z$TQ5|g8{8_5=0PuV zLXt%4!~2a(W2TnDV>!1}9~6I!YBwn-tN9ekx|E)h7KoQ0QmW7>BYu9^vC&1HU9~6$ zsPvy(i$<>Gsa47T@zr|&EC!o|-7HZ4c->Bw4(Ksd&)}jtk%b5lES8!0h|NOOCqyi? zW@=ekR-C^C}lg`CQ4xM56 zDu+Y;m8{FhN|oilHbx$vg$l|&4c(2|uQRmpf8PSYm{|zmO4~meqaDzKStF@&U?eKe zQ(uJ?hk}6sTEQav^JP8m9DSAQm=yb=rzS!fxx4%4P#8BWAVg_tbS$5)9Q)k2`$r|4lSm_oFwGSJ7w zvVt@}dYu|+9)Q%Se~eW>8_6!N<@!O&F`<61V_%O$G9A*2RBC(!Q6LV{7$I?wnu?qL zVl-C8ft3lO6!j-6)K~~uG9$!_Yp$eO&ZfD|2-c&&-}QR#MK~p*hXgL;gU2#DuY4)4 zZ$5o=rN4E9==fK+i!+X}`K}STa9Q;Fi{IaD6 z`XgQ`x72o(qu*M__W>0Jp&#Bbg^{m+>s}E;ENsk+bqtG7iesYBlIsi%CT1*c#UwPd zyXd9L6VQ*Z5)bMUXz#ekJ#8cQe=j zNX1%1ztMO%_7k7$`s{*_gY^#U?L``t3O!<=B)*5O10l|Uo4(KEl_Lpw+Nsszc0z)$ zbS{;8IliecgyH08ibaDPd|)h8NQ_%Sxi~v56Ro!#Ra?BG=iIG2h5>~mHHtNl6W619 zRH7S$BXyw?O8=9INfEF6nD z4LMWh20QGyN|n({QpP4N6h40cq0=;`ji#`MvsCfLY8E*OsuHk!iA6;tlm{17xgtZa*IcQpN5T0#VuyI|G{--E8;UgWw7+|1d&HuXN zcIS2;&AnxEac;*P1DV#?=1I7GxtfH!q`by}RqwY12byI^O%Umu@tz9dzReNh_{vm9 zViieh`K)&Tb$rRK!Tpbv=ca1ZrVvK8)5@qLOaxu3uNsrF21aO0J7@RZO4jWMrh)zGNEV6(QPBrj_1KxS-O41XD_k>**dSJppv z^$e6N4-X%yWN0U1H?+;UG}(yjk>rTANR*h8_ujb1&Zgzu$7NXCZh%C$vyqS5Ub+K^ zaYijv3{X^vz+Q<+qWUD1vr`>ew?oj@E>{d)uQr+mv4YqbAVYd=ZXA zwLgvVTqBPjjZ%uBXn>QnMQ&gzbG2A*S|6=0C z&?xFino=oMTGm5G_Deqp0N+e6!noxR=UMb0#(F_o=NPh9HQA493lSJ4()Nlao}+LjhF8Ai0A=nF6gV2=E6aqCIY^nM`9U* zko%ig(Fvy(xGT+vt!^)=M@(?Q`K!b(3Tg}yb}8N<@i5;t1YQVRMaV3kbNDb?ny(As z=3atbcHvK5Xbu;GP^3JbLCPwDp{i^#^Pr7*Lu!W}%ZF|`6S@S=qKj59H^Yq(VpT^PRObcyRa7> zM9(+5W2Qn9IYzBW>{sl-dn~7`$q^UIIF=;FsfHd%(U{3JqsR@?%i-`D;)z{!!J0qKunO_o^@$x#4m?WOX)tM$bdfZLev@p9-Pk<%vITt>*0TU!(+ zHevz2Q;MS$&K#6IVk*lFPB-sFh2Ek8c&Os>*8`5HZRIkl^`-67vaKidf3g_v%g2w9 z99bvV=E^V+F4<}_4y<9{AVpINl@k&PHk)AC4)I{23&j-DMo`H^;kFCPvLVk{#d%T2 zl*)MG%`r_NLswvQbdIEnyh**`!ty^npipwkZ!;(i07<*!v+5*eut})sN*U*5x5za~ zQ*gCQDqt0@>Ck^^KZ=5ka?x*C4QfYHZzi8RzyAtLMK&0wk8ys{`l{||{R=Z;g2vSG zJr9EuE2+F4?9LO<DVrBJ;>x_XZdN zb1J6c(6fX=$Z~kmY{GG^J%jPkCs@oYwT$B`mnB==Yg4(d^4CTgBvBjEtcg zKJ>nzvJjFaqsa(;FI}lO->eWjXjIBk)tHsznAX0t9k{!_#py3e>}1y>tEE{`(ebM> zEH(YpRo=9iMBQ>n3QHgia2P^6jRTVBb@q&V)3vWw}!p+9S zSdYi)&e895f{RYZh7~cU^&+;~10xg^_RX&|P^eM|$cF5Ynir@uMrs)>t%K4L(Dn?9 zWjNK^hasMl!m^PZv7zq(J!)xM}VRDu9Um2Uu!W#gAYYG8tuZ zV=9_vr$Ww;BsN^}&wUbnQ)F2pWpK=;|5+ zsAueU`S#LAmP9@Il4Z5s>OaPxv)uG~WYCYdTC>f>jA!lCck9r~e}Rw0jVnTJG*`bc zQ6?0b9NIOB#;D7L86D)vd)emN90d(q$xBH~ufk=(59M&WX(KjNdy~X|Q=OdTI$D!p zrE49v3Q}d!lC36M!OaG-t7{Z%yT2#jyi6f~s(a_W)kLVOS^;NFQ;F-;D@Gz^3tLLo zPmyXk7Fq~TGKp?bD%%4)ROi^k3LwJMO+R~JG67GiO$7zQYQ%O@n;hE1whBD%;*0+y zmEOLu;Oi%?arJ{zk|$LU*~uc=%lQTMcHi?^iuk!C%i3Kh>Z6RWUsCbnD?>zvGUORD z9>6UA$gZoU7KL_*g`QF!&?YJ6hAmm|yNK$p63}qvuN={R)l8S(X_~A!$Ks$}i_TT! zz5fG4k+#ktQ<*wep6d^9wKW(!g(s+W%ip`oJZ+e4zLBi+Jat%B30G^}qY}4X#Losk zxIKX29$A^@{)3`fIs(QgTR~@M__`k_e$Gmw5!GBc7LEVYXcBp;k7b4HY*W?X4_J>@ zt8Iq=Tt-X~?_~4DSdcWC#g`)5ilDk`6VBmV_7Ogt)$xKlkU|t~LnKX2);@J^-{*U= zzM-B5{_{_d3eDlyrE~}uC9fGP4Z1#x$=7rlF34NlXHc4ka&s|=l!>H+oCd?BF4P`B znun+8%GHiL`tM#zMV%eo;MeA*o%!J&dSOiL?(BXn383<-l&xE4Stgt@N}zDpl(<=w z8v7I}w5kU13r|XiO02*9basxW2ZWchvn!niZiDToKM z&JZmdPp~*w_yFMt&lyR3SUHkoj#6eeHZnLi3ie7@vBLqUM@J02FtK5VA`cm&1kf{; zSY1guAZ%5Q6{rPoN;2b9~#(@1nbHWtF|*h-sZ{8N}m0`Y(KC$$x4u)d0|VG<%0(lycvc zXq3V;1FxyQOsowXL#@95{#`NmM1Qk*BBip-hchbrR@g9DsXSmivE&1Pyz>Y-$$b>? z8l(KMqh8Fzjqc%~*YIgdXkV{J$_56Gz}l%c+kD?91mlF^;52i|a;@?M@3gLNZ)c)h z%}gcW_sAfP&oEZgCub8otwHzvgz9}%J8gH5iM9;e$?b7QoBpB8%7P>^{|MKsM@Jid z(h>^=%St~^Ze`0--1A9ypSefv;g%-jBq3rFnw8Wrf>!A@RN@Z!*oH+OQQ;bn(zwzH z+3L@YuB0PbboAUFX;PyR2&pN5YW7A0O7hU4)i!vF%;kz&3i#;M*8zzKj9!X>vE(PQ z$5_GS=4otw`+i|ckkKmD-XWfPJC}QxNZqZN%;etpy{mg6mI9K4>mSqWEoo>_k~Q)~ z+V^}O4p#-yV)!+D(mGMw*dHv$4hXa1*dE^uf)x2qV`FNv17`C0G!C2Pthab#%?*%* zSp8KCj(+}LNud+6|B+_KPst~jr)28BLxY2*9odB#!^;EcvQe%jn}-YD2h0`|kN49J zDh|%}qT+Q8S|z#tOuZG{nc@G4s)l8VvB(ZbMh$0wC`|PQXD%Tbw<$iAH2nbYLKL9Z zD{G^sYap z0SwZ{(%eyS3mK^xi+5(-;jTR4lm&Iw-D@xxQAd-FW2ox_jC5g<%cd*b9~2qegA$2V zaUyYKDdmCG(vp*GUd^gmrLTK#OoES1KMj0PWZa7zkoWE`bU?DQWmhnbZk+1B@?t{? z8jR@Cds-bA{R!U6&(bA_e>!>i;J@6~C-`3fM2(XJqeK_LJhZv5VK?P*+<+ZPQDM!xE5HF$j2O zem%SK(}job4V?@9*sJ!Oe`-+KT{3UD84cen0wpjc@Wq$R(SG(?wn74XlyEdH(ItVB z;#zx~0EPAj;S+>2Tgop8B;V$c+u6-)zr@2kWO8CyX@@obm(H*JS z`5_U|Ja!fi9B8qKCznlDq)nDVA_MppORnF#CV8x(@kBg* z*LSBw<{Hj%4T5k$_P&LpxwqmSyrm|=3R?J2U!^MwBu8T_*x7mDY;5-RyDex{h5JJy zhB(h0Gr9ouEmBebYHS@&{Z_}}xa}fjdM>^-!<~94N64x;8A-le@xS*r|KNsEb$z?@ zA0p&lHk2xu$EpgYrMGlb|Fo??5d$j*A5f6d?-sF#Q!Y2aBeC9g&g;+!15sEaY%rE&?n zL=TCWid-v2R%WHV{I+P8VU+JDns@V0eY?f-ZMK}Vv`$H(`GJzXHC+I#Z>jqw-qh0U zT3noT{|AYDtV(~GuL6if6gea&PyQgI&@g>c+lk+V0YtI{%8#bI83>6xWeLB1QZ^Sv zpjOU*XCwhZLgp%DsSUv90MYXO2m@J~y(e^P(PHOLOl-B~!=Lj6n>DbKa?R%16ysEX zyI~g8!v$jA&BKjec?!w~VrbT&%dj%*04{Mg6s1pj`iE0U&{7*?`W5o??HsMDr-Dx;s zQeoZn6z|8=H30XH9oJ)3v6ghZ%l_qj!D{1ubklbH4CvNsNH9N*&!n^K*=GgZ0{)el zX|~#fy`c^&FOzqPoc|nCL{2#d2b@g1{D784ABIH*tGPdvEaKa{|1{R5Zpsu&pMr*R zb8#})W+jR0-o>)9ouwlYVVw0Q<0LBa%D^%LX3%{5^{dPY<1ui8Ha`Qnld_c%`Mhp<<1_PSc5lQ-moYS<+|# zx)MRrMC?pqY0_B4wdwt2xjk$J=p5snlcA_=%dmM5AwX}?LTs~xRM1M0cCax@1wq=v z9sD?SwKYWkg$&oaI$?E|F)^KXgT8>CP)nzBs#2)q?$Nz1E z$=>Fh7=s)}c!i#akE7I0715(z@9FY=$B_h!nzAQ%z2va^WSUg3>cHr9C!XW+yM~%N zgSK*Ge}O6)bSW;{?e{No+$@IeDa-A6SRehuRSoy;Z8J5IK$F?%4tLN_%G!IwDKt{Z zg|wc&QdqdV%N_m}ojyS=oGK=Y`XH<1Uzt1BKX*#u@RdhfRiA`XVN$QpBWKWtH96Uo zWBQSeb)S|FYQSH&fgo_|IX?%oZ=Kt6cCnWRmoBDJjagcSn* z@*(-TmN)d6@41B5%`OQyvWCcO!zd}&Y&hEXa#_yQZJr_=F2pa=qGt4$QLg^2^6+mK zFi>NkC4y%OU(=eLmnIdjO%$eA=13IR$u8V_pbZ}{Z=1T7_xdB?u+H&Ru{mvE?^v#R6YFmml{x)wh+BZGw{ zMXogzq;Vsy*qg(IG*`B)BB8RPe2!*(bV+FtZiY6+s;j_>JW><+BZ`x&u zL++rP=)AM*;%a}jVbkOHL0oS%6rM<7Qx0#)bz+Z?W+-w>crB8z3=(ez)9s{A;Jh6a z=KYvbS$_0vf_}+7VI6ktv4|^|^nl2@9vRy!++E8~7|De*tV@%dNrw5iBZ4#q+`aHr zv4<1I@q=D{d`8|QC;0j&Ob|B_Uw)eQ8^^`V_$uj7(eJ`!z}QHoegDr3yG_=~>?>e+ z33@?N{AXYB9|l_}p>+&KEcJgh72qmsWsnC6kA|@|shU-5^@NvCQ_`i(tgL^deye

4$RMHen%;gM%2GRa48w57DWX# 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 z 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�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%0DRy6nzp|+XOgy)q#zU3>+T7?;3t<24G&!%7 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Π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'^!pJY08UrO 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

pVTBH6gATnCoz4t%#>FH%~i| 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 z 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 p);0sYcS3b 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%0AF!{`ql1u@P>6_S2S30lc_hwBoYBK7H>XhS#F) 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

2zY{ymKxm$FNjTvSF0q8gvK!Z7h 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 B#ds^y- z(-~&PVj6dzK8!Qxw*X?2U-N{35`J@fTQ8KUa`gSbem`n@3_iy)cZXJazbW0TVMxZ_1ocA;#zuZMh8j)dKNiTVIO{h?VZFG@Xy%R z_)s~{QDbO3e>G19#SI*zrJVg;d?b)rF+`38Tdo&W>`Ro1&%!gc89VTGS-m;=g~lBs zk`ZFfjFwoQw#EExX^wJ{q)FLvpPTmFLD=@p+V`$K zZVg{^ms@ihEHU&*NKGx_yJ%IOo7z8I(?7oPB_BaHPMiHXR!jJzFH-92{Z)%IcIHL5 z6ya{Q8Zb$*JjXT#>)(9fM40uCH9KHBO%3j>Ze21wa3l4&uv7>dS(~k4%ix)DUPxU4 zW$T~NFZ`%=?f9IC_ZalKzUf+%6!N`muQ~>Ll?(9KXH zOeXHRiKq9c$89g};Tvp`1T+=9*9yM^;|&ynJWN3}nVH+{$H3LlHz(|Bsdi%Xuq*1) z`*0HSHp})ZsKtZ@9hK+5wr?T_q$7-Dy0T@jPPqBE0l(EFdWHxy-SODziQGksPpA=B zGu_kx4Z}KU2^ypHEL-p=(Iuym_w6?t9=oFVR477wBIVd5pm=wOsiyVl{;e3L&?ney zMb5LP?$W~jEDyp@|KkE=Egx{6yu3572|hZN3{>qz(VUr32#y>a2zBNO*RSE>?+V$v zc+Y6yb1lLsuXGG}RM*7Kiu`f`CSDwLFq}{i@OjuBT1ecW!G;PMfBjWR8c9hRDTf&) z!0U3}@$|}JC$>=dplp^K>RmZ4ayqp6iO%L?^@ML*WQbox4mfg~@cqRb19q>*H>lQt zsOYUScwE6}PdeSy(z<3bpWW^C-CUzXv4F<;Kp=lGdQa5*!0YU4M!YRN{Yd~xBGUIHG9(eaCg-m0%RH zIAG>DmM{~}aD!sd;Vi&~^h4pV&;<#p%I*QS`{y@5oD@CSl;Y`3b$`vgJY_lz3~^A3 zvbddCcaxcCfcEq#GSJq!O0J}Bq<%_GV;SxPh<|Oe z*WaJp8o71q_QqMT@>m+JK&5UL_KVpjwt|!xHnP0HSN2a^9w^#XzsrrLSqx-BYBvF=dZ-glDhf4DR5_96F-2C-l~1FBv?^uHqoZ;UN<$MRHqQ zM&df!^&-#Dpofmr=hhdF7mm}ghroE(!p%m-9ILSZ)(f@Ku>^>(YJz%ydxn;IoW`E} z`ZdA!hp6iW`q0VCRKsxji$nXhd^q8XFZTcuZEKt zE+V#UgF(GM=(IJJOoeyxm|%x_6{+(cR$3uID8IJ|DL!>kiP5rQT51h(W>Gv z9?ohxppXKg&Ph*FkR|beqSR*?e4M!-Ieyk9K42eKkMSp%VFeakatXlMfyexN4dB7z zwX3poLzaD`_1nZf)g&E=kriZnPGg`r4*1ynf;nkXu*BHJi4#&3u~+C$wX3mj5E7gGk@B9nk(|W zKRr4(|MeI*n=?~2lcEfYca2VhSsFA#l(spFnDm>sX2J*(T2@RD3ZfP)&QYR?7VX9i z_E>O8Q^~RalujZ~8ca~$MXc9#+!Avm^i>oC?o?bJ>$+MaYoX zhREbAYypff7r1#EW%?;wP#G+ef1NUG0f=N+^y|^NpLL^!_|lcfyld(1IaOjveP`QK z|1pap5Sj6ZO0Y5*@na@R%TkwP4CM#^sHXrU^3Lf5M#qT`LJktILA9h?hdn)r@9e$r zWmdgEI|vSd(f+%{HH6VRg>|eTbXUD{TtrboKAcstv#Q>4#VVBb=_TlP1?s zS!ZF5d}6+TqvOt&YQPX=fSnO<{KhqD{WNV(lCW zZ1kK>Rs{ooD)jl5;r zXyR)F5Q@kOp%$|cGDaLq4#ENoHUs{d)TO})N;^*yiQyRuk!iw2;tvMMCA@aED^Dl_ zYm!H;%0v>5PO}c@uZ3R^Q4m0%Q3+|}!GWh-Vj_G4jG=@8ffET;r72uIH8n-}%BXZ9 zANYMuPiZAw1QMBRO9#}c#GtsyQ5P)XkMo)}oT3PP)=_XW5gdBlQrU|WF$P*aN_tMs zmJ!E%fViF!bAL{GelwO*9@#+!u1t7CY9kmNGhLI}55etYfw7%+)S0m6wG+Xv4{WXd zRLXkSQH6!_1dF2rYZL%jrY)1q zR(R7|?vD?$mnOF^ix?W_=*Ka#xE^U`;i+Ss zTW4uu^65Bj9MQQ5bzz6&V3eDGRUAanguBB$5^A#>I~Zq=H&r#oBMZHmv#F2vo^6IP zRfM}yr>iJGl6!uaQ4oJ-#=?3JN`5zt!MN=PhBb{LxPSNzC_n(#*pw(<#Q$+<6sNkJ z!ay(k!_)oUEZDlo`Q6I>XR!DZjgetw353GFH8y*~1y zwCnpgHKl#qTD_4|-PfIF!c7J@2&VYzxN`eswIEv%^Q8q3eWbCdjiM%2@8~vYU5rht zeMICQ&BVOr=?2=Zfmj=cDID}<6ESz^P)_E~a3cOM(~MA1V6PB#jd&&5>|kTPhukl=B1ZgICqBBx-|B4m zR5+;5=f*_*$ZfH-#p$OzB46YnG5J%N)Vf(`O%-N!ndkBiQQj~43we@DX(2Gf%XQ%k ztG~mA8A}ku1+)m=TpI8x)|b_5H@#BYy_a-%=#BV_Vr|FB%w0`>UT zQgVGX4~Mbp;P-IRjz%SR|DL!8e*v8obKQ?_dw7WNLZb>~m~4T|E7u)?CU>a%JZkd7pI{7Cn_zf7e5?(26@h-q|O<7 zW(pm}V#OpC#K={yPBb%Z#Gryv%s>q+`Ipkp##A&@_zHl_ECbHb}WE-9azOa86V943#*78fMH29S%Jl$k89B}n}!vFlr;t0AGC}r2+oGm z=`~rQacn)?(NN#KCe27?*r~C@_?Q(m`Q_L-1v`0ycwg=mex?~Ic4igEAd`vQS&n0U@`w!L)+ zH)1FNl5rk7ajU^a4IxlQb%xDzCdu)mLsc<38iCz;l zC=iC2)JJ0;6r=)E={o4OHWI6t0sBGI60F~er`}}pV(Due$z^iSwoih@$A2i`FEQOz z$Uqg?xuP2x+s+A-M0-qIA0z*-V|^oHhxqMx1|06$u+wydHKApli9@`RCZ z^hVz}4Tnl@i-Opg>*N}oeHU7hO71+w;GoVNIg14VT&7Dk1Jgnq+kJ=tvhIj~$6A~! z$(vQYr88%B^wq@}cq1-0Q(?V=b?^^X*-=`Hh#G`h3E+7xl5|1>q1jp&i37^MO2aQ8 zd+P=j{t8HRbBm|UjsK*kwS@F7M5G( z-*_V3jPTxw2Z&$oa83$79}a#3^t~x%+`pUt$>qLYzCB9$^=WP_1>*wnceO$ZrIyd2 z5$vjYUTqX<^;YydKBpY2-S36=?AW&vK~v>oZKXmx$DD0n7<|$gai%4@kRk@&9Y#7b zSVLk5ehDe0Sm8n{7sy5sT{GJn#v(Fusy~XK0(h8Lmn_&6KGV4`y|$P+_7aAa5eSlE zc1SM#F5Bn1#P$)T|9~kAcy*@WzFm1hIBCB&^cg>c8di)=?Ok}DwSF4ZL0o-VN(#xfH=LSrSZOv-R@`qKt}`Y=jl^ycAPP+?58hQAu3~P znX&l64r(?SJ$DPN()K<9p}MU+RzW!796>rD0xgo=ZuGJsUbJy`i;_6h0_;QfcdN{_ z@ae#JckZZX(UC+Ga=H^mPW?G&fYYPiVpkSYxx!9dur;}%+30{N;z>y}`rzp9CjmI~ zWvpbb)X(VgTyDLuWLosnN2tuqg*4e5ksl+~lqOojzq%$pi~(pO^2(oEg=|-7_U=~FNqME0{qHN=X{j(ON&IhSVJaiLTl)EJ;`SX zN0{eOZNEJc4@IbT`&WC?9CdRZy6jjESQ3QHclzia=I&G8^-cW2w~3F7p7JAtoi_iz z6@I|mFrE|@JAk-}9Y94?k>ML0SS#rk!k??{%oWArK65>wTC3EPz2Ivmei%hIG|`+nX`;!VcUF-THc{Pvr`IVSlu0 z+G>$5ag=iIH|nojpstu>_iT1IO&(rAdcN1nim>Go?;&K|c*{)Ee`XxW`Ws%VfXvRu z|ER*>S#$-}Y;Ib7e!7S_0agdH@!>9(rVV-NvY8s#A2e%fHjDf_6Sx~4W0yNwbhX>B zclgaw$^LA>mNNSLHVGSh{AArhD&g3wmw(Hb|5Tv&Nv#6yy8eeluT0Zam8jofn7?QF zJ`}x~Rr=K1C%ZJINbR#+3vUC_bR@T%(pqijGB(umCzmzFTD5(m!R zTDTr;6UH8E=be83l^!r2;&Sm+r+Gfu-*zVIrF9l%@4fq4g=NmZ5IMg5lp8*MON1(U zZzuqxtOypwW5vAopfSd(#2C~ED?ZLyHV6^*Z9Q8BKr)<^`geZzx>)H!?w2cF1y9N- z)|p%-{P2yp<84qk#sexP%rt&~5l>Vr7ZZ408hkQ~U~X3xyh9^G>05ogNUXIRUC{Ir z+2UZ-0KN%22h=tJt@WM9DAu9q!G+M~e0(Dnvp-Y`|Es{NAj!|2$|#Z;>IA*>mtqVugE5c2+%{s-~bRri7$t zJxS})*86_5&*nnfQ1qwQBR`H#Jh_mpfw7K-vGK2Z4#g!gT*Nc=pa6toTVIO3C%$d3 zg5Do=kfwUfNz;Z``dnWjo-sDS&q_&7*4*x=lTfzh@(5!j7NDty?n+(tcvbj}qMkxZ zySgh$k|odbh&KT|DPU00uw6jP8pt1#;ZirCjm1!Bp^fz$n#2DzP?dknNfsM9r&sj% z0l=qRyB!}L8*j7?+}BC*AJAjBaO9x*^@XLsIy+YZgWsdj>SegCf83V5jU>F+f$r^5G%{bVLDVQDUM z>6iGg(a@SXq>l>=-4W+U0cF$W-nb{fQ4PHG1X>a*UOiSF@ks>MHBY5rPTZa=S=q08 z{xU41=-S6rXei*}c5x8({q#dz8Il<;`_3#R^HtFVmnh{?N33$E?uw}*u_x6dLYMUV zb|#gl-`tQ9ZB>c9f9cOYlUt9rP0}PcMT_FGAS#q3J6v=?dThCcty^zueo@;{zl)<) zIO)^_a;JYgeuIaT5jIDv==fQ(Amw86*%f1zKWqw7nd{-70~axK3)i{*c58HaA!100 z+Hl61uataPX&Pgv&-Y$27A(vLyk|D&;dGa#$``xH-(_EKZ=a(nm+P;^HBVZNEgSff zL)ae;OO0g-4QBRWrHFRNOtiWAP(@nZ6#)TGQ(RxjXMpgE5GSDbOzIR~|LAdaYKZbt+Kq9qD4E-#n3+17%`lhy$ytCW<9d)PNdj+ z%typM?!qdXYFL6g$cd81d!u!^Q?mjN;|pL$hQu@u45VxmEd4p&Z>(Ez;yiByawlRz z{Wi@syK0o{Y{n5l!#Oo+aSa!oW)N(WpJ+ut^11$*k?HNUKJI_19B?x3%x>R6T*GR{ z@{-U?zPL@;r+cv&RNHc*$g>(6c)dX)Ve~M3RWXH9x0y&S*kx-xbYcv~o!{H+HW4K8 zu8MJ)*ej-Zw2VtF)|%Bay7pAw7TTCUzXxVssCAvztBE`xbecon-H|<-bcTuU%=0(a zR>Obu`^IlWEoyX|13A~N{zW@43ubJ|9r~QDI`oABY3%P;6%C9jjO;@j)8_aSzjzVG zo!Q%Fq(^OnPsIykiU-;F>sPjA6dH)qRd+Za|>8}qzN&iF(A`FlA` z(UR9AeJ`Wqz*jHlQ!G>!<=wu&Kv^@vLrzZ{OoGpje#&pJZf+)c;vAY`T-6n(S&~)! za!JJ7L%BemVELdaT`EMf?n}zE&ZbnfDoSa(K$X14uZGRGrcpf3Yj&Z$3Ih zfF#_#51&3=6Ti5Ez#~|1YnLVe1&l577{q?H)p6oU^jJskLLl-wHnJGk!tolQ@VFwX zJbdv%IfRR$k}Kf30sk3nH{i85@@ZScs|Z(y!5Ai06@s&m&W@-RF*VNtKPC3L9>>vM z)A-BLTW4X?2YZi17Xq$opOUbOEcAogUo{4|XJf2vsLLQjMgRL9W_vbf$AkX!p8oHJl`4L< zCyRBNsSS!d{db?>lVxVKvHgwxz_iEw={3oM%}?c0v2hg%^x0K>@H7#BouaEd*$a=; z<&IaWdVg-CG+eEHlCm1bz6tl2dyzrCht!HVuY$B-a-5V3g|6JU6kW0>KNR)awY`{q zr8Pb~>Wri%JAk1+hcd>@+g6?IXB+wfYI&oOLxl~@as-ITNaGY&>d|X>StX}K+ z2TU{sctaQ}ueV;KD*uV2khDnJ5hxd>T>hC|%TCf3@>zbtAboOlb@xTbx&wMkCtKAgBHk@_y|K2RUyInG+ zwkvXpa%o`ijj8iTS^vKs<|MgJqO>yqeI;GegHQS+>c35%;{6)`YZ`Keh5ze_ntQ+1 z|8>xM{C|8zG1f6Cs#~!@xX!@IG`7*eHeGyLH8>tU2N)rMjy@2fn%08x-wU_~sJ)Mi z$vs0_?so_8WheN``q~k_CIA*=n$_1nygD1_(f|FH7Cxb$*e%wE4qHevg6_0zh@Gh%(S({X|l=S zeVx86RdeOwUx0rV_XG34BgBDvK+S8v-!%Ai^tjUN`#WD*^P||%R+s45VWiUAgq22T zee&u>dur9ms*Qt9Subq~H79US@VFix2m#(TuK)ZU=zjfkf1!`Jk+PZ!34>2cmM zp@HCZBCC@N$F}11(2b)4pFin_f&4?Kz1j)UOLVd5=u`p7p7zEM(3+-})wr|EXSB;h zvt`4IO1taovgpNVz< z;QgAj{Yb2fg0oqaxb}Z+FBksGw@O{3$G7@Noo1Zb3;y99SQKSRjlWR8SZ~ya-%)9o z)8E!CdYUnveWuBL`vih~($*GkxKNpG?~JahK>St*L-Q*q|6GY}k(U+tJPq^EG5-Fn z5_jgjY%z5Wx~s6Ov}+p>#K-x+t>rSet-f%wEK^Wu>@upW!!wL1e|d7fizIx04f5Rh z@1yStLYDCI%L~OHf03bA@pY*So)>gXimjo^rz2=I<=wM&%5l~^$4$v?ZT7d5c1CMu zay8$z5vQZs=)Py!M&8$Hh?@#guJ$FaOPlilJSW20~{7L2fzB;S53YEtRJ7o?G5?*E_wW8 zCfM2ok4s-pJ5M+Q1bJ)lu9(bXIyMxow2?e;4pQ|G4MfM6Y6!n^jo2?OD6HNvOUXr& z{GYC_Je;k34ePXZZ--J{?3(FfseLeVQR%3qR4pCb*h-|LhR|B8NUDk%LTj|9XhN%E zr?x~SNYPj#sEjQk(b{U?g+`K_K22xt+<(tG-*dkAJn#2@@9+2gzURnS55gfbuyuE> z(|A%O@Rz}?plWZyNN>*4=n8t#va$a=Vb(HO|9+iZozNm>wErx`tV$oahv-V~`Y&7857aC;xhufRC zhvA>ITn%X0^{Ab3n$2eSIbz&+Qu5Hc`4YZ0CEh^^ykwEovnwUR4@Qm+OAPxQA)54! zrcmpvVc|NTo^ID8@NH}T#etp-GyNa&iQ7R1dLXi2142uSs;l4LOKjt?JTuxeOlAts53s&!np;+Dyv3vi9xK$O!&lo_aoYHX0 zV6dfc%n8$Y&V0y){g92oC~h|xBL?=}o;Z`tns@^P!V2Qzo-8bAMcgo=u1%dPE1zq< zE{6Ji`GdO^Q-`plPaasLMX(0mCKs#7dXl?+ruV}G3pcPD+CH^&hD-WF@$RZMN~u!? zykJ+~*g4>pgXI%b(A%dZOz9L~u*&-#6Lt+d18T*GUgG%V_};@_-6JJT& z*pViJ=G7$Inxe{7MN9U}lCEx6RUY1Ft!9Xc%0Nb>xxPC8kych zSwhGOLHTRUO*g7%jWuVjw-+ zfzx03FJ)A%#j;QXh!3(QPZ+Qo)4V;~PIgkCP#jU*k&D)8jK)23Ox-DjZeItdG9s91 z-T6ncEN4jbJnb6#*$dbNwZhvQ>KBKk4Xsf##BWbGLk%Y;%-K&j3qb{V)KLCN>?T(# zSv7Bdm%JSODJ<#zi1fUu5{@=BbYRMS3!nfACf+uIKTIe*C(k|ZotnDsxCU(l; znTG4?8iwy8%_(QuJ#Rmx3smNy&i@swX3#C`$Or8XNA)J?)D;5I5!3ULr8K>V^Bi5D zi{CQE=A{GJG>#ir+`cV&b*Xp`BVEuldiSu0M+uMBT|wDg>Nw=2;dv_tfn1mDTN}&;m#gSIaem1+7&GR0|w&cw7X`M_C`}SJHJPm}Hoij(qdlc#E)mp#)8QPAu zrRetdG8#5D+#i40lOdxhV`m}Ks8chZWpFDhGx1-O$Ph(?_uO1#Dstybr>LDqeox#U_Vn4^YvqxsfsZj4*xYxC6fePlk1t9oFn@7g z8Qvs~xhR5It>5X!Q3^y}?41>;gLEeC-m8;$3bGBMDl=CAi3#~_l{gZ4aWa+i z<^$9Qv?B&g2EVY?Bc+fV+=XJPE%EJ9OZiEqgOX3qo-Qr&qWwC#Mg>kRYZ7M;wnsbP z6ne<8caHOqtrLk5UpJ=?T6(VHjQCIEvdM(pld?iD>J|LiviUl6BnLpuqx}S>IluOBk&+4rVOH|C6Ip*7 z-i*uU!XPQB(!v2DX2GKiY6e2jA|;h+EC3=5w|MoB5T{=v4t~93aWk+eum{)5UAA0J zd--cI`rbl#e)ZMAUXUr)JOAKK-4SuKzrA$V;XwG0cd-d)N@8ofV!+A+sGqBFugMmK^N42Tvi7jguXJ6tQ0x>$LIzu20u zUyO?3MX5Yd+%;ixa0Nd4+x8`+xe~3jVWI-_Yw$-{f6OsiZIy3UY&275f2zW!holRe zgr=&Ce5wIyNLu30pIm=XM-p~CzHaRr{X98sBiK@wy?cbY@4qt;6z2(0vm_S26r#*b zYcmp9C;V~^{GJE8c#a2B?;dPz53RnoNM_)JIIf13fkpn7ISWe$PFaP-{Va3he~cI( zMbQmdlh}DeY&P@Kc;{rXAeZNrSLEenLHoy+MqAd{KCp0{665`z%;dYyT7s+l$gH>B z9K`O`*Nhtm$Hx`3(@IytITKoa1ax(D7meR zkGTu-i}b4R|5^>iDU0M`(nC6HFH|$$qEQNyw{&7pE8SEtf2cSu5U^41E<9?Skd_H) zM#2+%n#1JEHV+aTuNjrrp2XjvEJS(a^zlqhVjl9kmG6Sxr8N>zHi^gEQvk*Ul5Qio zF4q3VhuZ;uF|Kv$XRqcXY=y%rXKMq`Nx_+EtJo$!uPYR za992!ru-5faW}!uCw|C6ay>H{{q^5*);$F diff --git a/README.md b/README.md index faa576c6..7b2f21fd 100644 --- a/README.md +++ b/README.md @@ -1,71 +1,71 @@ -# ESP32-CAM example revisited.     [![CI Status](https://travis-ci.com/easytarget/esp32-cam-webserver.svg?branch=master)](https://travis-ci.com/github/easytarget/esp32-cam-webserver)    ![ESP-EYE logo](Docs/logo.svg) +# ESP32-CAM Example Revisited2        ![ESP-EYE logo](data/www/logo.svg) -## Taken from the ESP examples, and expanded -This sketch is a extension/expansion/rework of the 'official' ESP32 Camera example sketch from Espressif: +## Taken from the ESP examples, and expanded +This sketch is a extension/expansion/rework of the 'official' ESP32 Camera example +sketch from Espressif: -https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer +* Original [CameraWebServer](https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer) -But expanded with: -* More options for default network and camera settings -* Save and restore settings -* Control of on-board lamps, rotate the view in the browser +### Key features: ### +* Extended options for default network and camera settings +* Save and restore settings in JSON configuration files * Dedicated standalone stream viewer * Over The Air firmware updates +* Optimizing the way how the video stream is processed, thus allowing higher frame rates on high resolution. +* Using just one IP port instead of two. +* Porting the web server to [ESP Async Web Server](https://github.com/me-no-dev/ESPAsyncWebServer). +* Storing web pages as separate HTML/CSS/JS files on the SD drive, which greatly simplifies development of the interface. Basically, you can swap the face of this project just by replacing files on SD card. +* Reduced size of the sketch and improving memory utilization +* Porting the code from basic C to C++ object hierarchy, eliminating extensive use of global variables * Lots of minor fixes and tweaks, documentation etc. -And 'reduced' by removing the Face Recognition features -* **If you want to try the Face Recognition features** please use the [`3.x` maintenance branch](https://github.com/easytarget/esp32-cam-webserver/tree/3.x), which still recieves bugfixes, but is not receiving any further development. -* They were a demo, only worked in low resolution modes, did not preserve the face database between power cycles, and were of little use in real-world applications. -* There are other (specialised) sketches for the ESP-CAM that do use face recognitioni more effectively, if this is your thing :-) +### Key principles ### +There are many other variants of a webcam server for these modules online, +but most are created for a specific scenario and not good for general, casual, +webcam use. -The original example is a bit incomprehensible and hard to modify as supplied. It is very focused on showing off the face recognition capabilities, and forgets the 'webcam' part. -* There are many other variants of a webcam server for these modules online, but most are created for a specific scenario and not good for general, casual, webcam use. +Hopefully this expanded example is more useful for those users who wish to set up +a simple ESP32 based webcam using the cheap(ish) modules freely available online. -![Actually, there are two cats in this image!]( Docs/twocatsactually.png) +### Summary of reductions ### +When re-desiginig and refactoring the original ESP32 Camera web server example from +Espressve, the following key principles were followed: -Hopefully this expanded example is more useful for those users who wish to set up a simple ESP32 based webcam using the cheap(ish) modules freely available online. Especially the AI-THINKER board: +1. Any idea can be killed by unnecessary features +2. See [this tutorial video](https://www.youtube.com/watch?v=iMULJIXPxK4). -#### AI-THINKER ESP32-CAM vs Other Modules: +Given the above, face recognition feature was removed. The main purpose of this +sketch is to make the camera web server easily configurable and reusable. -I have four [AI-THINKER ESP32-CAM](https://github.com/raphaelbs/esp32-cam-ai-thinker/blob/master/assets/ESP32-CAM_Product_Specification.pdf) boards, so the descriptions below are for that board. But I took care to leave the default definitions and controls for other boards in the example intact. You may need to adjust the programming method to suit the your board, look for examples online. - -* For some other good examples and information on ESP32 based webcams I also recommend the sketches here: -https://github.com/raphaelbs/esp32-cam-ai-thinker -* The AI thinker wiki can be quite informative, when run through an online translator and read sensibly: -https://wiki.ai-thinker.com/esp32-cam -* Default pinouts are also included for WRover Kit, ESP Eye and M5Stack esp32 camera modules. - I do not have any of these boards, so they are untested by me. Please [let me know](https://github.com/easytarget/esp32-cam-webserver/issues) if you find issues or have a board not [in the list](./camera_pins.h). - -## Troubleshooting: - -A lot of common issues with this sketch are discussed and covered in the discussion forums: - -https://github.com/easytarget/esp32-cam-webserver/discussions/categories/common-issues - -The existing [issues list](https://github.com/easytarget/esp32-cam-webserver/issues?q=is%3Aissue) on Github is a good place to start if you have a specific issue not covered above or in the forums. - -There is also this excellent guide for help with some common issues seen with the camera modules: -https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/ +The original example, is a bit incomprehensible and hard to modify as supplied. +It is very focused on showing off the face recognition capabilities, and forgets +the 'webcam' part. + +### Supported development boards ### +The sketch has been tested on the [AI Thinker ESP32-CAM](https://github.com/raphaelbs/esp32-cam-ai-thinker/blob/master/assets/ESP32-CAM_Product_Specification.pdf) +module. Other ESP32 boards equipped with camera may be compatible but not guaranteed. ### Known Issues -Builds made with PlatformIO are currently (v4.0) broken; the stream will die shortly after starting. See https://github.com/easytarget/esp32-cam-webserver/issues/218 for more info. +The ESP32 itself is susceptible to the usual list of WiFi problems, not helped by having +small antennas, older designs, congested airwaves and demanding users. The majority of +disconnects, stutters and other communication problems are simply due to 'WiFi issues'. -The ESP32 itself is susceptible to the usual list of WiFi problems, not helped by having small antennas, older designs, congested airwaves and demanding users. The majority of disconnects, stutters and other comms problems are simply due to 'WiFi issues'. The AI-THINKER camera module & esp32 combination is quite susceptible to power supply problems affecting both WiFi conctivity and Video quality; short cabling and decent power supplies are your friend here; also well cooled cases and, if you have the time, decoupling capacitors on the power lines. +The AI-THINKER camera module & esp32 combination is quite susceptible to power supply +problems affecting both WiFi conctivity and Video quality; short cabling and decent +power supplies are your friend here; also well cooled cases and, if you have the time, +decoupling capacitors on the power lines. -A basic limitation of the sketch is that it can can only support one stream at a time. If you try to connect to a cam that is already streaming (or attempting to stream) you will get no response and, eventually, a timeout. The stream itself is a [MJPEG stream](https://en.wikipedia.org/wiki/Motion_JPEG), which relies on the client (the web browser) to hold the connection open and request each new frame in turn via javascript. This can cause errors when browsers run into Javascript or caching problem, fail to request new frames or refuse to close the connection. -* If you cannot start the stream you can check the `/dump` page of the cam to see if it currently reports the camera as streaming or not. +A basic limitation of the sketch is that it can can only support one stream at a time. +If you try to connect to a cam that is already streaming (or attempting to stream, +the first steam will freeze. -Note that I do not respond to any Private Messages (via github, hackaday, or wherever) for support. +Currently, camera modules other than ov2640 are not supported. ## Setup: -* For programming you will need a suitable development environment, I use the Arduino IDE, but this code should work in the Espressif development environment too. -* Make sure you are using the [latest version](https://www.arduino.cc/en/main/software#download) of the IDE and then follow [This Guide](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html) to set up the Espressif Arduino core for the IDE. -* _I do not recommend or support running with development builds of either the IDE or the ESP arduino core._ -* If you have a development board (anything that can be programmed via a standard USB cable/jack on the board itself) you are in luck. Just plug it in and skip ahead to the [config](#config) section. Remember to set your board model. -* The AI-THINKER board requires use of an external **3.3v** serial adapter to program; I use a `FTDI Friend` adapter, for more about this read AdaFruits excellent [FTDI Friend guide](https://learn.adafruit.com/ftdi-friend). -* Be careful not to use a 5v serial adapter since this will damage the ESP32. +* For programming you will need a suitable development environment. Possible options + include Visual Studio Code, Arduino Studio or Espressif development environment . ### Wiring for AI-THINKER Boards (and similar clone-alikes) @@ -73,85 +73,146 @@ Is pretty simple, You just need jumper wires, no soldering really required, see ![Hoockup](Docs/hookup.png) * Connect the **RX** line from the serial adapter to the **TX** pin on ESP32 * The adapters **TX** line goes to the ESP32 **RX** pin -* The **GPIO0** pin of the ESP32 must be held LOW (to ground) when the unit is powered up to allow it to enter it's programming mode. This can be done with simple jumper cable connected at poweron, fitting a switch for this is useful if you will be reprogramming a lot. -* You must supply 5v to the ESP32 in order to power it during programming, the FTDI board can supply this. +* The **GPIO0** pin of the ESP32 must be held LOW (to ground) when the unit is + powered up to allow it to enter it's programming mode. This can be done with simple + jumper cable connected at poweron, fitting a switch for this is useful if you + will be reprogramming a lot. +* You will to supply 5v to the ESP32 in order to power it during programming; the FTDI + board alone fails to supply this sometimes. The ESP32 CAM board is very sensitive + to the quality of power source. Decoupling capacitors are very much recommended. ### Download the Sketch, Unpack and Rename -Download the latest release of the sketch from https://github.com/easytarget/esp32-cam-webserver/releases/latest -- You can get the latest stable development release by cloning / downloading the `master` branch of the repo. +Download the latest release of the sketch this repository. Once you have done that you +can open the sketch in the IDE by going to the `esp32-cam-webserver` sketch folder and +selecting `esp32-cam-webserver.ino`. -This will give you an archive file with the Version number in it, eg.`esp32-cam-webserver-4.0.zip`. You need to unpack this into your Arduino sketch folder, and then you need to **rename the folder you extracted to remove the version number**, eg.`esp32-cam-webserver-4.0` becomes `esp32-cam-webserver`. +You also need to copy the content of the **data** folder from this repository to a micro +SD flash memory card (must be formatted as FAT32) and insert it into the micro SD slot of +the board. -Once you have done that you can open the sketch in the IDE by going to the `esp32-cam-webserver` sketch folder and selecting `esp32-cam-webserver.ino`. +Without the SD card, the sketch will not start. Please ensure the size of the card does +not exceed 4GB, which is a maximum supported capacity for ESP32-CAM board. +Higher capacity SD card may not work. ### Config -By default the sketch assumes you have an AI-THINKER board, it creates an AccessPoint called `ESP32-CAM-CONNECT` and with the password `InsecurePassword`; connect to that and then browse to [`http://192.168.4.1/`](http://192.168.4.1/). This is nice and easy for testing and demo purposes. - -To make a permanent config with your home wifi settings, different defaults or a different board; copy (or rename) the file `myconfig.sample.h` in the sketch folder to `myconfig.h` and edit that, all the usable defaults are in that file. Because this is your private copy of the config it will not get overwritten if you update the main sketch! +You will need to configure the web server with your WiFi settings. In order to do so, +you will need to create a config file in the root folder of your SD card named `conn.json` +and format it as follows: + +```json +{ + "mdns_name":"YOUR_MDNS_NAME", + "stations":[ + {"ssid": "YOUR_SSID", "pass":"YOUR_WIFI_PASSWORD", "dhcp": true} + ], + "http_port":80, + "ota_enabled":true, + "ota_password":"YOUR_OTA_PASSWORD", + "ap_ssid":"esp32cam", + "ap_pass":"123456789", + "ap_ip": {"ip":"192.168.4.1", "netmask":"255.255.255.0"}, + "ap_dhcp":true, + "ntp_server":"pool.ntp.org", + "gmt_offset":14400, + "dst_offset":0, + "debug_mode": false +} +``` +Replace the WiFi and OTA parameters with your settings and save. PLease note that the sketch +will not boot properly if WiFi connection is established. + +Web server name can configured by creating another config file, `httpd.json`, in the root +folder of the SD card: + +```json +{ + "my_name": "MY_NAME", + "debug_mode": false +} +``` + +Similarly, default camera configuration parameters can be set by creating the file `cam.json`: + +```json +{ + "lamp":-1, + "autolamp":0, + "framesize":8, + "quality":12, + "xclk":8, + "frame_rate":25, + "brightness":0, + "contrast":0, + "saturation":0, + "special_effect":0, + "wb_mode":0,"awb":1, + "awb_gain":1, + "aec":1, + "aec2":0, + "ae_level":0, + "aec_value":204, + "agc":1, + "agc_gain":0, + "gainceiling":0, + "bpc":0, + "wpc":1, + "raw_gma":1, + "lenc":1, + "vflip":0, + "hmirror":0, + "dcw":1, + "colorbar":0, + "rotate":"0", + "debug_mode": false +} +``` ### Programming -Assuming you are using the latest Espressif Arduino core the `ESP32 Dev Module` board will appear in the ESP32 Arduino section of the boards list. Select this (do not use the `AI-THINKER` entry listed in the boiards menu, it is not OTA compatible, and will caus the module to crash and reboot rather than updating if you use it. +Assuming you are using the latest Espressif Arduino core the `ESP32 Dev Module` board +will appear in the ESP32 Arduino section of the boards list. Select this (do not use +the `AI-THINKER` entry listed in the boiards menu, it is not OTA compatible, and will +cause the module to crash and reboot rather than updating if you use it. ![IDE board config](Docs/ota-board-selection.png) -Make sure you select the `Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)` partition scheme and turn `PSRAM` on. - -The first time you program (or if OTA is failing) you need to compile and upload the code from the IDE, and when the `Connecting...` appears in the console reboot the ESP32 module while keeping **GPIO0** grounded. You can release GPO0 once the sketch is uploading, most boards have a 'boot' button to trigger a reboot. - -Once the upload completes (be patient, it can be a bit slow) open the serial monitor in the IDE and reboot the board again without GPIO0 grounded. In the serial monitor you should see the board start, connect to the wifi and then report the IP address it has been assigned. - -Once you have the initial upload done and the board is connected to the wifi network you should see it appearing in the `network ports` list of the IDE, and you can upload wirelessly. +Make sure you select the `Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)` partition +cheme and turn `PSRAM` on. -If you have a status LED configured it will give a double flash when it begins attempting to conenct to WiFi, and five short flashes once it has succeeded. It will also flash briefly when you access the camera to change settings. +The first time you program (or if OTA is failing) you need to compile and upload the +code from the IDE, and when the `Connecting...` appears in the console reboot the ESP32 +module while keeping **GPIO0** grounded. You can release GPO0 once the sketch is +uploading, most boards have a 'boot' button to trigger a reboot. -Go to the URL given in the serial output, the web UI should appear with the settings panel open. Click away! +Once the upload completes (be patient, it can be a bit slow) open the serial monitor +in the IDE and reboot the board again without GPIO0 grounded. In the serial monitor +you should see the board start, connect to the wifi and then report the IP address +it has been assigned. -## My Modifications: +Once you have the initial upload done and the board is connected to the wifi network +you should see it appearing in the `network ports` list of the IDE, and you can upload +wirelessly. -![The simplified viewer](Docs/simpleviewer.png)
*The new default Simple view, just the basics* +If you have a status LED configured it will give a double flash when it begins +attempting to conenct to WiFi, and five short flashes once it has succeeded. It will +also flash briefly when you access the camera to change settings. -The WiFi details can be stored in an (optional) header file to allow easier code development, and a camera name for the UI title can be configured. The lamp and status LED's are optional, and the lamp uses a exponential scale for brightness so that the control has some finess. - -All of the face recognition code has been removed as of V4.0; this reduces the code size enough to allow OTA programming while improving compile and programming times. - -The compressed and binary encoded HTML used in the example has been unpacked to raw text, this makes it much easier to access and modify the Javascript and UI elements. Given the relatively small size of the index page there is very little benefit from compressing it. - -The streamviewer, lamp control, and all the other new features have been added. I have tried to retain the basic structure of the original example,extending where necessary. - -The web UI has had changes to add the lamp control (only when enabled) and make the streamm window rotate and resize appropriately. I also made the 'Start Stream' and 'Snapshot' controls more prominent, and added feedback of the camera name + firmware. - -I would also like to shoutout to @jmfloyd; who suggested rotating the image in the browser since the esp32 itself cannot do this. - -![The stream viewer](Docs/streamview.png)
*Standalone StreamViewer; No decoration or controls, the image is resizable, and you can doubleclick it for fullscreen* - -![The info page](Docs/infodump.png)
*Boring Details, useful when debugging or if you want to check stats* +Go to the URL given in the serial output, the web UI should appear with the settings +panel open. Click away! ### API -The communications between the web browser and the camera module can also be used to send commands directly to the camera (eg to automate it, etc) and form, in effect, an API for the camera. -* I have [documented this here](https://github.com/easytarget/esp32-cam-webserver/blob/master/API.md). - -## Notes: - -* I only have AI-THINKER modules with OV2640 camera installed; so I have only been able to test with this combination. I have attempted to preserve all the code for other boards and the OV3660 module, and I have merged all changes for the WebUI etc, but I cannot guarantee operation for these. -* I created a small board with a handy switch for power, a pushbutton for the GPIO0 programming switch, and a socket for the AI-THINKER board. This proved very useful for development work and programming multiple devices. -* I found some excellent [cases on Thingieverse](https://www.thingiverse.com/thing:3708345). - -![Cameras and a Programmer](Docs/webcams.programmer.jpg) +The communications between the web browser and the camera module can also be used to +send commands directly to the camera (eg to automate it, etc) and form, in effect, +an API for the camera. +* [ESP32 Camera Web Server JSON API](API.md). ## Contributing Contributions are welcome; please see the [Contribution guidelines](CONTRIBUTING.md). -## Plans +## Future plans -Time allowing; my Current plan is: +1. Support of LittleFS. +3. Support of other boards and cameras. +4. Explore how to improve the video quality and further reduce requirements to resources. -V4 -* Investigate using SD card to capture images -* Implement a better network stack for remembering multiple AP's, auto-config etc. - * Advanced (web upload) OTA might be nice to have if possible -* UI Skinning/Theming -* OSD - * Temperature/humidity/pressure sensor support (bme20,dht11) -You can check the [enhancement list](https://github.com/easytarget/esp32-cam-webserver/issues?q=is%3Aissue+label%3Aenhancement) (past and present), and add any thoughts you may have there. diff --git a/app_httpd.cpp b/app_httpd.cpp deleted file mode 100644 index f2b11a90..00000000 --- a/app_httpd.cpp +++ /dev/null @@ -1,885 +0,0 @@ -// Original Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include -#include -#include -#include -#include - -#include "index_ov2640.h" -#include "index_ov3660.h" -#include "index_other.h" -#include "css.h" -#include "src/favicons.h" -#include "src/logo.h" -#include "storage.h" - -// Functions from the main .ino -extern void flashLED(int flashtime); -extern void setLamp(int newVal); -extern void printLocalTime(bool extraData); - -// External variables declared in the main .ino -extern char myName[]; -extern char myVer[]; -extern char baseVersion[]; -extern IPAddress ip; -extern IPAddress net; -extern IPAddress gw; -extern bool accesspoint; -extern char apName[]; -extern bool captivePortal; -extern int httpPort; -extern int streamPort; -extern char httpURL[]; -extern char streamURL[]; -extern char default_index[]; -extern int8_t streamCount; -extern unsigned long streamsServed; -extern unsigned long imagesServed; -extern int myRotation; -extern int minFrameTime; -extern int lampVal; -extern bool autoLamp; -extern bool filesystem; -extern String critERR; -extern bool debugData; -extern bool haveTime; -extern int sketchSize; -extern int sketchSpace; -extern String sketchMD5; -extern bool otaEnabled; -extern char otaPassword[]; -extern unsigned long xclk; -extern int sensorPID; - -typedef struct { - httpd_req_t *req; - size_t len; -} jpg_chunking_t; - -#define PART_BOUNDARY "123456789000000000000987654321" -static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY; -static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n"; -static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n"; - -httpd_handle_t stream_httpd = NULL; -httpd_handle_t camera_httpd = NULL; - -// Flag that can be set to kill all active streams -bool streamKill; - -#ifdef __cplusplus -extern "C" { -#endif -uint8_t temprature_sens_read(); -#ifdef __cplusplus -} -#endif - -void serialDump() { - Serial.println(); - // Module - Serial.printf("Name: %s\r\n", myName); - if (haveTime) { - Serial.print("Time: "); - printLocalTime(true); - } - Serial.printf("Firmware: %s (base: %s)\r\n", myVer, baseVersion); - float sketchPct = 100 * sketchSize / sketchSpace; - Serial.printf("Sketch Size: %i (total: %i, %.1f%% used)\r\n", sketchSize, sketchSpace, sketchPct); - Serial.printf("MD5: %s\r\n", sketchMD5.c_str()); - Serial.printf("ESP sdk: %s\r\n", ESP.getSdkVersion()); - if (otaEnabled) { - if (strlen(otaPassword) != 0) { - Serial.printf("OTA: Enabled, Password: %s\n\r", otaPassword); - } else { - Serial.printf("OTA: Enabled, No Password! (insecure)\n\r"); - } - } else { - Serial.printf("OTA: Disabled\n\r"); - } - // Network - if (accesspoint) { - if (captivePortal) { - Serial.printf("WiFi Mode: AccessPoint with captive portal\r\n"); - } else { - Serial.printf("WiFi Mode: AccessPoint\r\n"); - } - Serial.printf("WiFi SSID: %s\r\n", apName); - } else { - Serial.printf("WiFi Mode: Client\r\n"); - String ssidName = WiFi.SSID(); - Serial.printf("WiFi Ssid: %s\r\n", ssidName.c_str()); - Serial.printf("WiFi Rssi: %i\r\n", WiFi.RSSI()); - String bssid = WiFi.BSSIDstr(); - Serial.printf("WiFi BSSID: %s\r\n", bssid.c_str()); - } - Serial.printf("WiFi IP address: %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]); - if (!accesspoint) { - Serial.printf("WiFi Netmask: %d.%d.%d.%d\r\n", net[0], net[1], net[2], net[3]); - Serial.printf("WiFi Gateway: %d.%d.%d.%d\r\n", gw[0], gw[1], gw[2], gw[3]); - } - Serial.printf("WiFi Http port: %i, Stream port: %i\r\n", httpPort, streamPort); - byte mac[6]; - WiFi.macAddress(mac); - Serial.printf("WiFi MAC: %02X:%02X:%02X:%02X:%02X:%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - // System - int64_t sec = esp_timer_get_time() / 1000000; - int64_t upDays = int64_t(floor(sec/86400)); - int upHours = int64_t(floor(sec/3600)) % 24; - int upMin = int64_t(floor(sec/60)) % 60; - int upSec = sec % 60; - int McuTc = (temprature_sens_read() - 32) / 1.8; // celsius - int McuTf = temprature_sens_read(); // fahrenheit - Serial.printf("System up: %" PRId64 ":%02i:%02i:%02i (d:h:m:s)\r\n", upDays, upHours, upMin, upSec); - Serial.printf("Active streams: %i, Previous streams: %lu, Images captured: %lu\r\n", streamCount, streamsServed, imagesServed); - Serial.printf("CPU Freq: %i MHz, Xclk Freq: %i MHz\r\n", ESP.getCpuFreqMHz(), xclk); - Serial.printf("MCU temperature : %i C, %i F (approximate)\r\n", McuTc, McuTf); - Serial.printf("Heap: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap(), ESP.getMaxAllocHeap()); - if(psramFound()) { - Serial.printf("Psram: %i, free: %i, min free: %i, max block: %i\r\n", ESP.getPsramSize(), ESP.getFreePsram(), ESP.getMinFreePsram(), ESP.getMaxAllocPsram()); - } else { - Serial.printf("Psram: Not found; please check your board configuration.\r\n"); - Serial.printf("- High resolution/quality settings will show incomplete frames to low memory.\r\n"); - } - // Filesystems - if (filesystem && (SPIFFS.totalBytes() > 0)) { - Serial.printf("Spiffs: %i, used: %i\r\n", SPIFFS.totalBytes(), SPIFFS.usedBytes()); - } else { - Serial.printf("Spiffs: No filesystem found, please check your board configuration.\r\n"); - Serial.printf("- Saving and restoring camera settings will not function without this.\r\n"); - } - Serial.println("Preferences file: "); - dumpPrefs(SPIFFS); - if (critERR.length() > 0) { - Serial.printf("\r\n\r\nAn error or halt has occurred with Camera Hardware, see previous messages.\r\n"); - Serial.printf("A reboot is required to recover from this.\r\nError message: (html)\r\n %s\r\n\r\n", critERR.c_str()); - } - Serial.println(); - return; -} - -static esp_err_t capture_handler(httpd_req_t *req){ - camera_fb_t * fb = NULL; - esp_err_t res = ESP_OK; - - Serial.println("Capture Requested"); - if (autoLamp && (lampVal != -1)) { - setLamp(lampVal); - delay(75); // coupled with the status led flash this gives ~150ms for lamp to settle. - } - flashLED(75); // little flash of status LED - - int64_t fr_start = esp_timer_get_time(); - - fb = esp_camera_fb_get(); - if (!fb) { - Serial.println("CAPTURE: failed to acquire frame"); - httpd_resp_send_500(req); - if (autoLamp && (lampVal != -1)) setLamp(0); - return ESP_FAIL; - } - - httpd_resp_set_type(req, "image/jpeg"); - httpd_resp_set_hdr(req, "Content-Disposition", "inline; filename=capture.jpg"); - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - - size_t fb_len = 0; - if(fb->format == PIXFORMAT_JPEG){ - fb_len = fb->len; - res = httpd_resp_send(req, (const char *)fb->buf, fb->len); - } else { - res = ESP_FAIL; - Serial.println("Capture Error: Non-JPEG image returned by camera module"); - } - esp_camera_fb_return(fb); - fb = NULL; - - int64_t fr_end = esp_timer_get_time(); - if (debugData) { - Serial.printf("JPG: %uB %ums\r\n", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start)/1000)); - } - imagesServed++; - if (autoLamp && (lampVal != -1)) { - setLamp(0); - } - return res; -} - -static esp_err_t stream_handler(httpd_req_t *req){ - camera_fb_t * fb = NULL; - esp_err_t res = ESP_OK; - size_t _jpg_buf_len = 0; - uint8_t * _jpg_buf = NULL; - char * part_buf[64]; - - streamKill = false; - - Serial.println("Stream requested"); - if (autoLamp && (lampVal != -1)) setLamp(lampVal); - streamCount = 1; // at present we only have one stream handler, so values are 0 or 1.. - flashLED(75); // double flash of status LED - delay(75); - flashLED(75); - - static int64_t last_frame = 0; - if(!last_frame) { - last_frame = esp_timer_get_time(); - } - - res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE); - if(res != ESP_OK){ - streamCount = 0; - if (autoLamp && (lampVal != -1)) setLamp(0); - Serial.println("STREAM: failed to set HTTP response type"); - return res; - } - - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - - if(res == ESP_OK){ - res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY)); - } - - while(true){ - fb = esp_camera_fb_get(); - if (!fb) { - Serial.println("STREAM: failed to acquire frame"); - res = ESP_FAIL; - } else { - if(fb->format != PIXFORMAT_JPEG){ - Serial.println("STREAM: Non-JPEG frame returned by camera module"); - res = ESP_FAIL; - } else { - _jpg_buf_len = fb->len; - _jpg_buf = fb->buf; - } - } - if(res == ESP_OK){ - size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len); - res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen); - } - if(res == ESP_OK){ - res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len); - } - if(res == ESP_OK){ - res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY)); - } - if(fb){ - esp_camera_fb_return(fb); - fb = NULL; - _jpg_buf = NULL; - } else if(_jpg_buf){ - free(_jpg_buf); - _jpg_buf = NULL; - } - if(res != ESP_OK){ - // This is the error exit point from the stream loop. - // We end the stream here only if a Hard failure has been encountered or the connection has been interrupted. - Serial.printf("Stream failed, code = %i : %s\r\n", res, esp_err_to_name(res)); - break; - } - if((res != ESP_OK) || streamKill){ - // We end the stream here when a kill is signalled. - Serial.printf("Stream killed\r\n"); - break; - } - int64_t frame_time = esp_timer_get_time() - last_frame; - frame_time /= 1000; - int32_t frame_delay = (minFrameTime > frame_time) ? minFrameTime - frame_time : 0; - delay(frame_delay); - - if (debugData) { - Serial.printf("MJPG: %uB %ums, delay: %ums, framerate (%.1ffps)\r\n", - (uint32_t)(_jpg_buf_len), - (uint32_t)frame_time, frame_delay, 1000.0 / (uint32_t)(frame_time + frame_delay)); - } - last_frame = esp_timer_get_time(); - } - - streamsServed++; - streamCount = 0; - if (autoLamp && (lampVal != -1)) setLamp(0); - Serial.println("Stream ended"); - last_frame = 0; - return res; -} - -static esp_err_t cmd_handler(httpd_req_t *req){ - char* buf; - size_t buf_len; - char variable[32] = {0,}; - char value[32] = {0,}; - - flashLED(75); - - buf_len = httpd_req_get_url_query_len(req) + 1; - if (buf_len > 1) { - buf = (char*)malloc(buf_len); - if(!buf){ - httpd_resp_send_500(req); - return ESP_FAIL; - } - if (httpd_req_get_url_query_str(req, buf, buf_len) == ESP_OK) { - if (httpd_query_key_value(buf, "var", variable, sizeof(variable)) == ESP_OK && - httpd_query_key_value(buf, "val", value, sizeof(value)) == ESP_OK) { - } else { - free(buf); - httpd_resp_send_404(req); - return ESP_FAIL; - } - } else { - free(buf); - httpd_resp_send_404(req); - return ESP_FAIL; - } - free(buf); - } else { - httpd_resp_send_404(req); - return ESP_FAIL; - } - - if (critERR.length() > 0) return httpd_resp_send_500(req); - - int val = atoi(value); - sensor_t * s = esp_camera_sensor_get(); - int res = 0; - if(!strcmp(variable, "framesize")) { - if(s->pixformat == PIXFORMAT_JPEG) res = s->set_framesize(s, (framesize_t)val); - } - else if(!strcmp(variable, "quality")) res = s->set_quality(s, val); - else if(!strcmp(variable, "xclk")) { xclk = val; res = s->set_xclk(s, LEDC_TIMER_0, val); } - else if(!strcmp(variable, "contrast")) res = s->set_contrast(s, val); - else if(!strcmp(variable, "brightness")) res = s->set_brightness(s, val); - else if(!strcmp(variable, "saturation")) res = s->set_saturation(s, val); - else if(!strcmp(variable, "gainceiling")) res = s->set_gainceiling(s, (gainceiling_t)val); - else if(!strcmp(variable, "colorbar")) res = s->set_colorbar(s, val); - else if(!strcmp(variable, "awb")) res = s->set_whitebal(s, val); - else if(!strcmp(variable, "agc")) res = s->set_gain_ctrl(s, val); - else if(!strcmp(variable, "aec")) res = s->set_exposure_ctrl(s, val); - else if(!strcmp(variable, "hmirror")) res = s->set_hmirror(s, val); - else if(!strcmp(variable, "vflip")) res = s->set_vflip(s, val); - else if(!strcmp(variable, "awb_gain")) res = s->set_awb_gain(s, val); - else if(!strcmp(variable, "agc_gain")) res = s->set_agc_gain(s, val); - else if(!strcmp(variable, "aec_value")) res = s->set_aec_value(s, val); - else if(!strcmp(variable, "aec2")) res = s->set_aec2(s, val); - else if(!strcmp(variable, "dcw")) res = s->set_dcw(s, val); - else if(!strcmp(variable, "bpc")) res = s->set_bpc(s, val); - else if(!strcmp(variable, "wpc")) res = s->set_wpc(s, val); - else if(!strcmp(variable, "raw_gma")) res = s->set_raw_gma(s, val); - else if(!strcmp(variable, "lenc")) res = s->set_lenc(s, val); - else if(!strcmp(variable, "special_effect")) res = s->set_special_effect(s, val); - else if(!strcmp(variable, "wb_mode")) res = s->set_wb_mode(s, val); - else if(!strcmp(variable, "ae_level")) res = s->set_ae_level(s, val); - else if(!strcmp(variable, "rotate")) myRotation = val; - else if(!strcmp(variable, "min_frame_time")) minFrameTime = val; - else if(!strcmp(variable, "autolamp") && (lampVal != -1)) { - autoLamp = val; - if (autoLamp) { - if (streamCount > 0) setLamp(lampVal); - else setLamp(0); - } else { - setLamp(lampVal); - } - } - else if(!strcmp(variable, "lamp") && (lampVal != -1)) { - lampVal = constrain(val,0,100); - if (autoLamp) { - if (streamCount > 0) setLamp(lampVal); - else setLamp(0); - } else { - setLamp(lampVal); - } - } - else if(!strcmp(variable, "save_prefs")) { - if (filesystem) savePrefs(SPIFFS); - } - else if(!strcmp(variable, "clear_prefs")) { - if (filesystem) removePrefs(SPIFFS); - } - else if(!strcmp(variable, "reboot")) { - if (lampVal != -1) setLamp(0); // kill the lamp; otherwise it can remain on during the soft-reboot - esp_task_wdt_init(3,true); // schedule a a watchdog panic event for 3 seconds in the future - esp_task_wdt_add(NULL); - periph_module_disable(PERIPH_I2C0_MODULE); // try to shut I2C down properly - periph_module_disable(PERIPH_I2C1_MODULE); - periph_module_reset(PERIPH_I2C0_MODULE); - periph_module_reset(PERIPH_I2C1_MODULE); - Serial.print("REBOOT requested"); - while(true) { - flashLED(50); - delay(150); - Serial.print('.'); - } - } - else { - res = -1; - } - if(res){ - return httpd_resp_send_500(req); - } - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - return httpd_resp_send(req, NULL, 0); -} - -static esp_err_t status_handler(httpd_req_t *req){ - static char json_response[1024]; - char * p = json_response; - *p++ = '{'; - // Do not get attempt to get sensor when in error; causes a panic.. - if (critERR.length() == 0) { - sensor_t * s = esp_camera_sensor_get(); - p+=sprintf(p, "\"lamp\":%d,", lampVal); - p+=sprintf(p, "\"autolamp\":%d,", autoLamp); - p+=sprintf(p, "\"min_frame_time\":%d,", minFrameTime); - p+=sprintf(p, "\"framesize\":%u,", s->status.framesize); - p+=sprintf(p, "\"quality\":%u,", s->status.quality); - p+=sprintf(p, "\"xclk\":%u,", xclk); - p+=sprintf(p, "\"brightness\":%d,", s->status.brightness); - p+=sprintf(p, "\"contrast\":%d,", s->status.contrast); - p+=sprintf(p, "\"saturation\":%d,", s->status.saturation); - p+=sprintf(p, "\"sharpness\":%d,", s->status.sharpness); - p+=sprintf(p, "\"special_effect\":%u,", s->status.special_effect); - p+=sprintf(p, "\"wb_mode\":%u,", s->status.wb_mode); - p+=sprintf(p, "\"awb\":%u,", s->status.awb); - p+=sprintf(p, "\"awb_gain\":%u,", s->status.awb_gain); - p+=sprintf(p, "\"aec\":%u,", s->status.aec); - p+=sprintf(p, "\"aec2\":%u,", s->status.aec2); - p+=sprintf(p, "\"ae_level\":%d,", s->status.ae_level); - p+=sprintf(p, "\"aec_value\":%u,", s->status.aec_value); - p+=sprintf(p, "\"agc\":%u,", s->status.agc); - p+=sprintf(p, "\"agc_gain\":%u,", s->status.agc_gain); - p+=sprintf(p, "\"gainceiling\":%u,", s->status.gainceiling); - p+=sprintf(p, "\"bpc\":%u,", s->status.bpc); - p+=sprintf(p, "\"wpc\":%u,", s->status.wpc); - p+=sprintf(p, "\"raw_gma\":%u,", s->status.raw_gma); - p+=sprintf(p, "\"lenc\":%u,", s->status.lenc); - p+=sprintf(p, "\"vflip\":%u,", s->status.vflip); - p+=sprintf(p, "\"hmirror\":%u,", s->status.hmirror); - p+=sprintf(p, "\"dcw\":%u,", s->status.dcw); - p+=sprintf(p, "\"colorbar\":%u,", s->status.colorbar); - p+=sprintf(p, "\"cam_name\":\"%s\",", myName); - p+=sprintf(p, "\"code_ver\":\"%s\",", myVer); - p+=sprintf(p, "\"rotate\":\"%d\",", myRotation); - p+=sprintf(p, "\"stream_url\":\"%s\"", streamURL); - } - *p++ = '}'; - *p++ = 0; - httpd_resp_set_type(req, "application/json"); - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - return httpd_resp_send(req, json_response, strlen(json_response)); -} - -static esp_err_t info_handler(httpd_req_t *req){ - static char json_response[256]; - char * p = json_response; - *p++ = '{'; - p+=sprintf(p, "\"cam_name\":\"%s\",", myName); - p+=sprintf(p, "\"rotate\":\"%d\",", myRotation); - p+=sprintf(p, "\"stream_url\":\"%s\"", streamURL); - *p++ = '}'; - *p++ = 0; - httpd_resp_set_type(req, "application/json"); - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - return httpd_resp_send(req, json_response, strlen(json_response)); -} - -static esp_err_t favicon_16x16_handler(httpd_req_t *req){ - httpd_resp_set_type(req, "image/png"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)favicon_16x16_png, favicon_16x16_png_len); -} - -static esp_err_t favicon_32x32_handler(httpd_req_t *req){ - httpd_resp_set_type(req, "image/png"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)favicon_32x32_png, favicon_32x32_png_len); -} - -static esp_err_t favicon_ico_handler(httpd_req_t *req){ - httpd_resp_set_type(req, "image/x-icon"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)favicon_ico, favicon_ico_len); -} - -static esp_err_t logo_svg_handler(httpd_req_t *req){ - httpd_resp_set_type(req, "image/svg+xml"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)logo_svg, logo_svg_len); -} - -static esp_err_t dump_handler(httpd_req_t *req){ - flashLED(75); - Serial.println("\r\nDump requested via Web"); - serialDump(); - static char dumpOut[2000] = ""; - char * d = dumpOut; - // Header - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"%s - Status\n", myName); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - if (critERR.length() > 0) { - d+= sprintf(d,"%s


\n", critERR.c_str()); - } - d+= sprintf(d,"

ESP32 Cam Webserver

\n"); - // Module - d+= sprintf(d,"Name: %s
\n", myName); - d+= sprintf(d,"Firmware: %s (base: %s)
\n", myVer, baseVersion); - float sketchPct = 100 * sketchSize / sketchSpace; - d+= sprintf(d,"Sketch Size: %i (total: %i, %.1f%% used)
\n", sketchSize, sketchSpace, sketchPct); - d+= sprintf(d,"MD5: %s
\n", sketchMD5.c_str()); - d+= sprintf(d,"ESP sdk: %s
\n", ESP.getSdkVersion()); - // Network - d+= sprintf(d,"

WiFi

\n"); - if (accesspoint) { - if (captivePortal) { - d+= sprintf(d,"Mode: AccessPoint with captive portal
\n"); - } else { - d+= sprintf(d,"Mode: AccessPoint
\n"); - } - d+= sprintf(d,"SSID: %s
\n", apName); - } else { - d+= sprintf(d,"Mode: Client
\n"); - String ssidName = WiFi.SSID(); - d+= sprintf(d,"SSID: %s
\n", ssidName.c_str()); - d+= sprintf(d,"Rssi: %i
\n", WiFi.RSSI()); - String bssid = WiFi.BSSIDstr(); - d+= sprintf(d,"BSSID: %s
\n", bssid.c_str()); - } - d+= sprintf(d,"IP address: %d.%d.%d.%d
\n", ip[0], ip[1], ip[2], ip[3]); - if (!accesspoint) { - d+= sprintf(d,"Netmask: %d.%d.%d.%d
\n", net[0], net[1], net[2], net[3]); - d+= sprintf(d,"Gateway: %d.%d.%d.%d
\n", gw[0], gw[1], gw[2], gw[3]); - } - d+= sprintf(d,"Http port: %i, Stream port: %i
\n", httpPort, streamPort); - byte mac[6]; - WiFi.macAddress(mac); - d+= sprintf(d,"MAC: %02X:%02X:%02X:%02X:%02X:%02X
\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - - // System - d+= sprintf(d,"

System

\n"); - if (haveTime) { - struct tm timeinfo; - if(getLocalTime(&timeinfo)){ - char timeStringBuff[50]; //50 chars should be enough - strftime(timeStringBuff, sizeof(timeStringBuff), "%H:%M:%S, %A, %B %d %Y", &timeinfo); - //print like "const char*" - d+= sprintf(d,"Time: %s
\n", timeStringBuff); - } - } - int64_t sec = esp_timer_get_time() / 1000000; - int64_t upDays = int64_t(floor(sec/86400)); - int upHours = int64_t(floor(sec/3600)) % 24; - int upMin = int64_t(floor(sec/60)) % 60; - int upSec = sec % 60; - int McuTc = (temprature_sens_read() - 32) / 1.8; // celsius - int McuTf = temprature_sens_read(); // fahrenheit - - d+= sprintf(d,"Up: %" PRId64 ":%02i:%02i:%02i (d:h:m:s)
\n", upDays, upHours, upMin, upSec); - d+= sprintf(d,"Active streams: %i, Previous streams: %lu, Images captured: %lu
\n", streamCount, streamsServed, imagesServed); - d+= sprintf(d,"CPU Freq: %i MHz, Xclk Freq: %i MHz
\n", ESP.getCpuFreqMHz(), xclk); - d+= sprintf(d,""); - d+= sprintf(d,"MCU temperature : %i °C, %i °F\n
", McuTc, McuTf); - d+= sprintf(d,"Heap: %i, free: %i, min free: %i, max block: %i
\n", ESP.getHeapSize(), ESP.getFreeHeap(), ESP.getMinFreeHeap(), ESP.getMaxAllocHeap()); - if (psramFound()) { - d+= sprintf(d,"Psram: %i, free: %i, min free: %i, max block: %i
\n", ESP.getPsramSize(), ESP.getFreePsram(), ESP.getMinFreePsram(), ESP.getMaxAllocPsram()); - } else { - d+= sprintf(d,"Psram: Not found, please check your board configuration.
\n"); - d+= sprintf(d,"- High resolution/quality images & streams will show incomplete frames due to low memory.
\n"); - } - if (filesystem && (SPIFFS.totalBytes() > 0)) { - d+= sprintf(d,"Spiffs: %i, used: %i
\n", SPIFFS.totalBytes(), SPIFFS.usedBytes()); - } else { - d+= sprintf(d,"Spiffs: No filesystem found, please check your board configuration.
\n"); - d+= sprintf(d,"- saving and restoring camera settings will not function without this.
\n"); - } - - // Footer - d+= sprintf(d,"
\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"\n"); - d+= sprintf(d,"
\n\n"); - // A javascript timer to refresh the page every minute. - d+= sprintf(d,"\n\n"); - *d++ = 0; - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, dumpOut, strlen(dumpOut)); -} - -static esp_err_t stop_handler(httpd_req_t *req){ - flashLED(75); - Serial.println("\r\nStream stop requested via Web"); - streamKill = true; - httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*"); - return httpd_resp_send(req, NULL, 0); -} - - -static esp_err_t style_handler(httpd_req_t *req){ - httpd_resp_set_type(req, "text/css"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)style_css, style_css_len); -} - -static esp_err_t streamviewer_handler(httpd_req_t *req){ - flashLED(75); - Serial.println("Stream viewer requested"); - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)streamviewer_html, streamviewer_html_len); -} - -static esp_err_t error_handler(httpd_req_t *req){ - flashLED(75); - Serial.println("Sending error page"); - std::string s(error_html); - size_t index; - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), httpURL); - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), myName); - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), critERR.c_str()); - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)s.c_str(), s.length()); -} - -static esp_err_t index_handler(httpd_req_t *req){ - char* buf; - size_t buf_len; - char view[32] = {0,}; - - flashLED(75); - // See if we have a specific target (full/simple/portal) and serve as appropriate - buf_len = httpd_req_get_url_query_len(req) + 1; - if (buf_len > 1) { - buf = (char*)malloc(buf_len); - if(!buf){ - httpd_resp_send_500(req); - return ESP_FAIL; - } - if (httpd_req_get_url_query_str(req, buf, buf_len) == ESP_OK) { - if (httpd_query_key_value(buf, "view", view, sizeof(view)) == ESP_OK) { - } else { - free(buf); - httpd_resp_send_404(req); - return ESP_FAIL; - } - } else { - free(buf); - httpd_resp_send_404(req); - return ESP_FAIL; - } - free(buf); - } else { - // no target specified; default. - strcpy(view,default_index); - // If captive portal is active send that instead - if (captivePortal) { - strcpy(view,"portal"); - } - } - - if (strncmp(view,"simple", sizeof(view)) == 0) { - Serial.println("Simple index page requested"); - if (critERR.length() > 0) return error_handler(req); - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)index_simple_html, index_simple_html_len); - } else if(strncmp(view,"full", sizeof(view)) == 0) { - Serial.println("Full index page requested"); - if (critERR.length() > 0) return error_handler(req); - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - if (sensorPID == OV3660_PID) { - return httpd_resp_send(req, (const char *)index_ov3660_html, index_ov3660_html_len); - } - return httpd_resp_send(req, (const char *)index_ov2640_html, index_ov2640_html_len); - } else if(strncmp(view,"portal", sizeof(view)) == 0) { - //Prototype captive portal landing page. - Serial.println("Portal page requested"); - std::string s(portal_html); - size_t index; - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), httpURL); - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), streamURL); - while ((index = s.find("")) != std::string::npos) - s.replace(index, strlen(""), myName); - httpd_resp_set_type(req, "text/html"); - httpd_resp_set_hdr(req, "Content-Encoding", "identity"); - return httpd_resp_send(req, (const char *)s.c_str(), s.length()); - } else { - Serial.print("Unknown page requested: "); - Serial.println(view); - httpd_resp_send_404(req); - return ESP_FAIL; - } -} - -void startCameraServer(int hPort, int sPort){ - httpd_config_t config = HTTPD_DEFAULT_CONFIG(); - config.max_uri_handlers = 16; // we use more than the default 8 (on port 80) - - httpd_uri_t index_uri = { - .uri = "/", - .method = HTTP_GET, - .handler = index_handler, - .user_ctx = NULL - }; - httpd_uri_t status_uri = { - .uri = "/status", - .method = HTTP_GET, - .handler = status_handler, - .user_ctx = NULL - }; - httpd_uri_t cmd_uri = { - .uri = "/control", - .method = HTTP_GET, - .handler = cmd_handler, - .user_ctx = NULL - }; - httpd_uri_t capture_uri = { - .uri = "/capture", - .method = HTTP_GET, - .handler = capture_handler, - .user_ctx = NULL - }; - httpd_uri_t style_uri = { - .uri = "/style.css", - .method = HTTP_GET, - .handler = style_handler, - .user_ctx = NULL - }; - httpd_uri_t favicon_16x16_uri = { - .uri = "/favicon-16x16.png", - .method = HTTP_GET, - .handler = favicon_16x16_handler, - .user_ctx = NULL - }; - httpd_uri_t favicon_32x32_uri = { - .uri = "/favicon-32x32.png", - .method = HTTP_GET, - .handler = favicon_32x32_handler, - .user_ctx = NULL - }; - httpd_uri_t favicon_ico_uri = { - .uri = "/favicon.ico", - .method = HTTP_GET, - .handler = favicon_ico_handler, - .user_ctx = NULL - }; - httpd_uri_t logo_svg_uri = { - .uri = "/logo.svg", - .method = HTTP_GET, - .handler = logo_svg_handler, - .user_ctx = NULL - }; - httpd_uri_t dump_uri = { - .uri = "/dump", - .method = HTTP_GET, - .handler = dump_handler, - .user_ctx = NULL - }; - httpd_uri_t stop_uri = { - .uri = "/stop", - .method = HTTP_GET, - .handler = stop_handler, - .user_ctx = NULL - }; - httpd_uri_t stream_uri = { - .uri = "/", - .method = HTTP_GET, - .handler = stream_handler, - .user_ctx = NULL - }; - httpd_uri_t streamviewer_uri = { - .uri = "/view", - .method = HTTP_GET, - .handler = streamviewer_handler, - .user_ctx = NULL - }; - httpd_uri_t info_uri = { - .uri = "/info", - .method = HTTP_GET, - .handler = info_handler, - .user_ctx = NULL - }; - httpd_uri_t error_uri = { - .uri = "/", - .method = HTTP_GET, - .handler = error_handler, - .user_ctx = NULL - }; - httpd_uri_t viewerror_uri = { - .uri = "/view", - .method = HTTP_GET, - .handler = error_handler, - .user_ctx = NULL - }; - - // Request Handlers; config.max_uri_handlers (above) must be >= the number of handlers - config.server_port = hPort; - config.ctrl_port = hPort; - Serial.printf("Starting web server on port: '%d'\r\n", config.server_port); - if (httpd_start(&camera_httpd, &config) == ESP_OK) { - if (critERR.length() > 0) { - httpd_register_uri_handler(camera_httpd, &error_uri); - } else { - httpd_register_uri_handler(camera_httpd, &index_uri); - httpd_register_uri_handler(camera_httpd, &cmd_uri); - httpd_register_uri_handler(camera_httpd, &status_uri); - httpd_register_uri_handler(camera_httpd, &capture_uri); - } - httpd_register_uri_handler(camera_httpd, &style_uri); - httpd_register_uri_handler(camera_httpd, &favicon_16x16_uri); - httpd_register_uri_handler(camera_httpd, &favicon_32x32_uri); - httpd_register_uri_handler(camera_httpd, &favicon_ico_uri); - httpd_register_uri_handler(camera_httpd, &logo_svg_uri); - httpd_register_uri_handler(camera_httpd, &dump_uri); - httpd_register_uri_handler(camera_httpd, &stop_uri); - } - - config.server_port = sPort; - config.ctrl_port = sPort; - Serial.printf("Starting stream server on port: '%d'\r\n", config.server_port); - if (httpd_start(&stream_httpd, &config) == ESP_OK) { - if (critERR.length() > 0) { - httpd_register_uri_handler(camera_httpd, &error_uri); - httpd_register_uri_handler(camera_httpd, &viewerror_uri); - } else { - httpd_register_uri_handler(stream_httpd, &stream_uri); - httpd_register_uri_handler(stream_httpd, &info_uri); - httpd_register_uri_handler(stream_httpd, &streamviewer_uri); - } - httpd_register_uri_handler(stream_httpd, &favicon_16x16_uri); - httpd_register_uri_handler(stream_httpd, &favicon_32x32_uri); - httpd_register_uri_handler(stream_httpd, &favicon_ico_uri); - } -} diff --git a/data/default_cam.json b/data/default_cam.json new file mode 100755 index 00000000..720ec478 --- /dev/null +++ b/data/default_cam.json @@ -0,0 +1,31 @@ +{ + "lamp":-1, + "autolamp":0, + "framesize":8, + "quality":12, + "xclk":8, + "frame_rate":25, + "brightness":0, + "contrast":0, + "saturation":0, + "special_effect":0, + "wb_mode":0,"awb":1, + "awb_gain":1, + "aec":1, + "aec2":0, + "ae_level":0, + "aec_value":204, + "agc":1, + "agc_gain":0, + "gainceiling":0, + "bpc":0, + "wpc":1, + "raw_gma":1, + "lenc":1, + "vflip":0, + "hmirror":0, + "dcw":1, + "colorbar":0, + "rotate":"0", + "debug_mode": false +} diff --git a/data/default_conn.json b/data/default_conn.json new file mode 100644 index 00000000..7d67dc10 --- /dev/null +++ b/data/default_conn.json @@ -0,0 +1,10 @@ +{ "mdns_name":"esp32cam", + "http_port":80, + "ota_enabled":true, + "ota_password":"", + "ap_ssid":"esp32cam", + "ap_pass":"123456789", + "ap_ip": {"ip":"192.168.4.1", "netmask":"255.255.255.0"}, + "ap_dhcp":true, + "debug_mode": false +} \ No newline at end of file diff --git a/data/default_httpd.json b/data/default_httpd.json new file mode 100644 index 00000000..6318521a --- /dev/null +++ b/data/default_httpd.json @@ -0,0 +1,3 @@ +{ + "debug_mode": false +} \ No newline at end of file diff --git a/data/www/dump.html b/data/www/dump.html new file mode 100644 index 00000000..e9089087 --- /dev/null +++ b/data/www/dump.html @@ -0,0 +1,140 @@ + + + + + + Patriot Crawler - Status + + + + + + +

ESP32 Cam Webserver

+
+
+ + + +
+ + + + \ No newline at end of file diff --git a/data/www/error.html b/data/www/error.html new file mode 100644 index 00000000..2f266aa8 --- /dev/null +++ b/data/www/error.html @@ -0,0 +1,16 @@ + + + + + + %CAMNAME% - Error + + + + + + +

%CAMNAME%

+ %ERRORTEXT% + + diff --git a/Docs/favicon-16x16.png b/data/www/favicon-16x16.png similarity index 100% rename from Docs/favicon-16x16.png rename to data/www/favicon-16x16.png diff --git a/Docs/favicon-32x32.png b/data/www/favicon-32x32.png similarity index 100% rename from Docs/favicon-32x32.png rename to data/www/favicon-32x32.png diff --git a/Docs/favicon.ico b/data/www/favicon.ico similarity index 100% rename from Docs/favicon.ico rename to data/www/favicon.ico diff --git a/index_ov2640.h b/data/www/index_ov2640.html similarity index 90% rename from index_ov2640.h rename to data/www/index_ov2640.html index 179cb153..3ce99bfc 100644 --- a/index_ov2640.h +++ b/data/www/index_ov2640.html @@ -1,8 +1,4 @@ -/* - * primary HTML for the OV2640 camera module - */ - -const uint8_t index_ov2640_html[] = R"=====( + @@ -49,7 +45,7 @@ const uint8_t index_ov2640_html[] = R"=====( -
+
+
+ + +
Low
@@ -244,20 +252,6 @@ const uint8_t index_ov2640_html[] = R"=====(
-
- - -
@@ -271,7 +265,7 @@ const uint8_t index_ov2640_html[] = R"=====(
@@ -284,7 +278,9 @@ const uint8_t index_ov2640_html[] = R"=====(
@@ -294,7 +290,7 @@ const uint8_t index_ov2640_html[] = R"=====( -)====="; - -size_t index_ov2640_html_len = sizeof(index_ov2640_html)-1; + diff --git a/index_ov3660.h b/data/www/index_ov3660.html similarity index 96% rename from index_ov3660.h rename to data/www/index_ov3660.html index 0c260a2f..598fed14 100644 --- a/index_ov3660.h +++ b/data/www/index_ov3660.html @@ -1,8 +1,4 @@ -/* - * primary HTML for the OV3660 camera module - */ - -const uint8_t index_ov3660_html[] = R"=====( + @@ -258,9 +254,9 @@ const uint8_t index_ov3660_html[] = R"=====( -
- - @@ -285,7 +281,7 @@ const uint8_t index_ov3660_html[] = R"=====(
@@ -332,7 +328,7 @@ const uint8_t index_ov3660_html[] = R"=====( const savePrefsButton = document.getElementById('save_prefs') const clearPrefsButton = document.getElementById('clear_prefs') const rebootButton = document.getElementById('reboot') - const minFrameTime = document.getElementById('min_frame_time') + const frameRate = document.getElementById('frame_rate') const hide = el => { el.classList.add('hidden') @@ -394,8 +390,8 @@ const uint8_t index_ov3660_html[] = R"=====( } else if(el.id === "rotate"){ rotate.value = value; applyRotation(); - } else if(el.id === "min_frame_time"){ - min_frame_time.value = value; + } else if(el.id === "frame_rate"){ + frame_rate.value = value; } else if(el.id === "stream_url"){ streamURL = value; viewerURL = value + 'view'; @@ -597,8 +593,8 @@ const uint8_t index_ov3660_html[] = R"=====( updateConfig(framesize) } - minFrameTime.onchange = () => { - updateConfig(minFrameTime) + frameRate.onchange = () => { + updateConfig(frameRate) } xclk.onchange = () => { @@ -607,7 +603,7 @@ const uint8_t index_ov3660_html[] = R"=====( } swapButton.onclick = () => { - window.open('/?view=simple','_self'); + window.open('/view?mode=simple','_self'); } savePrefsButton.onclick = () => { @@ -637,6 +633,4 @@ const uint8_t index_ov3660_html[] = R"=====( }) -)====="; - -size_t index_ov3660_html_len = sizeof(index_ov3660_html)-1; + diff --git a/index_other.h b/data/www/index_simple.html similarity index 54% rename from index_other.h rename to data/www/index_simple.html index 1eda91e1..e6c005e3 100644 --- a/index_other.h +++ b/data/www/index_simple.html @@ -1,13 +1,9 @@ -/* - * simpleviewer and streamviewer - */ - -const uint8_t index_simple_html[] = R"=====( + - ESP32-CAM Simplified View + %CAMNAME% Simplified View @@ -59,6 +55,18 @@ const uint8_t index_simple_html[] = R"=====( +
+ + +
@@ -69,7 +77,9 @@ const uint8_t index_simple_html[] = R"=====(
@@ -79,13 +89,13 @@ const uint8_t index_simple_html[] = R"=====( -)====="; - -size_t index_simple_html_len = sizeof(index_simple_html)-1; - -/* Stream Viewer */ - -const uint8_t streamviewer_html[] = R"=====( - - - - - ESP32-CAM StreamViewer - - - - - - -
-
-
- - - - -
- -
- - - -)====="; - -size_t streamviewer_html_len = sizeof(streamviewer_html)-1; - -/* Captive Portal page - we replace the <> delimited strings with correct values as it is served */ - -const std::string portal_html = R"=====( - - - - - <CAMNAME> - portal - - - - - - -

- access portal

- -
- Camera Details
- -)====="; - -/* Error page - we replace the <> delimited strings with correct values as it is served */ - -const std::string error_html = R"=====( - - - - - <CAMNAME> - Error - - - - - - -

- - - -)====="; + diff --git a/Docs/logo.png b/data/www/logo.png similarity index 100% rename from Docs/logo.png rename to data/www/logo.png diff --git a/Docs/logo.svg b/data/www/logo.svg similarity index 100% rename from Docs/logo.svg rename to data/www/logo.svg diff --git a/data/www/portal.html b/data/www/portal.html new file mode 100644 index 00000000..03e7e2d6 --- /dev/null +++ b/data/www/portal.html @@ -0,0 +1,27 @@ + + + + + + %CAMNAME% - portal + + + + + + +

%CAMNAME% - access portal

+ +
+ Camera Details
+ + diff --git a/data/www/setup.html b/data/www/setup.html new file mode 100644 index 00000000..8a966302 --- /dev/null +++ b/data/www/setup.html @@ -0,0 +1,24 @@ + + + + + Patriot Crawler - Setup + + + + + + +

%CAMNAME% - Setup

+ +
+ + +
+
+ + +
+
+ + \ No newline at end of file diff --git a/data/www/stream.css b/data/www/stream.css new file mode 100644 index 00000000..a58b36a7 --- /dev/null +++ b/data/www/stream.css @@ -0,0 +1,38 @@ +/* Streamviewer stylesheet, define all style elements here */ +body { + font-family: Arial,Helvetica,sans-serif; + background: #181818; + color: #EFEFEF; + font-size: 16px; + margin: 0px; + overflow:hidden; + } + + img { + object-fit: contain; + display: block; + margin: 0px; + padding: 0px; + width: 100vw; + height: 100vh; + } + + .loader { + border: 0.5em solid #f3f3f3; + border-top: 0.5em solid #000000; + border-radius: 50%; + width: 1em; + height: 1em; + -webkit-animation: spin 2s linear infinite; /* Safari */ + animation: spin 2s linear infinite; + } + + @-webkit-keyframes spin { /* Safari */ + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(360deg); } + } + + @keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } \ No newline at end of file diff --git a/data/www/streamviewer.html b/data/www/streamviewer.html new file mode 100644 index 00000000..6928911a --- /dev/null +++ b/data/www/streamviewer.html @@ -0,0 +1,106 @@ + + + + + + ESP32-CAM StreamViewer + + + + + + +
+
+
+ + + + +
+ +
+ + + + + + diff --git a/css.h b/data/www/style.css similarity index 96% rename from css.h rename to data/www/style.css index 66a0deb3..89c24383 100644 --- a/css.h +++ b/data/www/style.css @@ -1,11 +1,3 @@ -/* - * Master CSS file for the camera pages - */ - -const uint8_t style_css[] = R"=====(/* - * CSS for the esp32 cam webserver - */ - body { font-family: Arial,Helvetica,sans-serif; background: #181818; @@ -57,6 +49,14 @@ figure { margin-inline-end: 0 } +figure iframe { + display: block; + max-width: 100%; + width: 640px; + height: 480px; + border-radius: 4px; + margin-top: 8px; +} figure img { display: block; max-width: 100%; @@ -362,6 +362,4 @@ select { @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } -})====="; - -size_t style_css_len = sizeof(style_css)-1; +} diff --git a/data/www/ws.js b/data/www/ws.js new file mode 100644 index 00000000..bc34eefa --- /dev/null +++ b/data/www/ws.js @@ -0,0 +1,26 @@ +var urlCreator = window.URL || window.webkitURL; +const stream = document.getElementById('video'); +var streamURL = stream.getAttribute("data-ws"); + +const ws = new WebSocket(streamURL); +ws.binaryType = 'arraybuffer'; + +ws.onmessage = function(event) { + var arrayBufferView = new Uint8Array(event.data); + var blob = new Blob([arrayBufferView], {type: "image/jpeg"}); + var imageUrl = urlCreator.createObjectURL(blob); + video.src = imageUrl; +} + +ws.onopen = function(event) { + console.log(event.currentTarget.url); +} + +ws.onclose = function(event) { + console.log(event); +} + +ws.onerror = function() { + console.log(error); +} + diff --git a/esp32-cam-webserver.ino b/esp32-cam-webserver.ino index 64d6483a..8bc75a87 100644 --- a/esp32-cam-webserver.ino +++ b/esp32-cam-webserver.ino @@ -1,645 +1,20 @@ -#include -#include -#include -#include -#include -#include -#include -#include "src/parsebytes.h" -#include "time.h" -#include +#include "src/app_config.h" // global definitions +#include "src/storage.h" // Filesystem +#include "src/app_conn.h" // Conectivity +#include "src/app_cam.h" // Camera +#include "src/app_httpd.h" // Web server +#include "src/camera_pins.h" // Pin Mappings -/* This sketch is a extension/expansion/reork of the 'official' ESP32 Camera example - * sketch from Expressif: - * https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Camera/CameraWebServer - * - * It is modified to allow control of Illumination LED Lamps's (present on some modules), - * greater feedback via a status LED, and the HTML contents are present in plain text - * for easy modification. - * - * A camera name can now be configured, and wifi details can be stored in an optional - * header file to allow easier updated of the repo. - * - * The web UI has had changes to add the lamp control, rotation, a standalone viewer, - * more feeedback, new controls and other tweaks and changes, - * note: Make sure that you have either selected ESP32 AI Thinker, - * or another board which has PSRAM enabled to use high resolution camera modes +/* + * This sketch is a extension/expansion/rework of the ESP32 Camera webserer example. + * */ -/* - * FOR NETWORK AND HARDWARE SETTINGS COPY OR RENAME 'myconfig.sample.h' TO 'myconfig.h' AND EDIT THAT. - * - * By default this sketch will assume an AI-THINKER ESP-CAM and create - * an accesspoint called "ESP32-CAM-CONNECT" (password: "InsecurePassword") - * - */ - -// Primary config, or defaults. -#if __has_include("myconfig.h") - struct station { const char ssid[65]; const char password[65]; const bool dhcp;}; // do no edit - #include "myconfig.h" -#else - #warning "Using Defaults: Copy myconfig.sample.h to myconfig.h and edit that to use your own settings" - #define WIFI_AP_ENABLE - #define CAMERA_MODEL_AI_THINKER - struct station { const char ssid[65]; const char password[65]; const bool dhcp;} - stationList[] = {{"ESP32-CAM-CONNECT","InsecurePassword", true}}; -#endif - -// Upstream version string -#include "src/version.h" - -// Pin Mappings -#include "camera_pins.h" - -// Camera config structure -camera_config_t config; - -// Internal filesystem (SPIFFS) -// used for non-volatile camera settings -#include "storage.h" - -// Sketch Info -int sketchSize; -int sketchSpace; -String sketchMD5; - -// Start with accesspoint mode disabled, wifi setup will activate it if -// no known networks are found, and WIFI_AP_ENABLE has been defined -bool accesspoint = false; - -// IP address, Netmask and Gateway, populated when connected -IPAddress ip; -IPAddress net; -IPAddress gw; - -// Declare external function from app_httpd.cpp -extern void startCameraServer(int hPort, int sPort); -extern void serialDump(); - -// Names for the Camera. (set these in myconfig.h) -#if defined(CAM_NAME) - char myName[] = CAM_NAME; -#else - char myName[] = "ESP32 camera server"; -#endif - -#if defined(MDNS_NAME) - char mdnsName[] = MDNS_NAME; -#else - char mdnsName[] = "esp32-cam"; -#endif - -// Ports for http and stream (override in myconfig.h) -#if defined(HTTP_PORT) - int httpPort = HTTP_PORT; -#else - int httpPort = 80; -#endif - -#if defined(STREAM_PORT) - int streamPort = STREAM_PORT; -#else - int streamPort = 81; -#endif - -#if !defined(WIFI_WATCHDOG) - #define WIFI_WATCHDOG 15000 -#endif - -// Number of known networks in stationList[] -int stationCount = sizeof(stationList)/sizeof(stationList[0]); - -// If we have AP mode enabled, ignore first entry in the stationList[] -#if defined(WIFI_AP_ENABLE) - int firstStation = 1; -#else - int firstStation = 0; -#endif - -// Select between full and simple index as the default. -#if defined(DEFAULT_INDEX_FULL) - char default_index[] = "full"; -#else - char default_index[] = "simple"; -#endif - -// DNS server -const byte DNS_PORT = 53; -DNSServer dnsServer; -bool captivePortal = false; -char apName[64] = "Undefined"; - -// The app and stream URLs -char httpURL[64] = {"Undefined"}; -char streamURL[64] = {"Undefined"}; - -// Counters for info screens and debug -int8_t streamCount = 0; // Number of currently active streams -unsigned long streamsServed = 0; // Total completed streams -unsigned long imagesServed = 0; // Total image requests - -// This will be displayed to identify the firmware -char myVer[] PROGMEM = __DATE__ " @ " __TIME__; - -// This will be set to the sensors PID (identifier) during initialisation -//camera_pid_t sensorPID; -int sensorPID; - -// Camera module bus communications frequency. -// Originally: config.xclk_freq_mhz = 20000000, but this lead to visual artifacts on many modules. -// See https://github.com/espressif/esp32-camera/issues/150#issuecomment-726473652 et al. -#if !defined (XCLK_FREQ_MHZ) - unsigned long xclk = 8; -#else - unsigned long xclk = XCLK_FREQ_MHZ; -#endif - -// initial rotation -// can be set in myconfig.h -#if !defined(CAM_ROTATION) - #define CAM_ROTATION 0 -#endif -int myRotation = CAM_ROTATION; - -// minimal frame duration in ms, effectively 1/maxFPS -#if !defined(MIN_FRAME_TIME) - #define MIN_FRAME_TIME 0 -#endif -int minFrameTime = MIN_FRAME_TIME; - -// Illumination LAMP and status LED -#if defined(LAMP_DISABLE) - int lampVal = -1; // lamp is disabled in config -#elif defined(LAMP_PIN) - #if defined(LAMP_DEFAULT) - int lampVal = constrain(LAMP_DEFAULT,0,100); // initial lamp value, range 0-100 - #else - int lampVal = 0; //default to off - #endif -#else - int lampVal = -1; // no lamp pin assigned -#endif - -#if defined(LED_DISABLE) - #undef LED_PIN // undefining this disables the notification LED -#endif - -bool autoLamp = false; // Automatic lamp (auto on while camera running) - -int lampChannel = 7; // a free PWM channel (some channels used by camera) -const int pwmfreq = 50000; // 50K pwm frequency -const int pwmresolution = 9; // duty cycle bit range -const int pwmMax = pow(2,pwmresolution)-1; - -#if defined(NO_FS) - bool filesystem = false; -#else - bool filesystem = true; -#endif - -#if defined(NO_OTA) - bool otaEnabled = false; -#else - bool otaEnabled = true; -#endif - -#if defined(OTA_PASSWORD) - char otaPassword[] = OTA_PASSWORD; -#else - char otaPassword[] = ""; -#endif - -#if defined(NTPSERVER) - bool haveTime = true; - const char* ntpServer = NTPSERVER; - const long gmtOffset_sec = NTP_GMT_OFFSET; - const int daylightOffset_sec = NTP_DST_OFFSET; -#else - bool haveTime = false; - const char* ntpServer = ""; - const long gmtOffset_sec = 0; - const int daylightOffset_sec = 0; -#endif - -// Critical error string; if set during init (camera hardware failure) it -// will be returned for all http requests -String critERR = ""; - -// Debug flag for stream and capture data -bool debugData; - -void debugOn() { - debugData = true; - Serial.println("Camera debug data is enabled (send 'd' for status dump, or any other char to disable debug)"); -} - -void debugOff() { - debugData = false; - Serial.println("Camera debug data is disabled (send 'd' for status dump, or any other char to enable debug)"); -} - -// Serial input (debugging controls) -void handleSerial() { - if (Serial.available()) { - char cmd = Serial.read(); - if (cmd == 'd' ) { - serialDump(); - } else { - if (debugData) debugOff(); - else debugOn(); - } - } - while (Serial.available()) Serial.read(); // chomp the buffer -} - -// Notification LED -void flashLED(int flashtime) { -#if defined(LED_PIN) // If we have it; flash it. - digitalWrite(LED_PIN, LED_ON); // On at full power. - delay(flashtime); // delay - digitalWrite(LED_PIN, LED_OFF); // turn Off -#else - return; // No notifcation LED, do nothing, no delay -#endif -} - -// Lamp Control -void setLamp(int newVal) { -#if defined(LAMP_PIN) - if (newVal != -1) { - // Apply a logarithmic function to the scale. - int brightness = round((pow(2,(1+(newVal*0.02)))-2)/6*pwmMax); - ledcWrite(lampChannel, brightness); - Serial.print("Lamp: "); - Serial.print(newVal); - Serial.print("%, pwm = "); - Serial.println(brightness); - } -#endif -} - -void printLocalTime(bool extraData=false) { - struct tm timeinfo; - if(!getLocalTime(&timeinfo)){ - Serial.println("Failed to obtain time"); - } else { - Serial.println(&timeinfo, "%H:%M:%S, %A, %B %d %Y"); - } - if (extraData) { - Serial.printf("NTP Server: %s, GMT Offset: %li(s), DST Offset: %i(s)\r\n", ntpServer, gmtOffset_sec, daylightOffset_sec); - } -} - -void calcURLs() { - // Set the URL's - #if defined(URL_HOSTNAME) - if (httpPort != 80) { - sprintf(httpURL, "http://%s:%d/", URL_HOSTNAME, httpPort); - } else { - sprintf(httpURL, "http://%s/", URL_HOSTNAME); - } - sprintf(streamURL, "http://%s:%d/", URL_HOSTNAME, streamPort); - #else - Serial.println("Setting httpURL"); - if (httpPort != 80) { - sprintf(httpURL, "http://%d.%d.%d.%d:%d/", ip[0], ip[1], ip[2], ip[3], httpPort); - } else { - sprintf(httpURL, "http://%d.%d.%d.%d/", ip[0], ip[1], ip[2], ip[3]); - } - sprintf(streamURL, "http://%d.%d.%d.%d:%d/", ip[0], ip[1], ip[2], ip[3], streamPort); - #endif -} - -void StartCamera() { - // Populate camera config structure with hardware and other defaults - config.ledc_channel = LEDC_CHANNEL_0; - config.ledc_timer = LEDC_TIMER_0; - config.pin_d0 = Y2_GPIO_NUM; - config.pin_d1 = Y3_GPIO_NUM; - config.pin_d2 = Y4_GPIO_NUM; - config.pin_d3 = Y5_GPIO_NUM; - config.pin_d4 = Y6_GPIO_NUM; - config.pin_d5 = Y7_GPIO_NUM; - config.pin_d6 = Y8_GPIO_NUM; - config.pin_d7 = Y9_GPIO_NUM; - config.pin_xclk = XCLK_GPIO_NUM; - config.pin_pclk = PCLK_GPIO_NUM; - config.pin_vsync = VSYNC_GPIO_NUM; - config.pin_href = HREF_GPIO_NUM; - config.pin_sscb_sda = SIOD_GPIO_NUM; - config.pin_sscb_scl = SIOC_GPIO_NUM; - config.pin_pwdn = PWDN_GPIO_NUM; - config.pin_reset = RESET_GPIO_NUM; - config.xclk_freq_hz = xclk * 1000000; - config.pixel_format = PIXFORMAT_JPEG; - // Low(ish) default framesize and quality - config.frame_size = FRAMESIZE_SVGA; - config.jpeg_quality = 12; - config.fb_location = CAMERA_FB_IN_PSRAM; - config.fb_count = 2; - config.grab_mode = CAMERA_GRAB_LATEST; - - #if defined(CAMERA_MODEL_ESP_EYE) - pinMode(13, INPUT_PULLUP); - pinMode(14, INPUT_PULLUP); - #endif - - // camera init - esp_err_t err = esp_camera_init(&config); - if (err != ESP_OK) { - delay(100); // need a delay here or the next serial o/p gets missed - Serial.printf("\r\n\r\nCRITICAL FAILURE: Camera sensor failed to initialise.\r\n\r\n"); - Serial.printf("A full (hard, power off/on) reboot will probably be needed to recover from this.\r\n"); - Serial.printf("Meanwhile; this unit will reboot in 1 minute since these errors sometime clear automatically\r\n"); - // Reset the I2C bus.. may help when rebooting. - periph_module_disable(PERIPH_I2C0_MODULE); // try to shut I2C down properly in case that is the problem - periph_module_disable(PERIPH_I2C1_MODULE); - periph_module_reset(PERIPH_I2C0_MODULE); - periph_module_reset(PERIPH_I2C1_MODULE); - // And set the error text for the UI - critERR = "

Error!


Camera module failed to initialise!

Please reset (power off/on) the camera.

"; - critERR += "

We will continue to reboot once per minute since this error sometimes clears automatically.

"; - // Start a 60 second watchdog timer - esp_task_wdt_init(60,true); - esp_task_wdt_add(NULL); - } else { - Serial.println("Camera init succeeded"); - - // Get a reference to the sensor - sensor_t * s = esp_camera_sensor_get(); - - // Dump camera module, warn for unsupported modules. - sensorPID = s->id.PID; - switch (sensorPID) { - case OV9650_PID: Serial.println("WARNING: OV9650 camera module is not properly supported, will fallback to OV2640 operation"); break; - case OV7725_PID: Serial.println("WARNING: OV7725 camera module is not properly supported, will fallback to OV2640 operation"); break; - case OV2640_PID: Serial.println("OV2640 camera module detected"); break; - case OV3660_PID: Serial.println("OV3660 camera module detected"); break; - default: Serial.println("WARNING: Camera module is unknown and not properly supported, will fallback to OV2640 operation"); - } - - // OV3660 initial sensors are flipped vertically and colors are a bit saturated - if (sensorPID == OV3660_PID) { - s->set_vflip(s, 1); //flip it back - s->set_brightness(s, 1); //up the blightness just a bit - s->set_saturation(s, -2); //lower the saturation - } - - // M5 Stack Wide has special needs - #if defined(CAMERA_MODEL_M5STACK_WIDE) - s->set_vflip(s, 1); - s->set_hmirror(s, 1); - #endif - - // Config can override mirror and flip - #if defined(H_MIRROR) - s->set_hmirror(s, H_MIRROR); - #endif - #if defined(V_FLIP) - s->set_vflip(s, V_FLIP); - #endif - - // set initial frame rate - #if defined(DEFAULT_RESOLUTION) - s->set_framesize(s, DEFAULT_RESOLUTION); - #endif - - /* - * Add any other defaults you want to apply at startup here: - * uncomment the line and set the value as desired (see the comments) - * - * these are defined in the esp headers here: - * https://github.com/espressif/esp32-camera/blob/master/driver/include/sensor.h#L149 - */ - - //s->set_framesize(s, FRAMESIZE_SVGA); // FRAMESIZE_[QQVGA|HQVGA|QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA|QXGA(ov3660)]); - //s->set_quality(s, val); // 10 to 63 - //s->set_brightness(s, 0); // -2 to 2 - //s->set_contrast(s, 0); // -2 to 2 - //s->set_saturation(s, 0); // -2 to 2 - //s->set_special_effect(s, 0); // 0 to 6 (0 - No Effect, 1 - Negative, 2 - Grayscale, 3 - Red Tint, 4 - Green Tint, 5 - Blue Tint, 6 - Sepia) - //s->set_whitebal(s, 1); // aka 'awb' in the UI; 0 = disable , 1 = enable - //s->set_awb_gain(s, 1); // 0 = disable , 1 = enable - //s->set_wb_mode(s, 0); // 0 to 4 - if awb_gain enabled (0 - Auto, 1 - Sunny, 2 - Cloudy, 3 - Office, 4 - Home) - //s->set_exposure_ctrl(s, 1); // 0 = disable , 1 = enable - //s->set_aec2(s, 0); // 0 = disable , 1 = enable - //s->set_ae_level(s, 0); // -2 to 2 - //s->set_aec_value(s, 300); // 0 to 1200 - //s->set_gain_ctrl(s, 1); // 0 = disable , 1 = enable - //s->set_agc_gain(s, 0); // 0 to 30 - //s->set_gainceiling(s, (gainceiling_t)0); // 0 to 6 - //s->set_bpc(s, 0); // 0 = disable , 1 = enable - //s->set_wpc(s, 1); // 0 = disable , 1 = enable - //s->set_raw_gma(s, 1); // 0 = disable , 1 = enable - //s->set_lenc(s, 1); // 0 = disable , 1 = enable - //s->set_hmirror(s, 0); // 0 = disable , 1 = enable - //s->set_vflip(s, 0); // 0 = disable , 1 = enable - //s->set_dcw(s, 1); // 0 = disable , 1 = enable - //s->set_colorbar(s, 0); // 0 = disable , 1 = enable - } - // We now have camera with default init -} - -void WifiSetup() { - // Feedback that we are now attempting to connect - flashLED(300); - delay(100); - flashLED(300); - Serial.println("Starting WiFi"); - - // Disable power saving on WiFi to improve responsiveness - // (https://github.com/espressif/arduino-esp32/issues/1484) - WiFi.setSleep(false); - - Serial.print("Known external SSIDs: "); - if (stationCount > firstStation) { - for (int i=firstStation; i < stationCount; i++) Serial.printf(" '%s'", stationList[i].ssid); - } else { - Serial.print("None"); - } - Serial.println(); - byte mac[6] = {0,0,0,0,0,0}; - WiFi.macAddress(mac); - Serial.printf("MAC address: %02X:%02X:%02X:%02X:%02X:%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); - - int bestStation = -1; - long bestRSSI = -1024; - char bestSSID[65] = ""; - uint8_t bestBSSID[6]; - if (stationCount > firstStation) { - // We have a list to scan - Serial.printf("Scanning local Wifi Networks\r\n"); - int stationsFound = WiFi.scanNetworks(); - Serial.printf("%i networks found\r\n", stationsFound); - if (stationsFound > 0) { - for (int i = 0; i < stationsFound; ++i) { - // Print SSID and RSSI for each network found - String thisSSID = WiFi.SSID(i); - int thisRSSI = WiFi.RSSI(i); - String thisBSSID = WiFi.BSSIDstr(i); - Serial.printf("%3i : [%s] %s (%i)", i + 1, thisBSSID.c_str(), thisSSID.c_str(), thisRSSI); - // Scan our list of known external stations - for (int sta = firstStation; sta < stationCount; sta++) { - if ((strcmp(stationList[sta].ssid, thisSSID.c_str()) == 0) || - (strcmp(stationList[sta].ssid, thisBSSID.c_str()) == 0)) { - Serial.print(" - Known!"); - // Chose the strongest RSSI seen - if (thisRSSI > bestRSSI) { - bestStation = sta; - strncpy(bestSSID, thisSSID.c_str(), 64); - // Convert char bssid[] to a byte array - parseBytes(thisBSSID.c_str(), ':', bestBSSID, 6, 16); - bestRSSI = thisRSSI; - } - } - } - Serial.println(); - } - } - } else { - // No list to scan, therefore we are an accesspoint - accesspoint = true; - } - - if (bestStation == -1) { - if (!accesspoint) { - #if defined(WIFI_AP_ENABLE) - Serial.println("No known networks found, entering AccessPoint fallback mode"); - accesspoint = true; - #else - Serial.println("No known networks found"); - #endif - } else { - Serial.println("AccessPoint mode selected in config"); - } - } else { - Serial.printf("Connecting to Wifi Network %d: [%02X:%02X:%02X:%02X:%02X:%02X] %s \r\n", - bestStation, bestBSSID[0], bestBSSID[1], bestBSSID[2], bestBSSID[3], - bestBSSID[4], bestBSSID[5], bestSSID); - // Apply static settings if necesscary - if (stationList[bestStation].dhcp == false) { - #if defined(ST_IP) - Serial.println("Applying static IP settings"); - #if !defined (ST_GATEWAY) || !defined (ST_NETMASK) - #error "You must supply both Gateway and NetMask when specifying a static IP address" - #endif - IPAddress staticIP(ST_IP); - IPAddress gateway(ST_GATEWAY); - IPAddress subnet(ST_NETMASK); - #if !defined(ST_DNS1) - WiFi.config(staticIP, gateway, subnet); - #else - IPAddress dns1(ST_DNS1); - #if !defined(ST_DNS2) - WiFi.config(staticIP, gateway, subnet, dns1); - #else - IPAddress dns2(ST_DNS2); - WiFi.config(staticIP, gateway, subnet, dns1, dns2); - #endif - #endif - #else - Serial.println("Static IP settings requested but not defined in config, falling back to dhcp"); - #endif - } - - WiFi.setHostname(mdnsName); - - // Initiate network connection request (3rd argument, channel = 0 is 'auto') - WiFi.begin(bestSSID, stationList[bestStation].password, 0, bestBSSID); - - // Wait to connect, or timeout - unsigned long start = millis(); - while ((millis() - start <= WIFI_WATCHDOG) && (WiFi.status() != WL_CONNECTED)) { - delay(500); - Serial.print('.'); - } - // If we have connected, inform user - if (WiFi.status() == WL_CONNECTED) { - Serial.println("Client connection succeeded"); - accesspoint = false; - // Note IP details - ip = WiFi.localIP(); - net = WiFi.subnetMask(); - gw = WiFi.gatewayIP(); - Serial.printf("IP address: %d.%d.%d.%d\r\n",ip[0],ip[1],ip[2],ip[3]); - Serial.printf("Netmask : %d.%d.%d.%d\r\n",net[0],net[1],net[2],net[3]); - Serial.printf("Gateway : %d.%d.%d.%d\r\n",gw[0],gw[1],gw[2],gw[3]); - calcURLs(); - // Flash the LED to show we are connected - for (int i = 0; i < 5; i++) { - flashLED(50); - delay(150); - } - } else { - Serial.println("Client connection Failed"); - WiFi.disconnect(); // (resets the WiFi scan) - } - } - - if (accesspoint && (WiFi.status() != WL_CONNECTED)) { - // The accesspoint has been enabled, and we have not connected to any existing networks - #if defined(AP_CHAN) - Serial.println("Setting up Fixed Channel AccessPoint"); - Serial.print(" SSID : "); - Serial.println(stationList[0].ssid); - Serial.print(" Password : "); - Serial.println(stationList[0].password); - Serial.print(" Channel : "); - Serial.println(AP_CHAN); - WiFi.softAP(stationList[0].ssid, stationList[0].password, AP_CHAN); - # else - Serial.println("Setting up AccessPoint"); - Serial.print(" SSID : "); - Serial.println(stationList[0].ssid); - Serial.print(" Password : "); - Serial.println(stationList[0].password); - WiFi.softAP(stationList[0].ssid, stationList[0].password); - #endif - #if defined(AP_ADDRESS) - // User has specified the AP details; apply them after a short delay - // (https://github.com/espressif/arduino-esp32/issues/985#issuecomment-359157428) - delay(100); - IPAddress local_IP(AP_ADDRESS); - IPAddress gateway(AP_ADDRESS); - IPAddress subnet(255,255,255,0); - WiFi.softAPConfig(local_IP, gateway, subnet); - #endif - // Note AP details - ip = WiFi.softAPIP(); - net = WiFi.subnetMask(); - gw = WiFi.gatewayIP(); - strcpy(apName, stationList[0].ssid); - Serial.printf("IP address: %d.%d.%d.%d\r\n",ip[0],ip[1],ip[2],ip[3]); - calcURLs(); - // Flash the LED to show we are connected - for (int i = 0; i < 5; i++) { - flashLED(150); - delay(50); - } - // Start the DNS captive portal if requested - if (stationList[0].dhcp == true) { - Serial.println("Starting Captive Portal"); - dnsServer.start(DNS_PORT, "*", ip); - captivePortal = true; - } - } -} - void setup() { Serial.begin(115200); Serial.setDebugOutput(true); - Serial.println(); - Serial.println("===="); - Serial.print("esp32-cam-webserver: "); - Serial.println(myName); - Serial.print("Code Built: "); - Serial.println(myVer); - Serial.print("Base Release: "); - Serial.println(baseVersion); - Serial.println(); // Warn if no PSRAM is detected (typically user error with board selection in the IDE) if(!psramFound()){ @@ -650,152 +25,57 @@ void setup() { } } - if (stationCount == 0) { - Serial.println("\r\nFatal Error; Halting"); - while (true) { - Serial.println("No wifi details have been configured; we cannot connect to existing WiFi or start our own AccessPoint, there is no point in proceeding."); - delay(5000); - } - } - #if defined(LED_PIN) // If we have a notification LED, set it to output pinMode(LED_PIN, OUTPUT); - digitalWrite(LED_PIN, LED_ON); #endif - // Start the SPIFFS filesystem before we initialise the camera - if (filesystem) { - filesystemStart(); - delay(200); // a short delay to let spi bus settle after SPIFFS init - } + // Start the filesystem before we initialise the camera + filesystemStart(); + delay(200); // a short delay to let spi bus settle after init // Start (init) the camera - StartCamera(); + AppCam.start(); - // Now load and apply any saved preferences - if (filesystem) { - delay(200); // a short delay to let spi bus settle after camera init - loadPrefs(SPIFFS); - } else { - Serial.println("No Internal Filesystem, cannot load or save preferences"); - } + // Now load and apply preferences + delay(200); // a short delay to let spi bus settle after camera init + AppCam.loadPrefs(); /* * Camera setup complete; initialise the rest of the hardware. */ // Start Wifi and loop until we are connected or have started an AccessPoint - while ((WiFi.status() != WL_CONNECTED) && !accesspoint) { - WifiSetup(); - delay(1000); - } - - // Set up OTA - if (otaEnabled) { - // Start OTA once connected - Serial.println("Setting up OTA"); - // Port defaults to 3232 - // ArduinoOTA.setPort(3232); - // Hostname defaults to esp3232-[MAC] - ArduinoOTA.setHostname(mdnsName); - // No authentication by default - if (strlen(otaPassword) != 0) { - ArduinoOTA.setPassword(otaPassword); - Serial.printf("OTA Password: %s\n\r", otaPassword); - } else { - Serial.printf("\r\nNo OTA password has been set! (insecure)\r\n\r\n"); + while (AppConn.wifiStatus() != WL_CONNECTED) { + if(AppConn.start() != WL_CONNECTED) { + Serial.println("Failed to initiate WiFi, retryng in 5 sec ... "); + delay(5000); } - ArduinoOTA - .onStart([]() { - String type; - if (ArduinoOTA.getCommand() == U_FLASH) - type = "sketch"; - else // U_SPIFFS - // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() - type = "filesystem"; - Serial.println("Start updating " + type); - // Stop the camera since OTA will crash the module if it is running. - // the unit will need rebooting to restart it, either by OTA on success, or manually by the user - Serial.println("Stopping Camera"); - esp_err_t err = esp_camera_deinit(); - critERR = "

OTA Has been started


Camera has Halted!

"; - critERR += "

Wait for OTA to finish and reboot, or reboot manually to recover

"; - }) - .onEnd([]() { - Serial.println("\r\nEnd"); - }) - .onProgress([](unsigned int progress, unsigned int total) { - Serial.printf("Progress: %u%%\r", (progress / (total / 100))); - }) - .onError([](ota_error_t error) { - Serial.printf("Error[%u]: ", error); - if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); - else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); - else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); - else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); - else if (error == OTA_END_ERROR) Serial.println("End Failed"); - }); - ArduinoOTA.begin(); - } else { - Serial.println("OTA is disabled"); - - if (!MDNS.begin(mdnsName)) { - Serial.println("Error setting up MDNS responder!"); + else { + // Flash the LED to show we are connected + notifyConect(); } - Serial.println("mDNS responder started"); } - //MDNS Config -- note that if OTA is NOT enabled this needs prior steps! - MDNS.addService("http", "tcp", 80); - Serial.println("Added HTTP service to MDNS server"); + // Set up OTA + #ifndef NO_OTA + AppConn.enableOTA(); + #else + AppConn.enableOTA(false); + #endif + + // http service attached to port + AppConn.configMDNS(); // Set time via NTP server when enabled - if (haveTime) { + if(!AppConn.isAccessPoint()) { + AppConn.configNTP(); Serial.print("Time: "); - configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); - printLocalTime(true); - } else { - Serial.println("Time functions disabled"); - } - - // Gather static values used when dumping status; these are slow functions, so just do them once during startup - sketchSize = ESP.getSketchSize(); - sketchSpace = ESP.getFreeSketchSpace(); - sketchMD5 = ESP.getSketchMD5(); - - // Initialise and set the lamp - if (lampVal != -1) { - #if defined(LAMP_PIN) - ledcSetup(lampChannel, pwmfreq, pwmresolution); // configure LED PWM channel - ledcAttachPin(LAMP_PIN, lampChannel); // attach the GPIO pin to the channel - if (autoLamp) setLamp(0); // set default value - else setLamp(lampVal); - #endif - } else { - Serial.println("No lamp, or lamp disabled in config"); - } - - // Start the camera server - startCameraServer(httpPort, streamPort); - - if (critERR.length() == 0) { - Serial.printf("\r\nCamera Ready!\r\nUse '%s' to connect\r\n", httpURL); - Serial.printf("Stream viewer available at '%sview'\r\n", streamURL); - Serial.printf("Raw stream URL is '%s'\r\n", streamURL); - #if defined(DEBUG_DEFAULT_ON) - debugOn(); - #else - debugOff(); - #endif - } else { - Serial.printf("\r\nCamera unavailable due to initialisation errors.\r\n\r\n"); + AppConn.printLocalTime(true); } - // Info line; use for Info messages; eg 'This is a Beta!' warnings, etc. as necesscary - // Serial.print("\r\nThis is the 4.1 beta\r\n"); + // Start the web server + AppHttpd.start(); - // As a final init step chomp out the serial buffer in case we have recieved mis-keys or garbage during startup - while (Serial.available()) Serial.read(); } void loop() { @@ -804,42 +84,93 @@ void loop() { * The stream and URI handler processes initiated by the startCameraServer() call at the * end of setup() will handle the camera and UI processing from now on. */ - if (accesspoint) { + if (AppConn.isAccessPoint()) { // Accespoint is permanently up, so just loop, servicing the captive portal as needed // Rather than loop forever, follow the watchdog, in case we later add auto re-scan. - unsigned long start = millis(); - while (millis() - start < WIFI_WATCHDOG ) { - delay(100); - if (otaEnabled) ArduinoOTA.handle(); + unsigned long pingwifi = millis(); + while (millis() - pingwifi < WIFI_WATCHDOG ) { + // delay(100); + AppConn.handleOTA(); handleSerial(); - if (captivePortal) dnsServer.processNextRequest(); + AppConn.handleDNSRequest(); } } else { // client mode can fail; so reconnect as appropriate - static bool warned = false; - if (WiFi.status() == WL_CONNECTED) { - // We are connected, wait a bit and re-check - if (warned) { - // Tell the user if we have just reconnected - Serial.println("WiFi reconnected"); - warned = false; - } - // loop here for WIFI_WATCHDOG, turning debugData true/false depending on serial input.. - unsigned long start = millis(); - while (millis() - start < WIFI_WATCHDOG ) { - delay(100); - if (otaEnabled) ArduinoOTA.handle(); + + if (AppConn.wifiStatus() == WL_CONNECTED) { + // We are connected + // loop here for § + unsigned long pingwifi = millis(); + while (millis() - pingwifi < WIFI_WATCHDOG ) { + AppConn.handleOTA(); handleSerial(); } } else { - // disconnected; attempt to reconnect - if (!warned) { - // Tell the user if we just disconnected - WiFi.disconnect(); // ensures disconnect is complete, wifi scan cleared - Serial.println("WiFi disconnected, retrying"); - warned = true; + // disconnected; notify + notifyDisconnect(); + + // ensures disconnect is complete, wifi scan cleared + AppConn.stop(); + + //attempt to reconnect + if(AppConn.start() == WL_CONNECTED) { + notifyConect(); } - WifiSetup(); + } } } + + +/// @brief tries to initialize the filesystem until success, otherwise loops indefinitely +void filesystemStart(){ + Serial.println("Starting filesystem"); + while ( !init_storage() ) { + // if we sit in this loop something is wrong; + Serial.println("Filesystem mount failed"); + for (int i=0; i<10; i++) { + flashLED(100); // Show filesystem failure + delay(100); + } + delay(1000); + Serial.println("Retrying.."); + } + + listDir("/", 0); +} + +// Serial input +void handleSerial() { + if(Serial.available()) { + char cmd = Serial.read(); + + // Rceiving commands and data from serial. Any input, which doesnt start from '#' is ignored. + if (cmd == '#' ) { + String rsp = Serial.readStringUntil('\n'); + rsp.trim(); + sprintf(AppHttpd.getSerialBuffer(), rsp.c_str()); + } + } +} + +void notifyConect() { + for (int i = 0; i < 5; i++) { + flashLED(150); + delay(50); + } + AppHttpd.serialSendCommand("Connected"); +} + +void notifyDisconnect() { + AppHttpd.serialSendCommand("Disconnected"); +} + +// Flash LED if LED pin defined +void flashLED(int flashtime) { +#ifdef LED_PIN + digitalWrite(LED_PIN, LED_ON); + delay(flashtime); + digitalWrite(LED_PIN, LED_OFF); +#endif +} + diff --git a/myconfig.sample.h b/myconfig.sample.h deleted file mode 100644 index 86efcafe..00000000 --- a/myconfig.sample.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Rename this example to 'myconfig.h' and fill in your details. - * - * The local config is in the '.gitignore' file, which helps to keep details secret. - */ - - -/* Give the camera a name for the web interface */ -#define CAM_NAME "ESP32 camera server" - -/* - * Give the network name - * It will be used as the hostname in ST modes - * This is the name the camera will advertise on the network (mdns) for services and OTA - */ -#define MDNS_NAME "esp32-cam" - -/* - * WiFi Settings - * - * For the simplest connection to an existing network - * just replace your ssid and password in the line below. - */ - -struct station stationList[] = {{"my_ssid","my_password", true}}; - -/* - * You can extend the stationList[] above with additional SSID+Password pairs - -struct station stationList[] = {{"ssid1", "pass1", true}, - {"ssid2", "pass2", true}, - {"ssid3", "pass3", false}}; - - * Note the use of nested braces '{' and '}' to group each entry, and commas ',' to separate them. - * - * The first entry (ssid1, above) in the stationList is special, if WIFI_AP_ENABLE has been uncommented (below) - * it will be used for the AccessPoint ssid and password. See the comments there for more. - * - * The 'dhcp' setting controls whether the station uses DHCP or static IP settings; if in doubt leave 'true' - * - * You can also use a BSSID (eg: "2F:67:94:F5:BB:6A", a colon separated mac address string) in place of - * the ssid to force connections to specific networks even when the ssid's collide, - */ - -/* Extended WiFi Settings */ - -/* - * If defined: URL_HOSTNAME will be used in place of the IP address in internal URL's - */ -// #define URL_HOSTNAME "esp32-cam" - -/* - * Static network settings for client mode - * - * Note: The same settings will be applied to all client connections where the dhcp setting is 'false' - * You must define all three: IP, Gateway and NetMask - */ -// warning - IP addresses must be separated with commas (,) and not decimals (.) -// #define ST_IP 192,168,0,123 -// #define ST_GATEWAY 192,168,0,2 -// #define ST_NETMASK 255,255,255,0 -// One or two DNS servers can be supplied, only the NTP code currently uses them -// #define ST_DNS1 192,168,0,2 -// #define ST_DNS2 8,8,8,8 - -/* - * AccessPoint; - * - * Uncomment to enable AP mode; - * - */ -// #define WIFI_AP_ENABLE - -/* AP Mode Notes: - * - * Once enabled the AP ssid and password will be taken from the 1st entry in the stationList[] above. - * - * If there are further entries listed they will be scanned at startup in the normal way and connected to - * if they are found. AP then works as a fallback mode for when there are no 'real' networks available. - * - * Setting the 'dhcp' field to true for the AP enables a captive portal and attempts to send - * all visitors to the webcam page, with varying degrees of success depending on the visitors - * browser and other settings. - */ -// Optionally change the AccessPoint ip address (default = 192.168.4.1) -// warning - IP addresses must be separated with commas (,) and not decimals (.) -// #define AP_ADDRESS 192,168,4,1 - -// Uncomment this to force the AccessPoint channel number, default = 1 -// #define AP_CHAN 1 - -/* - * Port numbers for WebUI and Stream, defaults to 80 and 81. - * Uncomment and edit as appropriate - */ -// #define HTTP_PORT 80 -// #define STREAM_PORT 81 - -/* - * Wifi Watchdog defines how long we spend waiting for a connection before retrying, - * and how often we check to see if we are still connected, milliseconds - * You may wish to increase this if your WiFi is slow at conencting. - */ -// #define WIFI_WATCHDOG 15000 - -/* - * Over The Air firmware updates can be disabled by uncommenting the folowing line - * When enabled the device will advertise itself using the MDNS_NAME defined above - */ -// #define NO_OTA - -/* - * OTA can be password protected to prevent the device being hijacked - */ -// #define OTA_PASSWORD "SuperVisor" - -/* NTP - * Uncomment the following to enable the on-board clock - * Pick a nearby pool server from: https://www.ntppool.org/zone/@ - * Set the GMT offset to match your timezone IN SECONDS; - * see https://en.wikipedia.org/wiki/List_of_UTC_time_offsets - * 1hr = 3600 seconds; do the math ;-) - * Default is CET (Central European Time), eg GMT + 1hr - * The DST offset is usually 1 hour (again, in seconds) if used in your country. - */ -//#define NTPSERVER ".pool.ntp.org" -//#define NTP_GMT_OFFSET 3600 -//#define NTP_DST_OFFSET 3600 - -/* - * Camera Defaults - * - */ -// Initial Reslolution, default SVGA -// available values are: FRAMESIZE_[THUMB|QQVGA|HQVGA|QVGA|CIF|HVGA|VGA|SVGA|XGA|HD|SXGA|UXGA] + [FHD|QXGA] for 3Mp Sensors; eg ov3660 -// #define DEFAULT_RESOLUTION FRAMESIZE_SVGA - -// Hardware Horizontal Mirror, 0 or 1 (overrides default board setting) -// #define H_MIRROR 0 - -// Hardware Vertical Flip , 0 or 1 (overrides default board setting) -// #define V_FLIP 1 - -// Browser Rotation (one of: -90,0,90, default 0) -// #define CAM_ROTATION 0 - -// Minimal frame duration in ms, used to limit max FPS -// max_fps = 1000/min_frame_time -// #define MIN_FRAME_TIME 500 - -/* - * Additional Features - * - */ -// Default Page: uncomment to make the full control page the default, otherwise show simple viewer -// #define DEFAULT_INDEX_FULL - -// Uncomment to disable the notification LED on the module -// #define LED_DISABLE - -// Uncomment to disable the illumination lamp features -// #define LAMP_DISABLE - -// Define the startup lamp power setting (as a percentage, defaults to 0%) -// Saved (SPIFFS) user settings will override this -// #define LAMP_DEFAULT 0 - -// Assume the module used has a SPIFFS/LittleFS partition, and use that for persistent setting storage -// Uncomment to disable this this, the controls will still be shown in the UI but are inoperative. -// #define NO_FS - -// Uncomment to enable camera debug info on serial by default -// #define DEBUG_DEFAULT_ON - -/* - * Camera Hardware Selectiom - * - * You must uncomment one, and only one, of the lines below to select your board model. - * Remember to also select the board in the Boards Manager - * This is not optional - */ -#define CAMERA_MODEL_AI_THINKER // default -// #define CAMERA_MODEL_WROVER_KIT -// #define CAMERA_MODEL_ESP_EYE -// #define CAMERA_MODEL_M5STACK_PSRAM -// #define CAMERA_MODEL_M5STACK_V2_PSRAM -// #define CAMERA_MODEL_M5STACK_WIDE -// #define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM -// #define CAMERA_MODEL_TTGO_T_JOURNAL -// #define CAMERA_MODEL_ARDUCAM_ESP32S_UNO - -// Initial Camera module bus communications frequency -// Currently defaults to 8MHz -// The post-initialisation (runtime) value can be set and edited by the user in the UI -// For clone modules that have camera module and SPIFFS startup issues try setting -// this very low (start at 2MHZ and increase): -// #define XCLK_FREQ_MHZ 2 diff --git a/platformio.ini b/platformio.ini index cabb5b46..b8838b0f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -42,8 +42,12 @@ framework = arduino build_flags = -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue + +; using the latest stable version +lib_deps = https://github.com/me-no-dev/ESPAsyncWebServer.git + ; For OTA uploading uncomment the next lines and add the IP address or mDNS name of the camera module, and the OTA password ;upload_protocol = espota ;upload_port = ;upload_flags = -; --auth= +; --auth= \ No newline at end of file diff --git a/src/app_cam.cpp b/src/app_cam.cpp new file mode 100644 index 00000000..f10cd092 --- /dev/null +++ b/src/app_cam.cpp @@ -0,0 +1,233 @@ +#include "app_cam.h" + +CLAppCam::CLAppCam() { + setTag("cam"); +} + + +int CLAppCam::start() { + // Populate camera config structure with hardware and other defaults + config.ledc_channel = LEDC_CHANNEL_0; + config.ledc_timer = LEDC_TIMER_0; + config.pin_d0 = Y2_GPIO_NUM; + config.pin_d1 = Y3_GPIO_NUM; + config.pin_d2 = Y4_GPIO_NUM; + config.pin_d3 = Y5_GPIO_NUM; + config.pin_d4 = Y6_GPIO_NUM; + config.pin_d5 = Y7_GPIO_NUM; + config.pin_d6 = Y8_GPIO_NUM; + config.pin_d7 = Y9_GPIO_NUM; + config.pin_xclk = XCLK_GPIO_NUM; + config.pin_pclk = PCLK_GPIO_NUM; + config.pin_vsync = VSYNC_GPIO_NUM; + config.pin_href = HREF_GPIO_NUM; + config.pin_sscb_sda = SIOD_GPIO_NUM; + config.pin_sscb_scl = SIOC_GPIO_NUM; + config.pin_pwdn = PWDN_GPIO_NUM; + config.pin_reset = RESET_GPIO_NUM; + config.xclk_freq_hz = xclk * 1000000; + config.pixel_format = PIXFORMAT_JPEG; + // Low(ish) default framesize and quality + config.frame_size = FRAMESIZE_SVGA; + config.jpeg_quality = 12; + config.fb_location = CAMERA_FB_IN_PSRAM; + config.fb_count = 2; + config.grab_mode = CAMERA_GRAB_LATEST; + + #if defined(CAMERA_MODEL_ESP_EYE) + pinMode(13, INPUT_PULLUP); + pinMode(14, INPUT_PULLUP); + #endif + + // camera init + esp_err_t err = esp_camera_init(&config); + if (err != ESP_OK) { + delay(100); // need a delay here or the next serial o/p gets missed + Serial.printf("\r\n\r\nCRITICAL FAILURE: Camera sensor failed to initialise.\r\n\r\n"); + Serial.printf("A full (hard, power off/on) reboot will probably be needed to recover from this.\r\n"); + Serial.printf("Meanwhile; this unit will reboot in 1 minute since these errors sometime clear automatically\r\n"); + // Reset the I2C bus.. may help when rebooting. + periph_module_disable(PERIPH_I2C0_MODULE); // try to shut I2C down properly in case that is the problem + periph_module_disable(PERIPH_I2C1_MODULE); + periph_module_reset(PERIPH_I2C0_MODULE); + periph_module_reset(PERIPH_I2C1_MODULE); + // And set the error text for the UI + critERR = "

Error!


Camera module failed to initialise!

Please reset (power off/on) the camera.

"; + critERR += "

We will continue to reboot once per minute since this error sometimes clears automatically.

"; + // Start a 60 second watchdog timer + esp_task_wdt_init(60,true); + esp_task_wdt_add(NULL); + } else { + Serial.println("Camera init succeeded"); + + // Get a reference to the sensor + sensor_t * s = esp_camera_sensor_get(); + + // Dump camera module, warn for unsupported modules. + sensorPID = s->id.PID; + switch (sensorPID) { + case OV9650_PID: Serial.println("WARNING: OV9650 camera module is not properly supported, will fallback to OV2640 operation"); break; + case OV7725_PID: Serial.println("WARNING: OV7725 camera module is not properly supported, will fallback to OV2640 operation"); break; + case OV2640_PID: Serial.println("OV2640 camera module detected"); break; + case OV3660_PID: Serial.println("OV3660 camera module detected"); break; + default: Serial.println("WARNING: Camera module is unknown and not properly supported, will fallback to OV2640 operation"); + } + + } + + // Initialise and set the lamp + if (lampVal != -1) { + #if defined(LAMP_PIN) + ledcSetup(lampChannel, pwmfreq, pwmresolution); // configure LED PWM channel + ledcAttachPin(LAMP_PIN, lampChannel); // attach the GPIO pin to the channel + setLamp(0); // set default value + #endif + } else { + Serial.println("No lamp, or lamp disabled in config"); + } + + return OK; +} + +int CLAppCam::stop() { + Serial.println("Stopping Camera"); + return esp_camera_deinit(); +} + + +// Lamp Control +void CLAppCam::setLamp(int newVal) { +#if defined(LAMP_PIN) + lampVal = newVal; + + // Apply a logarithmic function to the scale. + if(lampVal >=0) { + int brightness = round((pow(2,(1+(lampVal*0.02)))-2)/6*pwmMax); + ledcWrite(lampChannel, brightness); + } + +#endif +} + +int CLAppCam::loadPrefs() { + jparse_ctx_t jctx; + int ret = parsePrefs(&jctx); + if(ret != OS_SUCCESS) { + return ret; + } + + // process local settings + + json_obj_get_int(&jctx, "lamp", &lampVal); + json_obj_get_int(&jctx, "frame_rate", &frameRate); + json_obj_get_bool(&jctx, "autolamp", &autoLamp); + json_obj_get_int(&jctx, "xclk", &xclk); + json_obj_get_int(&jctx, "rotate", &myRotation); + + // get sensor reference + sensor_t * s = esp_camera_sensor_get(); + // process camera settings + if(s) { + s->set_framesize(s, (framesize_t)readJsonIntVal(&jctx, "framesize")); + s->set_quality(s, readJsonIntVal(&jctx, "quality")); + s->set_xclk(s, LEDC_TIMER_0, xclk); + s->set_brightness(s, readJsonIntVal(&jctx, "brightness")); + s->set_contrast(s, readJsonIntVal(&jctx, "contrast")); + s->set_saturation(s, readJsonIntVal(&jctx, "saturation")); + s->set_special_effect(s, readJsonIntVal(&jctx, "special_effect")); + s->set_wb_mode(s, readJsonIntVal(&jctx, "wb_mode")); + s->set_whitebal(s, readJsonIntVal(&jctx, "awb")); + s->set_awb_gain(s, readJsonIntVal(&jctx, "awb_gain")); + s->set_exposure_ctrl(s, readJsonIntVal(&jctx, "aec")); + s->set_aec2(s, readJsonIntVal(&jctx, "aec2")); + s->set_ae_level(s, readJsonIntVal(&jctx, "ae_level")); + s->set_aec_value(s, readJsonIntVal(&jctx, "aec_value")); + s->set_gain_ctrl(s, readJsonIntVal(&jctx, "agc")); + s->set_agc_gain(s, readJsonIntVal(&jctx, "agc_gain")); + s->set_gainceiling(s, (gainceiling_t)readJsonIntVal(&jctx, "gainceiling")); + s->set_bpc(s, readJsonIntVal(&jctx, "bpc")); + s->set_wpc(s, readJsonIntVal(&jctx, "wpc")); + s->set_raw_gma(s, readJsonIntVal(&jctx, "raw_gma")); + s->set_lenc(s, readJsonIntVal(&jctx, "lenc")); + s->set_vflip(s, readJsonIntVal(&jctx, "vflip")); + s->set_hmirror(s, readJsonIntVal(&jctx, "hmirror")); + s->set_dcw(s, readJsonIntVal(&jctx, "dcw")); + s->set_colorbar(s, readJsonIntVal(&jctx, "colorbar")); + + bool dbg; + if(json_obj_get_bool(&jctx, "debug_mode", &dbg) == OS_SUCCESS) + setDebugMode(dbg); + } + else { + Serial.println("Failed to get camera handle. Camera settings skipped"); + } + + + // close the file + json_parse_end(&jctx); + return ret; +} + +int CLAppCam::savePrefs(){ + char * prefs_file = getPrefsFileName(true); + + if (fsStorage->exists(prefs_file)) { + Serial.printf("Updating %s\r\n", prefs_file); + } else { + Serial.printf("Creating %s\r\n", prefs_file); + } + + char buf[1024]; + json_gen_str_t jstr; + json_gen_str_start(&jstr, buf, sizeof(buf), NULL, NULL); + json_gen_start_object(&jstr); + json_gen_obj_set_int(&jstr, "lamp", lampVal); + json_gen_obj_set_bool(&jstr, "autolamp", autoLamp); + json_gen_obj_set_int(&jstr, "xclk", xclk); + json_gen_obj_set_int(&jstr, "frame_rate", frameRate); + json_gen_obj_set_int(&jstr, "rotate", myRotation); + + sensor_t * s = esp_camera_sensor_get(); + json_gen_obj_set_int(&jstr, "framesize", s->status.framesize); + json_gen_obj_set_int(&jstr, "quality", s->status.quality); + json_gen_obj_set_int(&jstr, "brightness", s->status.brightness); + json_gen_obj_set_int(&jstr, "contrast", s->status.contrast); + json_gen_obj_set_int(&jstr, "saturation", s->status.saturation); + json_gen_obj_set_int(&jstr, "special_effect", s->status.special_effect); + json_gen_obj_set_int(&jstr, "wb_mode", s->status.wb_mode); + json_gen_obj_set_int(&jstr, "awb", s->status.awb); + json_gen_obj_set_int(&jstr, "awb_gain", s->status.awb_gain); + json_gen_obj_set_int(&jstr, "aec", s->status.aec); + json_gen_obj_set_int(&jstr, "aec2", s->status.aec2); + json_gen_obj_set_int(&jstr, "ae_level", s->status.ae_level); + json_gen_obj_set_int(&jstr, "aec_value", s->status.aec_value); + json_gen_obj_set_int(&jstr, "agc", s->status.agc); + json_gen_obj_set_int(&jstr, "agc_gain", s->status.agc_gain); + json_gen_obj_set_int(&jstr, "gainceiling", s->status.gainceiling); + json_gen_obj_set_int(&jstr, "bpc", s->status.bpc); + json_gen_obj_set_int(&jstr, "wpc", s->status.wpc); + json_gen_obj_set_int(&jstr, "raw_gma", s->status.raw_gma); + json_gen_obj_set_int(&jstr, "lenc", s->status.lenc); + json_gen_obj_set_int(&jstr, "vflip", s->status.vflip); + json_gen_obj_set_int(&jstr, "hmirror", s->status.hmirror); + json_gen_obj_set_int(&jstr, "dcw", s->status.dcw); + json_gen_obj_set_int(&jstr, "colorbar", s->status.colorbar); + + json_gen_obj_set_bool(&jstr, "debug_mode", isDebugMode()); + + File file = fsStorage->open(prefs_file, FILE_WRITE); + if(file) { + file.print(buf); + file.close(); + return OK; + } + else { + Serial.printf("Failed to save camera preferences to file %s\r\n", prefs_file); + return FAIL; + } + +} + + + +CLAppCam AppCam; \ No newline at end of file diff --git a/src/app_cam.h b/src/app_cam.h new file mode 100644 index 00000000..bcee3456 --- /dev/null +++ b/src/app_cam.h @@ -0,0 +1,93 @@ +#ifndef app_cam_h +#define app_cam_h + +#include +#include +#include + +#include "app_component.h" +#include "camera_pins.h" + +#define LAMP_DEFAULT 80 // initial lamp value, range 0-100 + +#if defined(LED_DISABLE) + #undef LED_PIN // undefining this disables the notification LED +#endif + +class CLAppCam : public CLAppComponent { + public: + + CLAppCam(); + + int start(); + int stop(); + int loadPrefs(); + int savePrefs(); + + void setLamp(int newVal = LAMP_DEFAULT); + int getLamp() {return lampVal;}; + + void setAutoLamp(bool val) {autoLamp = val;}; + bool isAutoLamp() { return autoLamp;}; + + int getSensorPID() {return sensorPID;}; + String getErr() {return critERR;}; + + int getFrameRate() {return frameRate;}; + void setFrameRate(int newFrameRate) {frameRate = newFrameRate;}; + + void setXclk(int val) {xclk = val;}; + int getXclk() {return xclk;}; + + void setRotation(int val) {myRotation = val;}; + int getRotation() {return myRotation;}; + + private: + // Camera config structure + camera_config_t config; + + // This will be set to the sensors PID (identifier) during initialisation + //camera_pid_t sensorPID; + int sensorPID; + + // Camera module bus communications frequency. + // Originally: config.xclk_freq_mhz = 20000000, but this lead to visual artifacts on many modules. + // See https://github.com/espressif/esp32-camera/issues/150#issuecomment-726473652 et al. + // Initial setting is configured in /default_prefs.json + int xclk = 8; + + // frame rate in FPS + // default can be set in /default_prefs.json + int frameRate = 25; + + // Flash LED lamp parameters. + bool autoLamp = false; // Automatic lamp (auto on while camera running) + + // Illumination LAMP and status LED + #if defined(LAMP_DISABLE) + int lampVal = -1; // lamp is disabled in config + #elif defined(LAMP_PIN) + int lampVal = 0; + #else + int lampVal = -1; // no lamp pin assigned + #endif + + int lampChannel = 7; // a free PWM channel (some channels used by camera) + const int pwmfreq = 50000; // 50K pwm frequency + const int pwmresolution = 9; // duty cycle bit range + const int pwmMax = pow(2,pwmresolution)-1; + + // Critical error string; if set during init (camera hardware failure) it + // will be returned for stream and still image requests + String critERR = ""; + + // initial rotation + // default can be set in /default_prefs.json + int myRotation = 0; + + +}; + +extern CLAppCam AppCam; + +#endif \ No newline at end of file diff --git a/src/app_component.cpp b/src/app_component.cpp new file mode 100644 index 00000000..c877945d --- /dev/null +++ b/src/app_component.cpp @@ -0,0 +1,67 @@ +#include "app_component.h" + +char * CLAppComponent::getPrefsFileName(bool forsave) { + if(tag) { + sprintf(prefs, "/%s.json", tag); + if(fsStorage->exists(prefs) || forsave) + return prefs; + else { + Serial.printf("Pref file %s not found, falling back to default\r\n", prefs); + sprintf(prefs, "/default_%s.json", tag); + return prefs; + } + } + else + return prefs; +} + +void CLAppComponent::dumpPrefs() { + char *prefs_file = getPrefsFileName(); + String s; + if(readFileToString(prefs_file, &s) != OK) { + Serial.printf("Preference file %s not found.\r\n", prefs_file); + return; + } + Serial.println(s); +} + +int CLAppComponent::readJsonIntVal(jparse_ctx_t *jctx_ptr, char* token) { + int res=0; + if(json_obj_get_int(jctx_ptr, token, &res) == OS_SUCCESS) + return res; + + return 0; +} + +void CLAppComponent::removePrefs() { + char *prefs_file = getPrefsFileName(true); + if (fsStorage->exists(prefs_file)) { + Serial.printf("Removing %s\r\n", prefs_file); + if (!fsStorage->remove(prefs_file)) { + Serial.println("Error removing preferences"); + } + } else { + Serial.println("No saved preferences file to remove"); + } +} + +int CLAppComponent::parsePrefs(jparse_ctx_t *jctx) { + char *conn_file = getPrefsFileName(); + + String conn_json; + + if(readFileToString(conn_file, &conn_json) != OK) { + Serial.printf("Failed to open the connection settings from %s \r\n", conn_file); + return OS_FAIL; + } + + char *cn_ptr = const_cast(conn_json.c_str()); + + int ret = json_parse_start(jctx, cn_ptr, conn_json.length()); + if(ret != OS_SUCCESS) { + Serial.printf("Preference file %s could not be parsed; using system defaults.\r\n", conn_file); + return OS_FAIL; + } + + return ret; +} \ No newline at end of file diff --git a/src/app_component.h b/src/app_component.h new file mode 100644 index 00000000..e61b3e68 --- /dev/null +++ b/src/app_component.h @@ -0,0 +1,46 @@ +#ifndef app_component_h +#define app_component_h + +#include +#include + +#include "app_config.h" +#include "storage.h" + +class CLAppComponent { + public: + // Sketch Info + + int start(){return OS_SUCCESS;}; + int loadPrefs(){return OS_SUCCESS;}; + int savePrefs(){return OS_SUCCESS;}; + + void dumpPrefs(); + void removePrefs(); + + char * getPrefsFileName(bool forsave = false); + + void setDebugMode(bool val) {debug_mode = val;}; + bool isDebugMode(){return debug_mode;}; + + protected: + void setTag(const char *t) {tag = t;}; + + /// @brief reads the Int value from JSON context by token. + /// @param jctx_ptr JSON context pointer + /// @param token + /// @return value, or 0 if fail + int readJsonIntVal(jparse_ctx_t *jctx, char* token); + + int parsePrefs(jparse_ctx_t *jctx); + + + private: + const char * tag; + + bool debug_mode = false; + + char prefs[20] = "prefs.json"; +}; + +#endif \ No newline at end of file diff --git a/src/app_config.h b/src/app_config.h new file mode 100644 index 00000000..c0ef1608 --- /dev/null +++ b/src/app_config.h @@ -0,0 +1,70 @@ +#ifndef app_config_h +#define app_config_h + + +/* Give the camera a name for the web interface */ +#define CAM_NAME "ESP32 CAM Webserver" + +/* Base application version */ +#define BASE_VERSION "5.0" + + +/* Extended WiFi Settings */ + +/* + * Wifi Watchdog defines how long we spend waiting for a connection before retrying, + * and how often we check to see if we are still connected, milliseconds + * You may wish to increase this if your WiFi is slow at conencting. + */ +#define WIFI_WATCHDOG 15000 + +/* + * Over The Air firmware updates can be disabled by uncommenting the folowing line + * When enabled the device will advertise itself using the MDNS_NAME defined above + */ +// #define NO_OTA + +/* + * Additional Features + * + */ + + + +// Uncomment to disable the notification LED on the module +// #define LED_DISABLE + +// Uncomment to disable the illumination lamp features +// #define LAMP_DISABLE + +// Uncomment this line to use LittleFS instead of SD. +// NOTE! +// LittleFS is still experimental, not recommended. The 'official' library installed from the Library Manager +// seems to be broken, but fixed in this PR: https://github.com/lorol/LITTLEFS/pull/56 +// To install it, please navigate to you /libraries sub-folder of your sketch location and then execute +// git clone https://github.com/Michael2MacDonald/LITTLEFS. +// #define USE_LittleFS + +// Define the startup lamp power setting (as a percentage, defaults to 0%) +// Saved user settings will override this +// #define LAMP_DEFAULT 0 + +/* + * Camera Hardware Selectiom + * + * You must uncomment one, and only one, of the lines below to select your board model. + * Remember to also select the board in the Boards Manager + * This is not optional + */ +#define CAMERA_MODEL_AI_THINKER // default +// #define CAMERA_MODEL_WROVER_KIT +// #define CAMERA_MODEL_ESP_EYE +// #define CAMERA_MODEL_M5STACK_PSRAM +// #define CAMERA_MODEL_M5STACK_V2_PSRAM +// #define CAMERA_MODEL_M5STACK_WIDE +// #define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM +// #define CAMERA_MODEL_TTGO_T_JOURNAL +// #define CAMERA_MODEL_ARDUCAM_ESP32S_UNO + + +#endif diff --git a/src/app_conn.cpp b/src/app_conn.cpp new file mode 100644 index 00000000..78bf4e41 --- /dev/null +++ b/src/app_conn.cpp @@ -0,0 +1,385 @@ +#include "app_conn.h" + +CLAppConn::CLAppConn() { + setTag("conn"); +} + +int CLAppConn::start() { + + Serial.println("Starting WiFi"); + WiFi.mode(WIFI_STA); + + if(loadPrefs() != OK) { + return WiFi.status(); + } + + // Disable power saving on WiFi to improve responsiveness + // (https://github.com/espressif/arduino-esp32/issues/1484) + WiFi.setSleep(false); + + byte mac[6] = {0,0,0,0,0,0}; + WiFi.macAddress(mac); + Serial.printf("MAC address: %02X:%02X:%02X:%02X:%02X:%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + + int bestStation = -1; + long bestRSSI = -1024; + char bestSSID[65] = ""; + uint8_t bestBSSID[6]; + if (stationCount > 0) { + // We have a list to scan + Serial.printf("Scanning local Wifi Networks\r\n"); + int stationsFound = WiFi.scanNetworks(); + Serial.printf("%i networks found\r\n", stationsFound); + if (stationsFound > 0) { + for (int i = 0; i < stationsFound; ++i) { + // Print SSID and RSSI for each network found + String thisSSID = WiFi.SSID(i); + int thisRSSI = WiFi.RSSI(i); + String thisBSSID = WiFi.BSSIDstr(i); + Serial.printf("%3i : [%s] %s (%i)", i + 1, thisBSSID.c_str(), thisSSID.c_str(), thisRSSI); + // Scan our list of known external stations + for (int sta = 0; sta < stationCount; sta++) { + if ((strcmp(stationList[sta]->ssid, thisSSID.c_str()) == 0) || + (strcmp(stationList[sta]->ssid, thisBSSID.c_str()) == 0)) { + Serial.print(" - Known!"); + // Chose the strongest RSSI seen + if (thisRSSI > bestRSSI) { + bestStation = sta; + strncpy(bestSSID, thisSSID.c_str(), 64); + // Convert char bssid[] to a byte array + parseBytes(thisBSSID.c_str(), ':', bestBSSID, 6, 16); + bestRSSI = thisRSSI; + } + } + } + Serial.println(); + } + } + } else { + // No list to scan, therefore we are an accesspoint + accesspoint = true; + } + + if (bestStation == -1 ) { + if (!accesspoint) { + Serial.println("No known networks found, entering AccessPoint fallback mode"); + accesspoint = true; + } + + } else { + Serial.printf("Connecting to Wifi Network %d: [%02X:%02X:%02X:%02X:%02X:%02X] %s \r\n", + bestStation, bestBSSID[0], bestBSSID[1], bestBSSID[2], bestBSSID[3], + bestBSSID[4], bestBSSID[5], bestSSID); + // Apply static settings if necesscary + if (stationList[bestStation]->dhcp == false) { + + if(staticIP.ip && staticIP.gateway && staticIP.netmask) { + Serial.println("Applying static IP settings"); + WiFi.config(*staticIP.ip, *staticIP.gateway, *staticIP.netmask, *staticIP.dns1, *staticIP.dns2); + } + else + Serial.println("Static IP settings requested but not defined properly in config, falling back to dhcp"); + } + + WiFi.setHostname(mdnsName); + + // Initiate network connection request (3rd argument, channel = 0 is 'auto') + WiFi.begin(bestSSID, stationList[bestStation]->password, 0, bestBSSID); + + // Wait to connect, or timeout + unsigned long start = millis(); + while ((millis() - start <= WIFI_WATCHDOG) && (WiFi.status() != WL_CONNECTED)) { + delay(500); + Serial.print('.'); + } + // If we have connected, inform user + if (WiFi.status() == WL_CONNECTED) { + Serial.println("Client connection succeeded"); + accesspoint = false; + // Print IP details + Serial.printf("IP address: %s\r\n",WiFi.localIP().toString()); + Serial.printf("Netmask : %s\r\n",WiFi.subnetMask().toString()); + Serial.printf("Gateway : %s\r\n",WiFi.gatewayIP().toString()); + + } else { + Serial.println("Client connection Failed"); + WiFi.disconnect(); // (resets the WiFi scan) + return wifiStatus(); + } + } + + if (accesspoint && (WiFi.status() != WL_CONNECTED)) { + // The accesspoint has been enabled, and we have not connected to any existing networks + WiFi.mode(WIFI_AP); + // reset ap_status + ap_status = WL_DISCONNECTED; + + Serial.printf("Setting up Access Point (channel=%d)\r\n", ap_channel); + Serial.print(" SSID : "); + Serial.println(apName); + Serial.print(" Password : "); + Serial.println(apPass); + + // User has specified the AP details; apply them after a short delay + // (https://github.com/espressif/arduino-esp32/issues/985#issuecomment-359157428) + if(WiFi.softAPConfig(*apIP.ip, *apIP.ip, *apIP.netmask)) { + Serial.printf("IP address: %s\r\n",WiFi.softAPIP().toString()); + } + else { + Serial.println("softAPConfig failed"); + ap_status = WL_CONNECT_FAILED; + return wifiStatus(); + } + + WiFi.softAPsetHostname(mdnsName); + + if(!WiFi.softAP(apName, apPass, ap_channel)) { + Serial.println("Access Point init failed!"); + ap_status = WL_CONNECT_FAILED; + return wifiStatus(); + } + + ap_status = WL_CONNECTED; + Serial.println("Access Point init successfull"); + + // Start the DNS captive portal if requested + // if (ap_dhcp) { + // Serial.println("Starting Captive Portal"); + // dnsServer.start(DNS_PORT, "*", *apIP.ip); + // captivePortal = true; + // } + } + + calcURLs(); + + return wifiStatus(); +} + +void CLAppConn::calcURLs() { + // Set the URL's + + // if host name is not defined or access point mode is activated, use local IP for url + if(!strcmp(hostName, "")) { + if(accesspoint) + strcpy(hostName, WiFi.softAPIP().toString().c_str()); + else + strcpy(hostName, WiFi.localIP().toString().c_str()); + } + if (httpPort != 80) { + sprintf(httpURL, "http://%s:%d/", hostName, httpPort); + sprintf(streamURL, "ws://%s:%d/ws", hostName, httpPort); + } else { + sprintf(httpURL, "http://%s/", hostName); + sprintf(streamURL, "ws://%s/ws", hostName); + } + + +} + +int CLAppConn::loadPrefs() { + + jparse_ctx_t jctx; + int ret = parsePrefs(&jctx); + if(ret != OS_SUCCESS) { + return ret; + } + + ret = json_obj_get_string(&jctx, "mdns_name", mdnsName, sizeof(mdnsName)); + + if(ret != OS_SUCCESS) + Serial.println("MDNS Name is not defined!"); + + if(ret == OS_SUCCESS) { + json_obj_get_string(&jctx, "host_name", hostName, sizeof(hostName)); + json_obj_get_int(&jctx, "http_port", &httpPort); + } + + if (ret == OS_SUCCESS && json_obj_get_array(&jctx, "stations", &stationCount) == OS_SUCCESS) { + Serial.print("Known external SSIDs: "); + if(stationCount>0) + for(int i=0; i < stationCount && i < MAX_KNOWN_STATIONS; i++) { + + if(json_arr_get_object(&jctx, i) == OS_SUCCESS) { + Station *s = (Station*) malloc(sizeof(Station)); + if(json_obj_get_string(&jctx, "ssid", s->ssid, sizeof(s->ssid)) == OS_SUCCESS && + json_obj_get_string(&jctx, "pass", s->password, sizeof(s->password)) == OS_SUCCESS && + json_obj_get_bool(&jctx, "dhcp", &s->dhcp) == OS_SUCCESS) { + Serial.printf("%s\r\n", s->ssid); + stationList[i] = s; + } + else { + free(s); + } + json_arr_leave_object(&jctx); + } + + } + else + Serial.println("None"); + json_obj_leave_array(&jctx); + } + + char ip[16], netmask[16], gateway[16]; + + // read static IP + if(ret == OS_SUCCESS && json_obj_get_object(&jctx, "static_ip") == OS_SUCCESS) { + // TODO: add reading of static address + json_obj_leave_object(&jctx); + } + + json_obj_get_string(&jctx, "ap_ssid", apName, sizeof(apName)); + json_obj_get_string(&jctx, "ap_pass", apPass, sizeof(apPass)); + if(json_obj_get_int(&jctx, "ap_channel", &ap_channel) != OS_SUCCESS) + ap_channel = 1; + if(json_obj_get_bool(&jctx, "ap_dhcp", &ap_dhcp) != OS_SUCCESS) + ap_dhcp = true; + + if(ret == OS_SUCCESS && json_obj_get_object(&jctx, "ap_ip") == OS_SUCCESS) { + if(json_obj_get_string(&jctx, "ip", ip, sizeof(ip)) == OS_SUCCESS) { + if(!apIP.ip) apIP.ip = new IPAddress(); + if(!apIP.ip->fromString(ip)) + Serial.println("AP IP is invalid"); + } + if(json_obj_get_string(&jctx, "netmask", netmask, sizeof(netmask))==OS_SUCCESS) { + if(!apIP.netmask) apIP.netmask = new IPAddress(); + apIP.netmask->fromString(netmask); + } + json_obj_leave_object(&jctx); + } + + // OTA + json_obj_get_bool(&jctx, "ota_enabled", &otaEnabled); + json_obj_get_string(&jctx, "ota_password", otaPassword, sizeof(otaPassword)); + + // NTP + json_obj_get_string(&jctx, "ntp_server", ntpServer, sizeof(ntpServer)); + int64_t gmtOffset; + if(json_obj_get_int64(&jctx, "gmt_offset", &gmtOffset) == OS_SUCCESS) { + gmtOffset_sec = (long) gmtOffset; + } + json_obj_get_int(&jctx, "dst_offset", &daylightOffset_sec); + + bool dbg; + if(json_obj_get_bool(&jctx, "debug_mode", &dbg) == OS_SUCCESS) + setDebugMode(dbg); + + // close the file + json_parse_end(&jctx); + return ret; +} + +int CLAppConn::savePrefs() { + // TODO: add saving of WiFi prefs + return OK; +} + +void CLAppConn::enableOTA(bool enable) { + // Set up OTA + + if(enable) { + Serial.println("Setting up OTA"); + // Port defaults to 3232 + // ArduinoOTA.setPort(3232); + // Hostname defaults to esp3232-[MAC] + ArduinoOTA.setHostname(mdnsName); + + if (strlen(otaPassword) != 0) { + ArduinoOTA.setPassword(otaPassword); + Serial.printf("OTA Password: %s\n\r", otaPassword); + } + else { + Serial.printf("\r\nNo OTA password has been set! (insecure)\r\n\r\n"); + } + + ArduinoOTA + .onStart([]() { + String type; + if (ArduinoOTA.getCommand() == U_FLASH) + type = "sketch"; + else // U_SPIFFS + // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() + type = "filesystem"; + Serial.println("Start updating " + type); + + // Stop the camera since OTA will crash the module if it is running. + // the unit will need rebooting to restart it, either by OTA on success, or manually by the user + AppCam.stop(); + + // critERR = "

OTA Has been started


Camera has Halted!

"; + // critERR += "

Wait for OTA to finish and reboot, or reboot manually to recover

"; + }) + .onEnd([]() { + Serial.println("\r\nEnd"); + }) + .onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("Progress: %u%%\r", (progress / (total / 100))); + }) + .onError([](ota_error_t error) { + Serial.printf("Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); + else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); + else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); + else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); + else if (error == OTA_END_ERROR) Serial.println("End Failed"); + }); + + ArduinoOTA.begin(); + Serial.println("OTA is enabled"); + otaEnabled = true; + } + else { + ArduinoOTA.end(); + Serial.println("OTA is disabled"); + otaEnabled = false; + } + +} + +void CLAppConn::configMDNS() { + + if(!otaEnabled) { + if (!MDNS.begin(mdnsName)) { + Serial.println("Error setting up MDNS responder!"); + } + Serial.println("mDNS responder started"); + } + //MDNS Config -- note that if OTA is NOT enabled this needs prior steps! + MDNS.addService("http", "tcp", httpPort); + Serial.println("Added HTTP service to MDNS server"); + +} + +void CLAppConn::configNTP() { + configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); +} + +void CLAppConn::printLocalTime(bool extraData) { + Serial.println(getLocalTimeStr()); + if (extraData) { + Serial.printf("NTP Server: %s, GMT Offset: %li(s), DST Offset: %i(s)\r\n", + ntpServer, gmtOffset_sec , daylightOffset_sec); + } +} + +char * CLAppConn::getLocalTimeStr() { + struct tm timeinfo; + static char timeStringBuff[50]; + if(getLocalTime(&timeinfo)) { + strftime(timeStringBuff, sizeof(timeStringBuff), "%H:%M:%S, %A, %B %d %Y", &timeinfo); + } + + return timeStringBuff; +} + +char * CLAppConn::getUpTimeStr() { + int64_t sec = esp_timer_get_time() / 1000000; + int64_t upDays = int64_t(floor(sec/86400)); + int upHours = int64_t(floor(sec/3600)) % 24; + int upMin = int64_t(floor(sec/60)) % 60; + int upSec = sec % 60; + static char timeStringBuff[50]; + sprintf(timeStringBuff,"%" PRId64 ":%02i:%02i:%02i (d:h:m:s)", upDays, upHours, upMin, upSec); + return timeStringBuff; +} + +CLAppConn AppConn; \ No newline at end of file diff --git a/src/app_conn.h b/src/app_conn.h new file mode 100644 index 00000000..20b6ed5f --- /dev/null +++ b/src/app_conn.h @@ -0,0 +1,121 @@ +#ifndef app_conn_h +#define app_conn_h + +#include +#include +#include +#include +#include +#include + +#include "parsebytes.h" +#include "app_component.h" +#include "app_cam.h" + +#define MAX_KNOWN_STATIONS 5 + +/* NTP + * Uncomment the following to enable the on-board clock + * Pick a nearby pool server from: https://www.ntppool.org/zone/@ + * Set the GMT offset to match your timezone IN SECONDS; + * see https://en.wikipedia.org/wiki/List_of_UTC_time_offsets + * 1hr = 3600 seconds; do the math ;-) + * Default is CET (Central European Time), eg GMT + 1hr + * The DST offset is usually 1 hour (again, in seconds) if used in your country. + */ +#define NTPSERVER "pool.ntp.org" +#define NTP_GMT_OFFSET 14400 +#define NTP_DST_OFFSET 0 + + +struct Station { char ssid[65]; char password[65]; bool dhcp;}; + +struct StaticIP { IPAddress *ip; IPAddress *netmask; IPAddress *gateway; IPAddress *dns1; IPAddress *dns2; }; + +class CLAppConn : public CLAppComponent { + public: + CLAppConn(); + + int loadPrefs(); + int savePrefs(); + int start(); + bool stop() {return WiFi.disconnect();}; + + void enableOTA(bool enable = true); + void handleOTA() {if(otaEnabled) ArduinoOTA.handle();}; + + void configMDNS(); + void handleDNSRequest(){if (captivePortal) dnsServer.processNextRequest();}; + + void configNTP(); + + char * getNTPServer() { return ntpServer;}; + long getGmtOffset_sec() {return gmtOffset_sec;}; + int getDaylightOffset_sec() {return daylightOffset_sec;}; + + bool isOTAEnabled() {return otaEnabled;}; + + wl_status_t wifiStatus() {return (accesspoint?ap_status:WiFi.status());}; + + char * getHTTPUrl(){ return httpURL;}; + char * getStreamUrl(){ return streamURL;}; + int getPort() {return httpPort;}; + + char * getApName() {return apName;}; + + bool isAccessPoint() {return accesspoint;}; + bool isCaptivePortal() {return captivePortal;}; + + char * getLocalTimeStr(); + char * getUpTimeStr(); + void printLocalTime(bool extraData=false); + + private: + void calcURLs(); + + // Known networks structure. Max number of known stations limited for memory considerations + Station *stationList[MAX_KNOWN_STATIONS]; + int stationCount = 0; + + // Static IP structure + StaticIP staticIP; + + char mdnsName[20]; + + bool accesspoint = false; + char apName[20]; + char apPass[20]; + int ap_channel=1; + StaticIP apIP; + bool ap_dhcp=true; + wl_status_t ap_status = WL_DISCONNECTED; + + // DNS server + const byte DNS_PORT = 53; + DNSServer dnsServer; + bool captivePortal = false; + + // HOST_NAME + char hostName[64]=""; + + // The app and stream URLs (initialized during WiFi setup) + char httpURL[64]; + char streamURL[64]; + + // HTTP Port. Can be overriden during IP setup + int httpPort = 80; + + // OTA parameters + bool otaEnabled = false; + char otaPassword[20] = ""; + + // NTP parameters + char ntpServer[20] = NTPSERVER; + long gmtOffset_sec = NTP_GMT_OFFSET; + int daylightOffset_sec = NTP_DST_OFFSET; + +}; + +extern CLAppConn AppConn; + +#endif \ No newline at end of file diff --git a/src/app_httpd.cpp b/src/app_httpd.cpp new file mode 100644 index 00000000..8792b309 --- /dev/null +++ b/src/app_httpd.cpp @@ -0,0 +1,479 @@ +#include "app_httpd.h" + +CLAppHttpd::CLAppHttpd() { + // Gather static values used when dumping status; these are slow functions, so just do them once during startup + sketchSize = ESP.getSketchSize();; + sketchSpace = ESP.getFreeSketchSpace(); + sketchMD5 = ESP.getSketchMD5(); + setTag("httpd"); +} + +void onSnapTimer(TimerHandle_t pxTimer){ + if(AppHttpd.getClientId() != 0) AppHttpd.snapToStream(); +} + +int CLAppHttpd::start() { + + loadPrefs(); + + server = new AsyncWebServer(AppConn.getPort()); + ws = new AsyncWebSocket("/ws"); + + server->on("/", HTTP_GET, [](AsyncWebServerRequest *request){ + if(AppConn.isAccessPoint()) + request->redirect("/setup"); + else + request->redirect("/portal"); + }); + + server->on("/setup", HTTP_GET, [](AsyncWebServerRequest *request){ + request->send(*fsStorage, "/www/setup.html", "", false, processor); + }); + + server->on("/portal", HTTP_GET, [](AsyncWebServerRequest *request){ + request->send(*fsStorage, "/www/portal.html", "", false, processor); + }); + + server->on("/view", HTTP_GET, [](AsyncWebServerRequest *request){ + if(request->hasArg("mode")) { + if(request->arg("mode") == "simple") { + request->send(*fsStorage, "/www/index_simple.html", "", false, processor); + } + else if(request->arg("mode") == "full") { + if (AppCam.getSensorPID() == OV3660_PID) + request->send(*fsStorage, "/www/index_ov3660.html", "", false, processor); + request->send(*fsStorage, "/www/index_ov2640.html", "", false, processor); + } + else if(request->arg("mode") == "stream" || + request->arg("mode") == "still") { + if(AppCam.getErr().isEmpty()) { + AppHttpd.setStreamMode((request->arg("mode") == "stream"? CAPTURE_STREAM:CAPTURE_STILL)); + request->send(*fsStorage, "/www/streamviewer.html", "", false, processor); + } + else + request->send(*fsStorage, "/www/error.html", "", false, processor); + } + else + request->send(400); + } + else + request->send(*fsStorage, "/www/index_simple.html", "", false, processor); + }); + + server->on("/dump", HTTP_GET, [](AsyncWebServerRequest *request){ + request->send(*fsStorage, "/www/dump.html"); + }); + + server->on("/control", HTTP_GET, onControl); + server->on("/status", HTTP_GET, onStatus); + server->on("/system", HTTP_GET, onSystemStatus); + server->on("/info", HTTP_GET, onInfo); + + + // adding WebSocket handler + ws->onEvent(onWsEvent); + server->addHandler(ws); + + snap_timer = xTimerCreate("SnapTimer", 1000/AppCam.getFrameRate()/portTICK_PERIOD_MS, pdTRUE, 0, onSnapTimer); + + server->serveStatic("/", *fsStorage, "/www"); + + DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*"); + server->begin(); + + if(isDebugMode()) { + Serial.printf("\r\nUse '%s' to connect\r\n", AppConn.getHTTPUrl()); + Serial.printf("Stream viewer available at '%sview?mode=stream'\r\n", AppConn.getHTTPUrl()); + Serial.printf("Raw stream URL is '%s'\r\n", AppConn.getStreamUrl()); + } + + Serial.println("HTTP server started"); + return OK; +} + +void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ + + + if(type == WS_EVT_CONNECT){ + Serial.printf("ws[%s][%u] connect\n", server->url(), client->id()); + } + else if(type == WS_EVT_DISCONNECT){ + Serial.printf("ws[%s][%u] disconnect\n", server->url(), client->id()); + AppHttpd.stopStream(client->id()); + } + else if(type == WS_EVT_ERROR){ + Serial.printf("ws[%s][%u] error(%u): %s\n", server->url(), client->id(), *((uint16_t*)arg), (char*)data); + } + else if(type == WS_EVT_PONG){ + Serial.printf("ws[%s][%u] pong[%u]: %s\n", server->url(), client->id(), len, (len)?(char*)data:""); + } + else if(type == WS_EVT_DATA){ + AwsFrameInfo * info = (AwsFrameInfo*)arg; + Serial.printf("ws[%s][%u] frame[%u] %u %s[%llu - %llu]: ", server->url(), client->id(), info->num, + info->message_opcode, (info->message_opcode == WS_TEXT)?"text":"binary", info->index, info->index + len); + + char* msg = (char*) data; + + if(*msg == 's') { + AppHttpd.startStream(client->id()); + } + else if(*msg, 't') { + AppHttpd.stopStream(client->id()); + } + + } + +} + + +String processor(const String& var) { + if(var == "CAMNAME") + return String(AppHttpd.getName()); + else if(var == "ERRORTEXT") + return AppCam.getErr(); + else if(var == "APPURL") + return String(AppConn.getHTTPUrl()); + else if(var == "STREAMURL") + return String(AppConn.getStreamUrl()); + else + return String(); +} + +esp_err_t CLAppHttpd::snapToStream(bool debug) { + camera_fb_t * fb = NULL; + esp_err_t res = ESP_OK; + + fb = esp_camera_fb_get(); + + if(fb) { + size_t fb_len = 0; + if(fb->format == PIXFORMAT_JPEG){ + fb_len = fb->len; + ws->binary(AppHttpd.getClientId(), fb->buf, fb->len); + if(debug) { + Serial.print("JPG: "); Serial.print((uint32_t)(fb_len)); + } + } else { + // camera failed to aquire frame + if(debug) + Serial.println("Capture Error: Non-JPEG image returned by camera module"); + res = ESP_FAIL; + } + } + + esp_camera_fb_return(fb); + fb = NULL; + return res; +} + +esp_err_t CLAppHttpd::startStream(uint32_t id) { + client_id = id; + + if(!snap_timer) + return ESP_FAIL; + + if(xTimerIsTimerActive(snap_timer)) + xTimerStop(snap_timer, 100); + + if(streammode == CAPTURE_STREAM) { + + Serial.print("Stream start, frame period = "); Serial.println(xTimerGetPeriod(snap_timer)); + + xTimerStart(snap_timer, 0); + streamCount=1; + } + else if(streammode == CAPTURE_STILL) { + Serial.println("Still image requested"); + if(AppCam.isAutoLamp()){ + AppCam.setLamp(); + delay(75); // coupled with the status led flash this gives ~150ms for lamp to settle. + } + int64_t fr_start = esp_timer_get_time(); + + if (snapToStream(isDebugMode()) != ESP_OK) { + if(AppCam.isAutoLamp()) AppCam.setLamp(0); + return ESP_FAIL; + } + + if (isDebugMode()) { + int64_t fr_end = esp_timer_get_time(); + Serial.printf("B %ums\r\n", (uint32_t)((fr_end - fr_start)/1000)); + } + + if(AppCam.isAutoLamp()) AppCam.setLamp(0); + + imagesServed++; + } + else + return ESP_FAIL; + return ESP_OK; +} + +esp_err_t CLAppHttpd::stopStream(uint32_t id) { + client_id = 0; + if(!snap_timer) + return ESP_FAIL; + + if(xTimerIsTimerActive(snap_timer)) + xTimerStop(snap_timer, 100); + + if(streammode == CAPTURE_STREAM) { + Serial.println("Stream stopped"); + streamsServed++; + streamCount=0; + } + return ESP_OK; +} + +void onControl(AsyncWebServerRequest *request) { + + if (AppCam.getErr().length() > 0) { + request->send(500); + return; + } + + if (request->args() == 0) { + request->send(400); + return; + } + + String variable = request->arg("var"); + String value = request->arg("val"); + + if(variable == "cmdout") { + if(AppHttpd.isDebugMode()) { + Serial.print("cmmdout="); + Serial.println(value.c_str()); + } + AppHttpd.serialSendCommand(value.c_str()); + request->send(200, "", "OK"); + return; + } + + int val = value.toInt(); + sensor_t * s = esp_camera_sensor_get(); + int res = 0; + if(variable == "framesize") { + if(s->pixformat == PIXFORMAT_JPEG) res = s->set_framesize(s, (framesize_t)val); + } + else if(variable == "quality") res = s->set_quality(s, val); + else if(variable == "xclk") { AppCam.setXclk(val); res = s->set_xclk(s, LEDC_TIMER_0, AppCam.getXclk()); } + else if(variable == "contrast") res = s->set_contrast(s, val); + else if(variable == "brightness") res = s->set_brightness(s, val); + else if(variable == "saturation") res = s->set_saturation(s, val); + else if(variable == "gainceiling") res = s->set_gainceiling(s, (gainceiling_t)val); + else if(variable == "colorbar") res = s->set_colorbar(s, val); + else if(variable == "awb") res = s->set_whitebal(s, val); + else if(variable == "agc") res = s->set_gain_ctrl(s, val); + else if(variable == "aec") res = s->set_exposure_ctrl(s, val); + else if(variable == "hmirror") res = s->set_hmirror(s, val); + else if(variable == "vflip") res = s->set_vflip(s, val); + else if(variable == "awb_gain") res = s->set_awb_gain(s, val); + else if(variable == "agc_gain") res = s->set_agc_gain(s, val); + else if(variable == "aec_value") res = s->set_aec_value(s, val); + else if(variable == "aec2") res = s->set_aec2(s, val); + else if(variable == "dcw") res = s->set_dcw(s, val); + else if(variable == "bpc") res = s->set_bpc(s, val); + else if(variable == "wpc") res = s->set_wpc(s, val); + else if(variable == "raw_gma") res = s->set_raw_gma(s, val); + else if(variable == "lenc") res = s->set_lenc(s, val); + else if(variable == "special_effect") res = s->set_special_effect(s, val); + else if(variable == "wb_mode") res = s->set_wb_mode(s, val); + else if(variable == "ae_level") res = s->set_ae_level(s, val); + else if(variable == "rotate") AppCam.setRotation(val); + else if(variable == "frame_rate") { + AppCam.setFrameRate(val); + AppHttpd.updateSnapTimer(val); + } + else if(variable == "autolamp" && AppCam.getLamp() != -1) { + AppCam.setAutoLamp(val); + } + else if(variable == "lamp" && AppCam.getLamp() != -1) { + AppCam.setLamp(constrain(val,0,100)); + } + else if(variable == "save_prefs") { + AppCam.savePrefs(); + } + else if(variable == "clear_prefs") { + AppCam.removePrefs(); + } + else if(variable == "reboot") { + if (AppCam.getLamp() != -1) AppCam.setLamp(0); // kill the lamp; otherwise it can remain on during the soft-reboot + esp_task_wdt_init(3,true); // schedule a a watchdog panic event for 3 seconds in the future + esp_task_wdt_add(NULL); + periph_module_disable(PERIPH_I2C0_MODULE); // try to shut I2C down properly + periph_module_disable(PERIPH_I2C1_MODULE); + periph_module_reset(PERIPH_I2C0_MODULE); + periph_module_reset(PERIPH_I2C1_MODULE); + Serial.print("REBOOT requested"); + while(true) { + delay(200); + Serial.print('.'); + } + } + else { + res = -1; + } + if(res){ + request->send(400, "", "Unknown command"); + return; + } + request->send(200, "", "OK"); +} + +void CLAppHttpd::updateSnapTimer(int tps) { + if(snap_timer) + xTimerChangePeriod(snap_timer, 1000/tps/portTICK_PERIOD_MS, 100); +} + +void onInfo(AsyncWebServerRequest *request) { + AsyncResponseStream *response = request->beginResponseStream("application/json"); + response->print("{"); + response->printf("\"cam_name\":\"%s\",", AppHttpd.getName()); + response->printf("\"rotate\":\"%d\",", AppCam.getRotation()); + response->printf("\"stream_url\":\"%s\"", AppConn.getStreamUrl()); + response->print("}"); + request->send(response); +} + +void onStatus(AsyncWebServerRequest *request) { + AsyncResponseStream *response = request->beginResponseStream("application/json"); + // Do not get attempt to get sensor when in error; causes a panic.. + response->print("{"); + if (AppCam.getErr().length() == 0) { + sensor_t * s = esp_camera_sensor_get(); + response->printf("\"lamp\":%d,", AppCam.getLamp()); + response->printf("\"autolamp\":%d,", AppCam.isAutoLamp()); + response->printf("\"frame_rate\":%d,", AppCam.getFrameRate()); + response->printf("\"framesize\":%u,", s->status.framesize); + response->printf("\"quality\":%u,", s->status.quality); + response->printf("\"xclk\":%u,", AppCam.getXclk()); + response->printf("\"brightness\":%d,", s->status.brightness); + response->printf("\"contrast\":%d,", s->status.contrast); + response->printf("\"saturation\":%d,", s->status.saturation); + response->printf("\"sharpness\":%d,", s->status.sharpness); + response->printf("\"special_effect\":%u,", s->status.special_effect); + response->printf("\"wb_mode\":%u,", s->status.wb_mode); + response->printf("\"awb\":%u,", s->status.awb); + response->printf("\"awb_gain\":%u,", s->status.awb_gain); + response->printf("\"aec\":%u,", s->status.aec); + response->printf("\"aec2\":%u,", s->status.aec2); + response->printf("\"ae_level\":%d,", s->status.ae_level); + response->printf("\"aec_value\":%u,", s->status.aec_value); + response->printf("\"agc\":%u,", s->status.agc); + response->printf("\"agc_gain\":%u,", s->status.agc_gain); + response->printf("\"gainceiling\":%u,", s->status.gainceiling); + response->printf("\"bpc\":%u,", s->status.bpc); + response->printf("\"wpc\":%u,", s->status.wpc); + response->printf("\"raw_gma\":%u,", s->status.raw_gma); + response->printf("\"lenc\":%u,", s->status.lenc); + response->printf("\"vflip\":%u,", s->status.vflip); + response->printf("\"hmirror\":%u,", s->status.hmirror); + response->printf("\"dcw\":%u,", s->status.dcw); + response->printf("\"colorbar\":%u,", s->status.colorbar); + response->printf("\"cam_name\":\"%s\",", AppHttpd.getName()); + response->printf("\"code_ver\":\"%s\",", AppHttpd.getVersion().c_str()); + response->printf("\"rotate\":\"%d\",", AppCam.getRotation()); + response->printf("\"stream_url\":\"%s\"", AppConn.getStreamUrl()); + } + response->print("}"); + request->send(response); +} + +void onSystemStatus(AsyncWebServerRequest *request) { + AsyncResponseStream *response = request->beginResponseStream("application/json"); + + char buf[1024]; + char * buf_ptr = buf; + dumpSystemStatusToJson(buf_ptr, sizeof(buf)); + + response->print(buf); + + if(AppHttpd.isDebugMode()) { + Serial.println(); + Serial.println("Dump requested through web"); + Serial.println(buf); + } + + request->send(response); +} + +void dumpSystemStatusToJson(char * buf, size_t size) { + + buf += sprintf(buf, "{"); + buf += sprintf(buf,"\"cam_name\":\"%s\",", AppHttpd.getName()); + buf += sprintf(buf,"\"code_ver\":\"%s\",", AppHttpd.getVersion().c_str()); + buf += sprintf(buf,"\"base_version\":\"%s\",", BASE_VERSION); + buf += sprintf(buf,"\"sketch_size\":%u,", AppHttpd.getSketchSize()); + buf += sprintf(buf,"\"sketch_space\":%u,", AppHttpd.getSketchSpace()); + buf += sprintf(buf,"\"sketch_md5\":\"%s\",", AppHttpd.getSketchMD5().c_str()); + buf += sprintf(buf,"\"esp_sdk\":\"%s\",", ESP.getSdkVersion()); + buf += sprintf(buf,"\"accesspoint\":%s,", (AppConn.isAccessPoint()?"true":"false")); + buf += sprintf(buf,"\"captiveportal\":%s,", (AppConn.isCaptivePortal()?"true":"false")); + buf += sprintf(buf,"\"ap_name\":\"%s\",", AppConn.getApName()); + String ssidName = WiFi.SSID(); + buf += sprintf(buf,"\"ssid\":\"%s\",", ssidName.c_str()); + buf += sprintf(buf,"\"rssi\":%i,", WiFi.RSSI()); + String bssid = WiFi.BSSIDstr(); + buf += sprintf(buf,"\"bssid\":\"%s\",", bssid.c_str()); + buf += sprintf(buf,"\"ip_address\":\"%s\",", (AppConn.isAccessPoint()?WiFi.softAPIP().toString():WiFi.localIP().toString())); + buf += sprintf(buf,"\"subnet\":\"%s\",", (!AppConn.isAccessPoint()?WiFi.subnetMask().toString():"")); + buf += sprintf(buf,"\"gateway\":\"%s\",", (!AppConn.isAccessPoint()?WiFi.gatewayIP().toString():"")); + buf += sprintf(buf,"\"port\":%i,", AppConn.getPort()); + byte mac[6]; + WiFi.macAddress(mac); + buf += sprintf(buf,"\"mac_address\":\"%02X:%02X:%02X:%02X:%02X:%02X\",", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + buf += sprintf(buf,"\"local_time\":\"%s\",", AppConn.getLocalTimeStr()); + buf += sprintf(buf,"\"up_time\":\"%s\",", AppConn.getUpTimeStr()); + buf += sprintf(buf,"\"ntp_server\":\"%s\",", AppConn.getNTPServer()); + buf += sprintf(buf,"\"gmt_offset\":%li,", AppConn.getGmtOffset_sec()); + buf += sprintf(buf,"\"dst_offset\":%i,", AppConn.getDaylightOffset_sec()); + buf += sprintf(buf,"\"active_streams\":%i,", AppHttpd.getStreamCount()); + buf += sprintf(buf,"\"prev_streams\":%lu,", AppHttpd.getStreamsServed()); + buf += sprintf(buf,"\"img_captured\":%lu,", AppHttpd.getImagesServed()); + + buf += sprintf(buf,"\"cpu_freq\":%i,", ESP.getCpuFreqMHz()); + buf += sprintf(buf,"\"xclk\":%i,", AppCam.getXclk()); + buf += sprintf(buf,"\"num_cores\":%i,", ESP.getChipCores()); + + int McuTf = temprature_sens_read(); // fahrenheit + buf += sprintf(buf,"\"esp_temp\":%i,", McuTf); + buf += sprintf(buf,"\"heap_avail\":%i,", ESP.getHeapSize()); + buf += sprintf(buf,"\"heap_free\":%i,", ESP.getFreeHeap()); + buf += sprintf(buf,"\"heap_min_free\":%i,", ESP.getMinFreeHeap()); + buf += sprintf(buf,"\"heap_max_bloc\":%i,", ESP.getMaxAllocHeap()); + + buf += sprintf(buf,"\"psram_found\":%s,", (psramFound()?"true":"false")); + buf += sprintf(buf,"\"psram_size\":%i,", (psramFound()?ESP.getPsramSize():0)); + buf += sprintf(buf,"\"psram_free\":%i,", (psramFound()?ESP.getFreePsram():0)); + buf += sprintf(buf,"\"psram_min_free\":%i,", (psramFound()?ESP.getMinFreePsram():0)); + buf += sprintf(buf,"\"psram_max_bloc\":%i,", (psramFound()?ESP.getMaxAllocPsram():0)); + + buf += sprintf(buf,"\"storage_size\":%i,", storageSize()); + buf += sprintf(buf,"\"storage_used\":%i,", storageUsed()); + buf += sprintf(buf,"\"storage_units\":\"%s\",", (capacityUnits()==STORAGE_UNITS_MB?"MB":"")); + buf += sprintf(buf,"\"serial_buf\":\"%s\"", AppHttpd.getSerialBuffer()); + buf += sprintf(buf, "}"); +} + +void CLAppHttpd::serialSendCommand(const char *cmd) { + Serial.print("^"); + Serial.println(cmd); +} + +int CLAppHttpd::loadPrefs() { + jparse_ctx_t jctx; + int ret = parsePrefs(&jctx); + if(ret != OS_SUCCESS) { + return ret; + } + + json_obj_get_string(&jctx, "my_name", myName, sizeof(myName)); + bool dbg; + if(json_obj_get_bool(&jctx, "debug_mode", &dbg) == OS_SUCCESS) + setDebugMode(dbg); + + return ret; +} + +CLAppHttpd AppHttpd; diff --git a/src/app_httpd.h b/src/app_httpd.h new file mode 100644 index 00000000..2f532834 --- /dev/null +++ b/src/app_httpd.h @@ -0,0 +1,103 @@ +#ifndef app_httpd_h +#define app_httpd_h + +#include +#include +#include +#include + +#include "ESPAsyncWebServer.h" +#include "storage.h" +#include "app_conn.h" +#include "app_cam.h" + +#ifdef __cplusplus +extern "C" { +#endif +uint8_t temprature_sens_read(); +#ifdef __cplusplus +} +#endif + +enum capture_mode {CAPTURE_STILL, CAPTURE_STREAM}; + +String processor(const String& var); +void onSystemStatus(AsyncWebServerRequest *request); +void onStatus(AsyncWebServerRequest *request); +void onInfo(AsyncWebServerRequest *request); +void onControl(AsyncWebServerRequest *request); +void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len); +void onSnapTimer(TimerHandle_t pxTimer); + +void dumpSystemStatusToJson(char * buf, size_t size); + +class CLAppHttpd : public CLAppComponent { + public: + CLAppHttpd(); + + int start(); + int loadPrefs(); + + uint32_t getClientId() {return client_id;}; + + int8_t getStreamCount() {return streamCount;}; + long getStreamsServed() {return streamsServed;}; + unsigned long getImagesServed() {return imagesServed;}; + void incImagesServed(){imagesServed++;}; + + void setStreamMode(capture_mode mode) {streammode = mode;}; + capture_mode getStreamMode() {return streammode;}; + + esp_err_t snapToStream(bool debug = false); + esp_err_t startStream(uint32_t id); + esp_err_t stopStream(uint32_t id); + + void updateSnapTimer(int frameRate); + + void serialSendCommand(const char * cmd); + + int getSketchSize(){ return sketchSize;}; + int getSketchSpace() {return sketchSpace;}; + String getSketchMD5() {return sketchMD5;}; + + String getVersion() {return version;}; + + char * getName() {return myName;}; + + char * getSerialBuffer() {return serialBuffer;}; + + + private: + + // Name of the application used in web interface + // Can be re-defined in the httpd.json file + char myName[20] = CAM_NAME; + + char serialBuffer[64]; + + AsyncWebServer *server; + AsyncWebSocket *ws; + uint32_t client_id = 0; + TimerHandle_t snap_timer = NULL; + + int8_t streamCount=0; + long streamsServed=0; + unsigned long imagesServed; + + // mode of the image capture + capture_mode streammode = CAPTURE_STILL; + + // Sketch Info + int sketchSize ; + int sketchSpace ; + String sketchMD5; + + const String version = __DATE__ " @ " __TIME__; + +}; + + + +extern CLAppHttpd AppHttpd; + +#endif \ No newline at end of file diff --git a/camera_pins.h b/src/camera_pins.h similarity index 100% rename from camera_pins.h rename to src/camera_pins.h diff --git a/src/favicons.h b/src/favicons.h deleted file mode 100644 index e513e1a9..00000000 --- a/src/favicons.h +++ /dev/null @@ -1,520 +0,0 @@ -/* - * Favicons; - */ - -/* 16x16 png */ - -unsigned char favicon_16x16_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, - 0x08, 0x03, 0x00, 0x00, 0x00, 0x28, 0x2d, 0x0f, 0x53, 0x00, 0x00, 0x00, - 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, - 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, - 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x99, 0x50, 0x4c, 0x54, 0x45, 0x4c, 0x69, - 0x71, 0xe9, 0x33, 0x24, 0xe8, 0x31, 0x28, 0xe9, 0x31, 0x28, 0x40, 0x70, - 0xda, 0xe8, 0x32, 0x28, 0xe8, 0x32, 0x28, 0xe8, 0x32, 0x28, 0xe8, 0x31, - 0x27, 0xdc, 0x3a, 0x4e, 0xe9, 0x32, 0x28, 0xe8, 0x31, 0x28, 0xe7, 0x32, - 0x27, 0xe8, 0x30, 0x29, 0xe8, 0x32, 0x28, 0xe8, 0x32, 0x28, 0xe8, 0x2f, - 0x27, 0xe5, 0x34, 0x34, 0x04, 0x36, 0x9e, 0xe9, 0x32, 0x28, 0xe8, 0x32, - 0x28, 0xb5, 0xfe, 0xff, 0x83, 0xce, 0xed, 0x77, 0xdd, 0xf4, 0x30, 0x73, - 0xc6, 0x39, 0x67, 0xce, 0xe8, 0x32, 0x28, 0x6b, 0xe1, 0xf4, 0xb1, 0xfa, - 0xfe, 0x7b, 0xd2, 0xe9, 0x04, 0x35, 0xa0, 0x40, 0x70, 0xd9, 0x5c, 0x93, - 0xe3, 0x1b, 0x4a, 0xac, 0x03, 0x33, 0x99, 0x02, 0x21, 0x63, 0xbf, 0xc8, - 0xdf, 0xff, 0xff, 0xff, 0x6c, 0xe0, 0xf2, 0x6b, 0xe1, 0xf3, 0x6b, 0xe0, - 0xf4, 0x69, 0xdd, 0xf1, 0xb5, 0xff, 0xff, 0x55, 0xba, 0xe2, 0xaf, 0xf6, - 0xfc, 0x66, 0x83, 0xc2, 0x03, 0x1f, 0x5f, 0x57, 0x6b, 0x9a, 0xe8, 0x32, - 0x28, 0x03, 0x35, 0x9d, 0x01, 0x1b, 0x5c, 0xdc, 0xa6, 0x7d, 0x70, 0x00, - 0x00, 0x00, 0x30, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x11, 0x5b, 0x98, 0xfb, - 0xf1, 0x84, 0xa9, 0x90, 0x05, 0xe0, 0xd5, 0x33, 0x1f, 0x41, 0x54, 0x29, - 0x09, 0xf0, 0x68, 0xfc, 0xee, 0x3f, 0x7d, 0xc2, 0xde, 0xbe, 0xd4, 0x7e, - 0x16, 0x46, 0x3e, 0xc1, 0xda, 0xe2, 0xd2, 0xbc, 0xfc, 0x28, 0x6b, 0xfe, - 0xb8, 0x98, 0x6e, 0xc3, 0xca, 0xfb, 0xb7, 0xb6, 0x0e, 0xb9, 0x71, 0x00, - 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x02, 0xbb, 0x00, - 0x00, 0x02, 0xbb, 0x01, 0x09, 0x42, 0x47, 0x26, 0x00, 0x00, 0x00, 0xc6, - 0x49, 0x44, 0x41, 0x54, 0x18, 0xd3, 0x25, 0x8f, 0x57, 0x72, 0xc3, 0x30, - 0x0c, 0x44, 0x97, 0xbd, 0x48, 0x14, 0xd5, 0x2c, 0xc9, 0xbd, 0xc4, 0x8e, - 0x9d, 0x0e, 0xf9, 0xfe, 0x87, 0x0b, 0x29, 0xe3, 0x0b, 0xfb, 0x66, 0x07, - 0xf3, 0x00, 0xe4, 0x61, 0x08, 0x85, 0xda, 0x74, 0x6e, 0x09, 0x4e, 0x33, - 0x43, 0x85, 0xae, 0xb9, 0xa7, 0xa2, 0xcc, 0x40, 0xc7, 0x8e, 0xf2, 0x88, - 0x60, 0x48, 0x25, 0x12, 0x0c, 0x58, 0x19, 0x85, 0x22, 0xf2, 0xb5, 0x20, - 0xdf, 0x40, 0x97, 0xaf, 0x2b, 0x96, 0x48, 0xd5, 0x86, 0x3a, 0x18, 0x0c, - 0xbb, 0xcf, 0xdd, 0xe0, 0x10, 0x15, 0xf9, 0xe0, 0x37, 0x09, 0xac, 0x56, - 0x27, 0x29, 0xd7, 0x47, 0x54, 0x3d, 0x09, 0xae, 0x32, 0xc8, 0x59, 0x9e, - 0x0f, 0xb0, 0xd4, 0x87, 0x22, 0x81, 0x6f, 0x29, 0xdf, 0x9e, 0xd7, 0x6b, - 0xbb, 0x67, 0x8a, 0x34, 0x83, 0x69, 0x46, 0xb9, 0x7e, 0xfe, 0xde, 0x6e, - 0xe7, 0x2f, 0x24, 0x1f, 0x80, 0xc7, 0x7d, 0x6e, 0xfc, 0xfd, 0xb4, 0x1f, - 0xe0, 0xd4, 0x37, 0x70, 0xc6, 0x1d, 0xa7, 0xf6, 0x32, 0xcf, 0xd3, 0x16, - 0x15, 0xd9, 0x64, 0x50, 0x59, 0x1c, 0x2e, 0x73, 0x3b, 0x3d, 0xb6, 0x60, - 0xb1, 0xc9, 0x4e, 0xdc, 0x3a, 0x0c, 0xe3, 0x78, 0x7f, 0x07, 0x4a, 0xbb, - 0x58, 0x56, 0xa6, 0x7a, 0xd9, 0x6a, 0xbb, 0x34, 0xd2, 0xc3, 0x5c, 0x58, - 0x61, 0xad, 0xae, 0xd3, 0xfe, 0x0f, 0x5c, 0x90, 0x0f, 0x57, 0x99, 0x98, - 0x7f, 0x0d, 0x00, 0x00, 0x00, 0x57, 0x7a, 0x54, 0x58, 0x74, 0x52, 0x61, - 0x77, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x79, - 0x70, 0x65, 0x20, 0x69, 0x70, 0x74, 0x63, 0x00, 0x00, 0x78, 0x9c, 0xe3, - 0xf2, 0x0c, 0x08, 0x71, 0x56, 0x28, 0x28, 0xca, 0x4f, 0xcb, 0xcc, 0x49, - 0xe5, 0x52, 0x00, 0x03, 0x23, 0x0b, 0x2e, 0x63, 0x0b, 0x13, 0x23, 0x13, - 0x4b, 0x93, 0x14, 0x03, 0x13, 0x20, 0x44, 0x80, 0x34, 0xc3, 0x64, 0x03, - 0x23, 0xb3, 0x54, 0x20, 0xcb, 0xd8, 0xd4, 0xc8, 0xc4, 0xcc, 0xc4, 0x1c, - 0xc4, 0x07, 0xcb, 0x80, 0x48, 0xa0, 0x4a, 0x2e, 0x00, 0xea, 0x17, 0x11, - 0x74, 0xf2, 0x42, 0x35, 0x95, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82 -}; -unsigned int favicon_16x16_png_len = 629; - -/* 32x32 png */ - -unsigned char favicon_32x32_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, - 0x08, 0x03, 0x00, 0x00, 0x00, 0x44, 0xa4, 0x8a, 0xc6, 0x00, 0x00, 0x00, - 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, - 0x05, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, - 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, - 0x05, 0x77, 0x00, 0x00, 0x05, 0x77, 0x01, 0xc8, 0xcf, 0x29, 0xa0, 0x00, - 0x00, 0x00, 0xdb, 0x50, 0x4c, 0x54, 0x45, 0x4c, 0x69, 0x71, 0xe0, 0x32, - 0x24, 0xe8, 0x32, 0x27, 0xe8, 0x32, 0x28, 0xa3, 0x66, 0x8e, 0xe8, 0x32, - 0x28, 0xe8, 0x32, 0x27, 0xe8, 0x32, 0x28, 0xe9, 0x32, 0x28, 0xea, 0x32, - 0x26, 0xe8, 0x32, 0x27, 0xe9, 0x32, 0x27, 0xea, 0x32, 0x26, 0xe8, 0x32, - 0x28, 0xe9, 0x31, 0x28, 0xe9, 0x32, 0x28, 0xe9, 0x31, 0x28, 0xe8, 0x31, - 0x27, 0xe8, 0x32, 0x28, 0x26, 0x54, 0xaf, 0x3f, 0x6e, 0xd7, 0xea, 0x2f, - 0x26, 0xe8, 0x32, 0x28, 0xe8, 0x31, 0x27, 0x5a, 0xa8, 0xda, 0xe8, 0x32, - 0x28, 0xe9, 0x32, 0x28, 0xe8, 0x32, 0x28, 0x2a, 0x5a, 0xc2, 0x47, 0x75, - 0xd5, 0xe8, 0x33, 0x28, 0x01, 0x1c, 0x5e, 0x72, 0xda, 0xf3, 0x03, 0x32, - 0x94, 0x6b, 0xe1, 0xf4, 0xa2, 0xf8, 0xfc, 0x41, 0x71, 0xda, 0x18, 0x46, - 0xa7, 0xaf, 0xf9, 0xfd, 0xaf, 0xf8, 0xfd, 0x0c, 0x42, 0xa7, 0x06, 0x37, - 0x9d, 0x92, 0xe9, 0xf9, 0xb3, 0xfd, 0xff, 0x04, 0x35, 0x9b, 0xf8, 0xf9, - 0xfc, 0xe9, 0x32, 0x28, 0x01, 0x1b, 0x5c, 0x46, 0xa4, 0xd5, 0x8d, 0xce, - 0xf3, 0x67, 0xdb, 0xf2, 0x5d, 0xc9, 0xe9, 0x42, 0x9c, 0xd1, 0x47, 0xa8, - 0xd7, 0x70, 0xab, 0xea, 0xc2, 0xe8, 0xee, 0x90, 0xa5, 0xd3, 0x70, 0xab, - 0xeb, 0x03, 0x34, 0x9d, 0x0b, 0x28, 0x63, 0x4d, 0x60, 0x8c, 0x41, 0x6f, - 0xda, 0xfd, 0xfd, 0xfe, 0x8b, 0xa0, 0xd2, 0xb5, 0xff, 0xff, 0x59, 0x8e, - 0xe2, 0xe8, 0x32, 0x28, 0x41, 0x71, 0xda, 0x03, 0x35, 0x9d, 0x01, 0x1b, - 0x5c, 0x6b, 0xe1, 0xf4, 0xb5, 0xff, 0xff, 0xff, 0xff, 0xff, 0x14, 0x8a, - 0x73, 0x68, 0x00, 0x00, 0x00, 0x42, 0x74, 0x52, 0x4e, 0x53, 0x00, 0x07, - 0x8c, 0xea, 0x04, 0xe2, 0x80, 0xf6, 0x47, 0x0e, 0xdb, 0x61, 0x16, 0xc1, - 0xb6, 0xa6, 0xcf, 0x6e, 0xf0, 0xc8, 0xf2, 0x1d, 0x98, 0x3b, 0x14, 0xfc, - 0x28, 0x53, 0x2d, 0xd1, 0x32, 0xe4, 0x92, 0xcd, 0xb7, 0x26, 0xe2, 0xe5, - 0xe0, 0xc6, 0xd1, 0xf4, 0x54, 0xf4, 0xe5, 0xdd, 0x37, 0xf1, 0xca, 0xbf, - 0xf0, 0xdb, 0x50, 0x9c, 0xc0, 0xb7, 0xc2, 0x60, 0x86, 0xf4, 0xd1, 0x85, - 0xec, 0xb2, 0x7b, 0xcb, 0xe6, 0x30, 0x9e, 0x93, 0x00, 0x00, 0x02, 0x18, - 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x6d, 0x53, 0xe9, 0x7a, 0x9b, 0x30, - 0x10, 0x5c, 0x04, 0x02, 0x71, 0x83, 0x0c, 0xc6, 0xf8, 0x76, 0x6c, 0x27, - 0xf1, 0xd5, 0xa6, 0xb9, 0x7b, 0xa6, 0x1f, 0x60, 0xd7, 0xef, 0xff, 0x44, - 0xdd, 0x15, 0xe0, 0x38, 0x6e, 0xe7, 0x87, 0x2c, 0x6b, 0x86, 0xdd, 0xd9, - 0x95, 0x16, 0xe0, 0x23, 0x5c, 0x29, 0x79, 0x14, 0x0e, 0x6c, 0xf8, 0x0f, - 0x3e, 0xa5, 0xb8, 0x78, 0xa6, 0x5e, 0x20, 0xac, 0xae, 0x77, 0x4e, 0xf5, - 0x07, 0x00, 0x69, 0x50, 0x14, 0x7a, 0x77, 0xa0, 0x81, 0x16, 0xd7, 0x12, - 0xd3, 0x38, 0xf1, 0x1e, 0x8f, 0x0c, 0x21, 0x0b, 0x05, 0xc9, 0x52, 0xb0, - 0xcd, 0x9c, 0xb6, 0x41, 0x9b, 0xc7, 0xf0, 0xb9, 0x07, 0x4e, 0xd1, 0xc2, - 0x32, 0x35, 0xc8, 0x38, 0xed, 0xa2, 0x46, 0xe1, 0xe6, 0x19, 0x9c, 0x09, - 0x8a, 0xc2, 0x11, 0x60, 0xfb, 0x2a, 0x86, 0xca, 0x62, 0xeb, 0x0c, 0xd7, - 0x4c, 0xb8, 0xcc, 0xb7, 0x5a, 0x89, 0x09, 0x5a, 0x58, 0xff, 0x22, 0x62, - 0x79, 0xaa, 0x49, 0x73, 0xfd, 0x46, 0x11, 0x6a, 0x46, 0x40, 0xe9, 0xa8, - 0x16, 0xde, 0xfd, 0x50, 0x6b, 0x23, 0xf1, 0x35, 0x8d, 0x14, 0xc8, 0x65, - 0xc5, 0xf8, 0xa2, 0x55, 0x75, 0xa2, 0x10, 0x8b, 0xc3, 0x10, 0x36, 0x98, - 0x5c, 0x1d, 0xf7, 0xe6, 0xf3, 0x5e, 0xdb, 0x15, 0xa7, 0xf1, 0x91, 0x61, - 0xb5, 0x03, 0x08, 0x42, 0x80, 0xf5, 0xcb, 0xe6, 0x0f, 0xe2, 0x7a, 0xfa, - 0x55, 0x89, 0xbc, 0x48, 0x29, 0x04, 0x30, 0x0a, 0xe4, 0xa0, 0xd3, 0x1b, - 0x64, 0x37, 0xcf, 0x8b, 0xb2, 0x2c, 0x93, 0x9f, 0x54, 0x59, 0xaa, 0xda, - 0xc0, 0x6d, 0x5b, 0x2f, 0x7c, 0x90, 0x2e, 0xc0, 0x35, 0x7e, 0x3d, 0x2a, - 0x6b, 0x8c, 0x86, 0x94, 0x45, 0xf9, 0x60, 0x10, 0x17, 0x1c, 0xf2, 0x01, - 0x09, 0x36, 0x2d, 0x5f, 0x2e, 0xb6, 0xa4, 0x88, 0x55, 0x4f, 0x3d, 0x4d, - 0x4a, 0xb0, 0x5c, 0x4a, 0xf1, 0x4c, 0x5c, 0xd2, 0xe9, 0x24, 0xc9, 0xb2, - 0xda, 0xa2, 0x11, 0x23, 0xaa, 0x7d, 0x32, 0x07, 0x78, 0x4c, 0x02, 0xca, - 0xdf, 0xf9, 0xbc, 0xdf, 0x4f, 0xde, 0x5e, 0x97, 0xd5, 0x0c, 0x43, 0x08, - 0x12, 0xe8, 0x46, 0x2a, 0xc0, 0xc7, 0x5e, 0xfc, 0xbe, 0xa1, 0xef, 0x91, - 0xdf, 0xbf, 0x1c, 0x8f, 0xbb, 0x55, 0xf5, 0x88, 0x8a, 0xa8, 0x2e, 0x04, - 0x80, 0x45, 0x00, 0xf3, 0x2f, 0x14, 0x00, 0xf9, 0xef, 0x47, 0xc4, 0xa8, - 0x7a, 0x6a, 0x5d, 0x50, 0x93, 0x45, 0x8e, 0xfd, 0x6e, 0x05, 0xfb, 0x5f, - 0x28, 0x58, 0x56, 0x0f, 0xe8, 0xc2, 0x53, 0xf7, 0x4a, 0x17, 0xa4, 0xa3, - 0x89, 0x35, 0xa5, 0x98, 0xa0, 0xe0, 0xc7, 0x6e, 0xf7, 0x5a, 0x55, 0xf7, - 0xeb, 0x36, 0x07, 0xdd, 0x23, 0x73, 0x0c, 0x30, 0xa8, 0xca, 0x0e, 0x2a, - 0x26, 0xdb, 0xaa, 0xaa, 0x6e, 0x0f, 0x53, 0x3c, 0x57, 0xf7, 0x4d, 0xcf, - 0x34, 0xa5, 0x42, 0x87, 0x49, 0x99, 0x2c, 0x57, 0xb3, 0x59, 0x45, 0xb8, - 0x3b, 0x5c, 0xe1, 0xb9, 0xd9, 0x78, 0xc0, 0x9d, 0x8e, 0x2e, 0x86, 0x8b, - 0xdb, 0xaa, 0x41, 0xe7, 0xa0, 0x04, 0x2e, 0x5a, 0xa8, 0x5f, 0x8a, 0xed, - 0x04, 0xb8, 0x0e, 0x67, 0xef, 0xbc, 0x12, 0x64, 0x41, 0xd0, 0x6f, 0xee, - 0x77, 0x6c, 0xd1, 0xa3, 0x33, 0xbe, 0xad, 0x28, 0xff, 0x1d, 0xf2, 0xca, - 0xc3, 0x39, 0x84, 0x52, 0x40, 0xef, 0xf1, 0xe9, 0x01, 0xd9, 0xfb, 0xab, - 0xe9, 0xbc, 0x3e, 0x37, 0xdd, 0x93, 0x42, 0x86, 0xcd, 0xc3, 0x34, 0x7a, - 0xa7, 0x79, 0xb1, 0xc3, 0xdc, 0x7d, 0x9f, 0x2d, 0x87, 0x8b, 0xcb, 0xb0, - 0x0e, 0xcf, 0xce, 0xfe, 0x6a, 0xa6, 0xe5, 0xe3, 0xdc, 0xb5, 0x30, 0x84, - 0x9f, 0xb3, 0x8b, 0x09, 0x4e, 0x99, 0xae, 0x87, 0xb1, 0x18, 0x8f, 0xc7, - 0x22, 0x0e, 0x75, 0xd9, 0xed, 0xff, 0x3b, 0xde, 0x9a, 0x60, 0x01, 0x97, - 0x52, 0xea, 0x3e, 0x13, 0xa7, 0x60, 0x7f, 0x01, 0xc7, 0xf9, 0x65, 0x67, - 0xd7, 0x75, 0x92, 0xfc, 0x00, 0x00, 0x00, 0x57, 0x7a, 0x54, 0x58, 0x74, - 0x52, 0x61, 0x77, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, - 0x74, 0x79, 0x70, 0x65, 0x20, 0x69, 0x70, 0x74, 0x63, 0x00, 0x00, 0x78, - 0x9c, 0xe3, 0xf2, 0x0c, 0x08, 0x71, 0x56, 0x28, 0x28, 0xca, 0x4f, 0xcb, - 0xcc, 0x49, 0xe5, 0x52, 0x00, 0x03, 0x23, 0x0b, 0x2e, 0x63, 0x0b, 0x13, - 0x23, 0x13, 0x4b, 0x93, 0x14, 0x03, 0x13, 0x20, 0x44, 0x80, 0x34, 0xc3, - 0x64, 0x03, 0x23, 0xb3, 0x54, 0x20, 0xcb, 0xd8, 0xd4, 0xc8, 0xc4, 0xcc, - 0xc4, 0x1c, 0xc4, 0x07, 0xcb, 0x80, 0x48, 0xa0, 0x4a, 0x2e, 0x00, 0xea, - 0x17, 0x11, 0x74, 0xf2, 0x42, 0x35, 0x95, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 -}; -unsigned int favicon_32x32_png_len = 1051; - -/* 32x32 .ico format */ - -unsigned char favicon_ico[] = { - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0xa8, 0x10, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x77, 0x05, - 0x00, 0x00, 0x77, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x24, 0x32, - 0xe0, 0x07, 0x28, 0x32, 0xe9, 0x47, 0x27, 0x32, 0xe8, 0x8c, 0x28, 0x31, - 0xe9, 0xb6, 0x28, 0x32, 0xe8, 0xe2, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, - 0xe8, 0xf0, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, 0xe8, 0xea, 0x28, 0x32, - 0xe8, 0xc1, 0x27, 0x32, 0xe8, 0x8c, 0x28, 0x32, 0xe9, 0x47, 0x24, 0x32, - 0xe0, 0x07, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x2f, - 0xea, 0x1d, 0x27, 0x32, 0xe8, 0x8c, 0x28, 0x32, 0xe8, 0xea, 0x28, 0x32, - 0xe8, 0xea, 0x28, 0x32, 0xe9, 0xa6, 0x27, 0x31, 0xe8, 0x6e, 0x28, 0x32, - 0xe9, 0x47, 0x28, 0x33, 0xe8, 0x32, 0x28, 0x33, 0xe8, 0x32, 0x28, 0x33, - 0xe8, 0x32, 0x28, 0x32, 0xe9, 0x47, 0x27, 0x31, 0xe8, 0x6e, 0x28, 0x32, - 0xe9, 0xa6, 0x28, 0x32, 0xe8, 0xea, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, - 0xe8, 0x98, 0x28, 0x32, 0xe9, 0x28, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x24, 0x32, - 0xe0, 0x07, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, 0xe8, 0xf6, 0x28, 0x32, - 0xe8, 0xc1, 0x28, 0x32, 0xe8, 0x53, 0x24, 0x32, 0xe0, 0x07, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x8e, 0x66, - 0xa3, 0x04, 0x28, 0x32, 0xe9, 0x47, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x32, - 0xe8, 0xfc, 0x27, 0x32, 0xe8, 0x8c, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x28, 0x27, 0x32, 0xe8, 0xdb, 0x28, 0x32, - 0xe8, 0xe2, 0x28, 0x32, 0xe9, 0x47, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x47, 0x27, 0x32, - 0xe8, 0xdb, 0x28, 0x32, 0xe8, 0xe2, 0x27, 0x31, 0xe8, 0x3b, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x47, 0x28, 0x32, - 0xe8, 0xf0, 0x28, 0x32, 0xe9, 0xa6, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x8e, 0x66, - 0xa3, 0x04, 0xda, 0xa8, 0x5a, 0x14, 0x8e, 0x66, 0xa3, 0x04, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, 0xea, 0x0e, 0x28, 0x32, - 0xe9, 0xa6, 0x28, 0x32, 0xe8, 0xfc, 0x27, 0x32, 0xe9, 0x61, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, - 0xe9, 0x47, 0x28, 0x32, 0xe8, 0xf6, 0x27, 0x32, 0xe8, 0x8c, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xda, 0xa8, 0x5a, 0x14, 0xd1, 0x9c, 0x42, 0x50, 0xd7, 0xa8, - 0x47, 0x9c, 0xe9, 0xc9, 0x5d, 0xdb, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, - 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf2, 0xdb, 0x67, 0xf0, 0xf4, 0xe1, - 0x6b, 0xb7, 0xf3, 0xda, 0x72, 0x92, 0xfc, 0xf8, 0xa2, 0x26, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe8, 0x80, 0x27, 0x32, 0xe9, 0x61, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x33, 0xe8, 0x32, 0x28, 0x32, 0xe8, 0xf6, 0x27, 0x32, - 0xe8, 0x8c, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x8e, 0x66, 0xa3, 0x04, 0x9d, 0x34, 0x03, 0x86, 0x9d, 0x37, - 0x06, 0xf4, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0xa7, 0x42, 0x0c, 0xd1, 0xd5, 0xa4, 0x46, 0xca, 0xf4, 0xe1, - 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, - 0x6b, 0xff, 0xf3, 0xda, 0x72, 0x92, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, 0xea, 0x0e, 0x27, 0x32, - 0xe8, 0xdb, 0x28, 0x31, 0xe9, 0xb6, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xc2, 0x5a, 0x2a, 0x2d, 0x94, 0x32, - 0x03, 0xcd, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0xaf, 0x54, 0x26, 0xc8, 0xf4, 0xe1, - 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, - 0x6b, 0xb7, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x31, 0xe8, 0x3b, 0x28, 0x31, 0xe9, 0xb6, 0x28, 0x31, - 0xe9, 0xb6, 0x28, 0x32, 0xe9, 0x28, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, 0xe8, 0xea, 0x26, 0x32, - 0xea, 0x16, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xc2, 0x5a, - 0x2a, 0x2d, 0xda, 0x71, 0x41, 0xe2, 0xa7, 0x42, 0x0c, 0xd1, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0xaf, 0x54, 0x26, 0xc8, 0xf4, 0xe1, - 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xb7, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe9, 0x61, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, - 0xe8, 0xdb, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x2f, 0xea, 0x1d, 0x28, 0x32, - 0xe8, 0xf6, 0x27, 0x32, 0xe9, 0x61, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xc2, 0x5a, 0x2a, 0x2d, 0xd7, 0x6e, 0x3f, 0xf2, 0xda, 0x71, - 0x41, 0xff, 0xd7, 0x6e, 0x3f, 0xf2, 0xa7, 0x46, 0x18, 0xe5, 0x9d, 0x37, - 0x06, 0xf4, 0x94, 0x32, 0x03, 0xcd, 0x94, 0x32, 0x03, 0xcd, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0xd5, 0xa4, 0x46, 0xca, 0xf4, 0xe1, - 0x6b, 0xff, 0xf4, 0xe1, 0x6b, 0xb7, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0x98, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x32, 0xe8, 0x8c, 0x27, 0x32, 0xe8, 0xdb, 0x8e, 0x66, - 0xa3, 0x04, 0x71, 0x69, 0x4c, 0x00, 0x8e, 0x66, 0xa3, 0x04, 0xd5, 0x75, - 0x47, 0xd1, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xaf, 0x54, 0x26, 0xc8, 0x5e, 0x1c, 0x01, 0xe4, 0x5c, 0x1b, - 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5e, 0x1c, 0x01, 0xe4, 0x9b, 0x35, - 0x04, 0xe5, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0xa7, 0x42, 0x0c, 0xd1, 0xf4, 0xe1, 0x6b, 0xff, 0xf3, 0xda, - 0x72, 0x92, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe9, 0xa6, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x26, 0x2f, - 0xea, 0x1d, 0x71, 0x69, 0x4c, 0x00, 0x24, 0x32, 0xe0, 0x07, 0x28, 0x32, - 0xe8, 0xea, 0x27, 0x31, 0xe8, 0x6e, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xf9, 0xe9, 0x92, 0x54, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xd7, 0x6e, 0x3f, 0xf2, 0x5e, 0x1c, - 0x01, 0xe4, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, - 0x01, 0xff, 0x8c, 0x60, 0x4d, 0xd1, 0xfc, 0xf9, 0xf8, 0xdd, 0xfc, 0xf9, - 0xf8, 0xdd, 0xd3, 0xa5, 0x90, 0xc2, 0x9d, 0x35, 0x03, 0xff, 0x9d, 0x35, - 0x03, 0xff, 0xf2, 0xdb, 0x67, 0xf0, 0xf9, 0xe9, 0x92, 0x54, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x31, - 0xe9, 0xcf, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x47, 0x28, 0x32, 0xe8, 0xfc, 0x26, 0x32, - 0xea, 0x16, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xf3, 0xce, - 0x8d, 0xbf, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xaf, 0x54, 0x26, 0xc8, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, - 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0xfe, 0xfd, - 0xfd, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xa7, 0x46, 0x18, 0xe5, 0x9d, 0x35, 0x03, 0xff, 0xe9, 0xc9, - 0x5d, 0xdb, 0xda, 0xa8, 0x5a, 0x14, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x26, 0x32, 0xea, 0x16, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, - 0xe8, 0xdb, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe8, 0x8c, 0x28, 0x31, 0xe9, 0xcf, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xfc, 0xf8, 0xa2, 0x26, 0xf3, 0xce, 0x8d, 0xbf, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xaf, 0x54, - 0x26, 0xc8, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, - 0x01, 0xff, 0x63, 0x28, 0x0b, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x75, - 0x47, 0xd1, 0x9d, 0x35, 0x03, 0xff, 0xd7, 0xa8, 0x47, 0x9c, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x31, - 0xe8, 0x6e, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0x98, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x32, - 0xe8, 0x98, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xff, 0xff, - 0xb5, 0x7b, 0xfd, 0xf8, 0xaf, 0xc6, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xd7, 0x6e, 0x3f, 0xf2, 0x5c, 0x1b, - 0x01, 0xf1, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, - 0x01, 0xff, 0xee, 0xe8, 0xc2, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xfc, 0xf9, 0xf8, 0xdd, 0x9d, 0x37, 0x06, 0xf4, 0x9d, 0x35, - 0x03, 0xff, 0xd1, 0x9c, 0x42, 0x50, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x31, 0xe9, 0xcf, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe9, 0x47, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe8, 0xe2, 0x27, 0x31, 0xe8, 0x6e, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xfd, 0xf8, 0xaf, 0xc6, 0xff, 0xff, - 0xb5, 0xff, 0xda, 0x71, 0x41, 0xe2, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xaf, 0x54, 0x26, 0xc8, 0x5c, 0x1b, - 0x01, 0xf1, 0x5c, 0x1b, 0x01, 0xff, 0x5c, 0x1b, 0x01, 0xff, 0x5e, 0x1c, - 0x01, 0xe4, 0xd2, 0xa0, 0x8b, 0xb2, 0xd3, 0xa5, 0x90, 0xc2, 0xa7, 0x46, - 0x18, 0xe5, 0x9d, 0x35, 0x03, 0xff, 0x94, 0x32, 0x03, 0xcd, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, - 0xe9, 0x47, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xea, 0x8e, 0x66, - 0xa3, 0x04, 0x26, 0x2f, 0xea, 0x1d, 0x28, 0x32, 0xe9, 0x47, 0x28, 0x32, - 0xe8, 0xf6, 0x27, 0x32, 0xe9, 0x61, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xfd, 0xf8, 0xaf, 0xc6, 0xff, 0xff, 0xb5, 0xff, 0xea, 0xab, - 0x70, 0xc0, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xd7, 0x6e, 0x3f, 0xf2, 0xaf, 0x54, - 0x26, 0xc8, 0xaf, 0x54, 0x26, 0xc8, 0xd7, 0x6e, 0x3f, 0xf2, 0xd7, 0x6e, - 0x3f, 0xf2, 0xa7, 0x46, 0x18, 0xe5, 0x9d, 0x35, 0x03, 0xff, 0x9b, 0x35, - 0x04, 0xe5, 0xda, 0xa8, 0x5a, 0x14, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x8e, 0x66, 0xa3, 0x04, 0x28, 0x31, 0xe9, 0xcf, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x27, 0x32, 0xe8, 0x80, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe8, 0x8c, 0x27, 0x32, 0xe8, 0xdb, 0x28, 0x32, 0xe8, 0xfc, 0x28, 0x32, - 0xe8, 0x53, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xfd, 0xf9, - 0xaf, 0xe0, 0xff, 0xff, 0xb5, 0xff, 0xff, 0xfd, 0xb3, 0xf4, 0xd5, 0x75, - 0x47, 0xd1, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xe2, 0x9b, 0x35, 0x04, 0xe5, 0xc2, 0x5a, 0x2a, 0x2d, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x31, - 0xe8, 0x6e, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xf6, 0x26, 0x32, - 0xea, 0x16, 0x24, 0x32, 0xe0, 0x07, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, - 0xe8, 0xf0, 0x28, 0x32, 0xe8, 0xf0, 0x27, 0x32, 0xe9, 0x61, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xfd, 0xf9, 0xaf, 0xe0, 0xff, 0xff, - 0xb5, 0xff, 0xff, 0xff, 0xb5, 0xff, 0xfd, 0xf9, 0xaf, 0xe0, 0xd5, 0x75, - 0x47, 0xd1, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xd5, 0x75, 0x47, 0xd1, 0xc2, 0x5a, - 0x2a, 0x2d, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x28, 0x28, 0x32, 0xe8, 0xf6, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x27, 0x32, 0xe8, 0x8c, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x31, - 0xe8, 0x6e, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xe2, 0x27, 0x32, - 0xe8, 0xdb, 0x27, 0x32, 0xe8, 0x80, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0xfd, 0xf8, 0xaf, 0xc6, 0xff, 0xff, 0xb5, 0xff, 0xff, 0xff, - 0xb5, 0xff, 0xff, 0xff, 0xb5, 0xff, 0xff, 0xfd, 0xb3, 0xf4, 0xea, 0xab, - 0x70, 0xc0, 0xda, 0x71, 0x41, 0xe2, 0xda, 0x71, 0x41, 0xff, 0xda, 0x71, - 0x41, 0xff, 0xda, 0x71, 0x41, 0xff, 0xd7, 0x6e, 0x3f, 0xf2, 0xda, 0x6f, - 0x41, 0x85, 0x8e, 0x66, 0xa3, 0x04, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x2f, 0xea, 0x1d, 0x28, 0x32, - 0xe8, 0xe2, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xe2, 0x26, 0x32, - 0xea, 0x0e, 0x26, 0x32, 0xea, 0x0e, 0x28, 0x32, 0xe8, 0xea, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x31, 0xe9, 0xb6, 0x28, 0x32, - 0xe9, 0xa6, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xf9, 0xe9, - 0x92, 0x54, 0xee, 0xe8, 0xc2, 0xb7, 0xff, 0xfd, 0xb3, 0xf4, 0xff, 0xff, - 0xb5, 0xff, 0xff, 0xff, 0xb5, 0xff, 0xff, 0xff, 0xb5, 0xff, 0xff, 0xff, - 0xb5, 0xff, 0xfd, 0xf9, 0xaf, 0xe0, 0xf3, 0xda, 0x72, 0x92, 0xeb, 0xab, - 0x70, 0x60, 0xda, 0xa8, 0x5a, 0x14, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, - 0xea, 0x16, 0x28, 0x31, 0xe9, 0xcf, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe9, 0x47, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe8, 0x8c, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe9, 0xa6, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, 0xe8, 0xe2, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xda, 0xa8, 0x5a, 0x14, 0xfc, 0xf8, - 0xa2, 0x26, 0xfc, 0xf8, 0xa2, 0x26, 0xda, 0xa8, 0x5a, 0x14, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x28, 0x27, 0x32, 0xe8, 0xdb, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, 0xe8, 0x80, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x31, 0xe8, 0x3b, 0x28, 0x32, 0xe8, 0xfc, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0x53, 0x27, 0x31, - 0xe8, 0x3b, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x33, 0xe8, 0x32, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, 0xe9, 0x61, 0x28, 0x32, - 0xe8, 0xf6, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe9, 0xa6, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, 0xea, 0x16, 0x28, 0x32, - 0xe8, 0xe2, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xf6, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, - 0xe8, 0xe2, 0x28, 0x32, 0xe8, 0x98, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x37, 0x28, 0x32, - 0xe8, 0xc1, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xc1, 0x24, 0x32, 0xe0, 0x07, 0x24, 0x32, - 0xe0, 0x07, 0x28, 0x31, 0xe9, 0xb6, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0x98, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x31, 0xe8, 0x6e, 0x28, 0x32, - 0xe8, 0xf0, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x24, 0x32, 0xe0, 0x07, 0x27, 0x32, 0xe9, 0x61, 0x28, 0x32, - 0xe8, 0xc1, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe9, 0xa6, 0x24, 0x32, - 0xe0, 0x07, 0x8e, 0x66, 0xa3, 0x04, 0x28, 0x31, 0xe9, 0xb6, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xf6, 0x26, 0x32, 0xea, 0x16, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x26, 0x32, 0xea, 0x0e, 0x28, 0x32, 0xe8, 0xea, 0x27, 0x32, - 0xe8, 0x8c, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x31, 0xe8, 0x3b, 0x28, 0x32, 0xe9, 0x47, 0x27, 0x32, - 0xe9, 0x61, 0x27, 0x32, 0xe8, 0x8c, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x32, - 0xe8, 0xf6, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, - 0xe8, 0x80, 0x71, 0x69, 0x4c, 0x00, 0x24, 0x32, 0xe0, 0x07, 0x28, 0x32, - 0xe9, 0xa6, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, 0xe8, 0x80, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x32, 0xe9, 0x61, 0x28, 0x32, 0xe8, 0xfc, 0x27, 0x31, - 0xe8, 0x3b, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe8, 0xdb, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x27, 0x32, - 0xe8, 0xdb, 0x28, 0x32, 0xe9, 0x47, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, - 0xea, 0x0e, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x31, - 0xe9, 0xb6, 0x8e, 0x66, 0xa3, 0x04, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x8e, 0x66, - 0xa3, 0x04, 0x28, 0x32, 0xe8, 0xc1, 0x28, 0x32, 0xe8, 0xe2, 0x26, 0x32, - 0xea, 0x16, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, 0xe8, 0xdb, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xf6, 0x27, 0x32, 0xe8, 0x80, 0x24, 0x32, 0xe0, 0x07, 0x71, 0x69, - 0x4c, 0x00, 0x27, 0x31, 0xe8, 0x3b, 0x28, 0x32, 0xe8, 0xe2, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x31, 0xe9, 0xcf, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x26, 0x32, - 0xea, 0x16, 0x28, 0x32, 0xe8, 0xe2, 0x28, 0x31, 0xe9, 0xcf, 0x8e, 0x66, - 0xa3, 0x04, 0x28, 0x32, 0xe9, 0x47, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xf0, 0x27, 0x32, 0xe8, 0x8c, 0x26, 0x2f, 0xea, 0x1d, 0x71, 0x69, - 0x4c, 0x00, 0x26, 0x32, 0xea, 0x0e, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, - 0xe8, 0xfc, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x31, 0xe9, 0xb6, 0x26, 0x32, - 0xea, 0x0e, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, - 0xe9, 0x28, 0x28, 0x32, 0xe8, 0x53, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x26, 0x2f, 0xea, 0x1d, 0x28, 0x31, 0xe9, 0xb6, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xea, 0x28, 0x32, - 0xe8, 0x98, 0x28, 0x32, 0xe8, 0x53, 0x24, 0x32, 0xe0, 0x07, 0x71, 0x69, - 0x4c, 0x00, 0x24, 0x32, 0xe0, 0x07, 0x27, 0x31, 0xe8, 0x6e, 0x28, 0x32, - 0xe8, 0xea, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xf6, 0x27, 0x32, - 0xe8, 0x80, 0x8e, 0x66, 0xa3, 0x04, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x28, 0x32, 0xe9, 0x37, 0x26, 0x2f, - 0xea, 0x1d, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x26, 0x32, 0xea, 0x16, 0x27, 0x32, 0xe8, 0x80, 0x28, 0x32, - 0xe8, 0xea, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, - 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xff, 0x28, 0x32, 0xe8, 0xf6, 0x28, 0x32, - 0xe8, 0x98, 0x26, 0x32, 0xea, 0x16, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x27, 0x32, - 0xe9, 0x61, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, 0xe8, 0xf0, 0x28, 0x32, - 0xe8, 0xe2, 0x28, 0x31, 0xe9, 0xcf, 0x28, 0x32, 0xe9, 0xa6, 0x28, 0x32, - 0xe8, 0x53, 0x26, 0x32, 0xea, 0x0e, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0x71, 0x69, - 0x4c, 0x00, 0x71, 0x69, 0x4c, 0x00, 0xff, 0xe0, 0x00, 0xff, 0xff, 0x80, - 0x00, 0x3f, 0xfe, 0x07, 0xfc, 0x0f, 0xfc, 0x3f, 0xff, 0x87, 0xf8, 0x7e, - 0x3f, 0xc3, 0xf1, 0xe0, 0x03, 0xf3, 0xe3, 0x80, 0x03, 0xff, 0xc7, 0x00, - 0x03, 0x87, 0xc6, 0x00, 0x03, 0x83, 0x8c, 0x00, 0x03, 0x83, 0x88, 0x00, - 0x03, 0x81, 0x18, 0x00, 0x03, 0x81, 0x18, 0x00, 0x03, 0x03, 0x30, 0x00, - 0x07, 0x03, 0x30, 0x00, 0x07, 0x03, 0x30, 0x00, 0x0e, 0x00, 0x30, 0x00, - 0x0c, 0x04, 0x30, 0x00, 0x1c, 0x00, 0x30, 0x00, 0x38, 0x08, 0x30, 0x00, - 0x70, 0x00, 0x30, 0x01, 0xe0, 0x10, 0x3e, 0x1f, 0xc0, 0x20, 0x1f, 0xff, - 0x80, 0x40, 0x9f, 0xfe, 0x00, 0x01, 0x8f, 0xf0, 0x00, 0x01, 0x8e, 0x00, - 0x02, 0x03, 0xc6, 0x00, 0x04, 0x03, 0xc2, 0x00, 0x08, 0x07, 0xe0, 0x00, - 0x20, 0x0f, 0xf3, 0x00, 0x80, 0x1f, 0xff, 0xce, 0x00, 0x7f, 0xff, 0xfe, - 0x01, 0xff -}; -unsigned int favicon_ico_len = 4286; diff --git a/src/jsonlib/README.md b/src/jsonlib/README.md deleted file mode 100644 index 80029e0d..00000000 --- a/src/jsonlib/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# A lightweight JSON library - -https://github.com/wyolum/jsonlib - -I dont want to use the 'goto' library for this, ArduinoJSON, something lighter and easier to include seemed appropriate diff --git a/src/jsonlib/jsonlib-LICENSE b/src/jsonlib/jsonlib-LICENSE deleted file mode 100644 index 261eeb9e..00000000 --- a/src/jsonlib/jsonlib-LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/src/jsonlib/jsonlib.cpp b/src/jsonlib/jsonlib.cpp deleted file mode 100644 index 4a5c454a..00000000 --- a/src/jsonlib/jsonlib.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include "jsonlib.h" - -// remove all white space from the json string... preserving strings -String jsonRemoveWhiteSpace(String json){ - int i = 0; - int cursor = 0; - int quote_count = 0; - String out = String(); - char out_chars[json.length()+1]; - - for(i=0; i 0 && json[i - 1] == '\\'){ - //escaped! - } - else{ // not escaped - quote_count++; - } - } - out_chars[cursor++] = json[i]; - } - } - out_chars[cursor] = 0; - out = String(out_chars); - return out; -} - -String jsonIndexList(String json, int idx){ - int count = 1; // number of braces seen { = +1 } = -1 - int i = 1; - int item_idx = 0; - int start = i; - int stop = json.length() - 1; - - while(i < json.length() && count > 0){ - if(json.charAt(i) == ']' or json.charAt(i) == '}'){ - count--; - } - if(json.charAt(i) == '{' or json.charAt(i) == '['){ - count++; - } - if(count == 1 && json.charAt(i) == ',' && item_idx == idx){ - //item separator! - stop = i; - return json.substring(start, stop); - } - if(count == 1 && json.charAt(i) == ']' && item_idx == idx){ - stop = i + 1; - return json.substring(start, stop); - } - if(count == 1 && json.charAt(i) == ','){ - item_idx++; - start = i + 1; - } - i++; - } - return json.substring(start, stop); -} - -// return a sub-json struct -String jsonExtract(String json, String name){ - char next; - int start = 0, stop = 0; - static const size_t npos = -1; - - name = String("\"") + name + String("\""); - if (json.indexOf(name) == npos) return json.substring(0,0); - start = json.indexOf(name) + name.length() + 1; - next = json.charAt(start); - if(next == '\"'){ - //Serial.println(".. a string"); - start = start + 1; - stop = json.indexOf('"', start); - } - else if(next == '['){ - //Serial.println(".. a list"); - int count = 1; - int i = start; - while(count > 0 && i++ < json.length()){ - if(json.charAt(i) == ']'){ - count--; - } - else if(json.charAt(i) == '['){ - count++; - } - } - stop = i + 1; - } - else if(next == '{'){ - //Serial.println(".. a struct"); - int count = 1; - int i = start; - while(count > 0 && i++ < json.length()){ - if(json.charAt(i) == '}'){ - count--; - } - else if(json.charAt(i) == '{'){ - count++; - } - } - stop = i + 1; - } - else if(next == '.' || next == '-' || ('0' <= next && next <= '9')){ - //Serial.println(".. a number"); - int i = start; - while(i++ < json.length() && (json.charAt(i) == '.' || ('0' <= json.charAt(i) && json.charAt(i) <= '9'))){ - } - stop = i; - } - return json.substring(start, stop); -} - diff --git a/src/jsonlib/jsonlib.h b/src/jsonlib/jsonlib.h deleted file mode 100644 index ca8a9828..00000000 --- a/src/jsonlib/jsonlib.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef JSONLIB_H -#define JSONLIB_H - -#include - -// remove all white space from the json string... preserving strings -String jsonRemoveWhiteSpace(String json); - -// index a json list -String jsonIndexList(String json, int idx); - -// extract a json component from json -String jsonExtract(String json, String name); - -#endif diff --git a/src/logo.h b/src/logo.h deleted file mode 100644 index 754388ea..00000000 --- a/src/logo.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Logo (svg format) - */ - -const uint8_t logo_svg[] = R"=====( - - - - - image/svg+xml - - - - - - - - ESP32 CAM Webserver - logo - - - - - - - - - - - - - - - - - - - - - - - - - - -)====="; - -size_t logo_svg_len = sizeof(logo_svg)-1; diff --git a/src/parsebytes.h b/src/parsebytes.h index 9168990a..468a93d0 100644 --- a/src/parsebytes.h +++ b/src/parsebytes.h @@ -1 +1,6 @@ +#ifndef parsebytes_h +#define parsebytes_h + extern void parseBytes(const char* str, char sep, byte* bytes, int maxBytes, int base); + +#endif \ No newline at end of file diff --git a/src/storage.cpp b/src/storage.cpp new file mode 100644 index 00000000..1bdd4b60 --- /dev/null +++ b/src/storage.cpp @@ -0,0 +1,103 @@ +#include "storage.h" + +/// @brief List the content of a folder +/// @param dirname +/// @param levels +void listDir(const char * dirname, uint8_t levels){ + Serial.printf("Listing directory: %s\r\n", dirname); + + File root = fsStorage->open(dirname); + if(!root){ + Serial.println("- failed to open directory"); + return; + } + if(!root.isDirectory()){ + Serial.println(" - not a directory"); + return; + } + + File file = root.openNextFile(); + while(file){ + if(file.isDirectory()) { + Serial.print(" DIR : "); + Serial.println(file.name()); + if(levels){ + listDir(file.name(), levels -1); + } + } else { + Serial.print(" FILE: "); + Serial.print(file.name()); + Serial.print("\tSIZE: "); + Serial.println(file.size()); + } + file = root.openNextFile(); + } +} + + + + +/// @brief file storage initialization +/// @return true if success, or false otherwise. +bool init_storage() { +#ifdef USE_LittleFS + return fsStorage->begin(FORMAT_LITTLEFS_IF_FAILED); +#else + if(!fsStorage->begin("/root", true, false, SDMMC_FREQ_DEFAULT)) return false; + + uint8_t cardType = fsStorage->cardType(); + + switch(cardType) { + case CARD_NONE: + Serial.println("No SD card attached"); + return false; + case CARD_MMC: + Serial.print("MMC"); + break; + case CARD_SD: + Serial.print("SDSC"); + break; + case CARD_SDHC: + Serial.print("SDHC"); + break; + default: + Serial.println("Unknown Type"); + break; + } + + Serial.printf(" card size: %lluMB\n", storageSize()); + + return true; +#endif +} + +/// @brief Load a file to a String +/// @param path file name +/// @param s pointer to the String buffer +/// @return OK(0) or FAIL(1) +int readFileToString(char *path, String *s) +{ + File file = fsStorage->open(path); + if (!file) + return FAIL; + + while (file.available()) + { + char charRead = file.read(); + *s += charRead; + } + file.close(); + return OK; +} + +int storageSize() { + return (int) (fsStorage->totalBytes() / pow(1024, STORAGE_UNITS)); +} + +int storageUsed() { + return (int) (fsStorage->usedBytes() / pow(1024, STORAGE_UNITS)); +} + +int capacityUnits() { + return STORAGE_UNITS; +} diff --git a/src/storage.h b/src/storage.h new file mode 100644 index 00000000..e5841b68 --- /dev/null +++ b/src/storage.h @@ -0,0 +1,33 @@ +#ifndef storage_h +#define storage_h + +#include + +#include "app_config.h" + +#define STORAGE_UNITS_BT 0 +#define STORAGE_UNITS_MB 2 + +#ifdef USE_LittleFS +#include +fs::LITTLEFSFS * const fsStorage = &LITTLEFS; +#define FORMAT_LITTLEFS_IF_FAILED true +#define STORAGE_UNITS STORAGE_UNITS_BT +#else +#include "SD_MMC.h" +fs::SDMMCFS * const fsStorage = &SD_MMC; +#define STORAGE_UNITS STORAGE_UNITS_MB +#endif + + + + +int readFileToString(char *path, String *s); + +extern bool init_storage(); +extern void listDir(const char * dirname, uint8_t levels); +extern int storageSize(); +extern int storageUsed(); +extern int capacityUnits(); + +#endif \ No newline at end of file diff --git a/src/version.h b/src/version.h deleted file mode 100644 index 4a401498..00000000 --- a/src/version.h +++ /dev/null @@ -1,4 +0,0 @@ -/* Version of upstream code */ - -char baseVersion[] = "4.0"; - diff --git a/storage.cpp b/storage.cpp deleted file mode 100644 index 8b3d0f20..00000000 --- a/storage.cpp +++ /dev/null @@ -1,211 +0,0 @@ -#include "esp_camera.h" -#include "src/jsonlib/jsonlib.h" -#include "storage.h" - -// These are defined in the main .ino file -extern void flashLED(int flashtime); -extern int myRotation; // Rotation -extern int lampVal; // The current Lamp value -extern bool autoLamp; // Automatic lamp mode -extern int xclk; // Camera module clock speed -extern int minFrameTime; // Limits framerate - -/* - * Useful utility when debugging... - */ - -void listDir(fs::FS &fs, const char * dirname, uint8_t levels){ - Serial.printf("Listing SPIFFS directory: %s\r\n", dirname); - - File root = fs.open(dirname); - if(!root){ - Serial.println("- failed to open directory"); - return; - } - if(!root.isDirectory()){ - Serial.println(" - not a directory"); - return; - } - - File file = root.openNextFile(); - while(file){ - if(file.isDirectory()){ - Serial.print(" DIR : "); - Serial.println(file.name()); - if(levels){ - listDir(fs, file.name(), levels -1); - } - } else { - Serial.print(" FILE: "); - Serial.print(file.name()); - Serial.print("\tSIZE: "); - Serial.println(file.size()); - } - file = root.openNextFile(); - } -} - -void dumpPrefs(fs::FS &fs){ - if (fs.exists(PREFERENCES_FILE)) { - // Dump contents for debug - File file = fs.open(PREFERENCES_FILE, FILE_READ); - int countSize = 0; - while (file.available() && countSize <= PREFERENCES_MAX_SIZE) { - Serial.print(char(file.read())); - countSize++; - } - Serial.println(""); - file.close(); - } else { - Serial.printf("%s not found, nothing to dump.\r\n", PREFERENCES_FILE); - } -} - -void loadPrefs(fs::FS &fs){ - if (fs.exists(PREFERENCES_FILE)) { - // read file into a string - String prefs; - Serial.printf("Loading preferences from file %s\r\n", PREFERENCES_FILE); - File file = fs.open(PREFERENCES_FILE, FILE_READ); - if (!file) { - Serial.println("Failed to open preferences file for reading, maybe corrupt, removing"); - removePrefs(SPIFFS); - return; - } - size_t size = file.size(); - if (size > PREFERENCES_MAX_SIZE) { - Serial.println("Preferences file size is too large, maybe corrupt, removing"); - removePrefs(SPIFFS); - return; - } - while (file.available()) { - prefs += char(file.read()); - if (prefs.length() > size) { - // corrupted SPIFFS files can return data beyond their declared size. - Serial.println("Preferences file failed to load properly, appears to be corrupt, removing"); - removePrefs(SPIFFS); - return; - } - } - // get sensor reference - sensor_t * s = esp_camera_sensor_get(); - - // process local settings - if (lampVal >= 0) { - int lampValPref = jsonExtract(prefs, "lamp").toInt(); - if (lampValPref >= 0) lampVal = lampValPref; - } - minFrameTime = jsonExtract(prefs, "min_frame_time").toInt(); - if (jsonExtract(prefs, "autolamp").toInt() == 0) autoLamp = false; else autoLamp = true; - int xclkPref = jsonExtract(prefs, "xclk").toInt(); - if (xclkPref >= 2) xclk = xclkPref; - myRotation = jsonExtract(prefs, "rotate").toInt(); - - // process camera settings - s->set_framesize(s, (framesize_t)jsonExtract(prefs, "framesize").toInt()); - s->set_quality(s, jsonExtract(prefs, "quality").toInt()); - s->set_xclk(s, LEDC_TIMER_0, xclk); - s->set_brightness(s, jsonExtract(prefs, "brightness").toInt()); - s->set_contrast(s, jsonExtract(prefs, "contrast").toInt()); - s->set_saturation(s, jsonExtract(prefs, "saturation").toInt()); - s->set_special_effect(s, jsonExtract(prefs, "special_effect").toInt()); - s->set_wb_mode(s, jsonExtract(prefs, "wb_mode").toInt()); - s->set_whitebal(s, jsonExtract(prefs, "awb").toInt()); - s->set_awb_gain(s, jsonExtract(prefs, "awb_gain").toInt()); - s->set_exposure_ctrl(s, jsonExtract(prefs, "aec").toInt()); - s->set_aec2(s, jsonExtract(prefs, "aec2").toInt()); - s->set_ae_level(s, jsonExtract(prefs, "ae_level").toInt()); - s->set_aec_value(s, jsonExtract(prefs, "aec_value").toInt()); - s->set_gain_ctrl(s, jsonExtract(prefs, "agc").toInt()); - s->set_agc_gain(s, jsonExtract(prefs, "agc_gain").toInt()); - s->set_gainceiling(s, (gainceiling_t)jsonExtract(prefs, "gainceiling").toInt()); - s->set_bpc(s, jsonExtract(prefs, "bpc").toInt()); - s->set_wpc(s, jsonExtract(prefs, "wpc").toInt()); - s->set_raw_gma(s, jsonExtract(prefs, "raw_gma").toInt()); - s->set_lenc(s, jsonExtract(prefs, "lenc").toInt()); - s->set_vflip(s, jsonExtract(prefs, "vflip").toInt()); - s->set_hmirror(s, jsonExtract(prefs, "hmirror").toInt()); - s->set_dcw(s, jsonExtract(prefs, "dcw").toInt()); - s->set_colorbar(s, jsonExtract(prefs, "colorbar").toInt()); - // close the file - file.close(); - dumpPrefs(SPIFFS); - } else { - Serial.printf("Preference file %s not found; using system defaults.\r\n", PREFERENCES_FILE); - } -} - -void savePrefs(fs::FS &fs){ - if (fs.exists(PREFERENCES_FILE)) { - Serial.printf("Updating %s\r\n", PREFERENCES_FILE); - } else { - Serial.printf("Creating %s\r\n", PREFERENCES_FILE); - } - File file = fs.open(PREFERENCES_FILE, FILE_WRITE); - static char json_response[1024]; - sensor_t * s = esp_camera_sensor_get(); - char * p = json_response; - *p++ = '{'; - p+=sprintf(p, "\"lamp\":%i,", lampVal); - p+=sprintf(p, "\"autolamp\":%u,", autoLamp); - p+=sprintf(p, "\"framesize\":%u,", s->status.framesize); - p+=sprintf(p, "\"quality\":%u,", s->status.quality); - p+=sprintf(p, "\"xclk\":%u,", xclk); - p+=sprintf(p, "\"min_frame_time\":%d,", minFrameTime); - p+=sprintf(p, "\"brightness\":%d,", s->status.brightness); - p+=sprintf(p, "\"contrast\":%d,", s->status.contrast); - p+=sprintf(p, "\"saturation\":%d,", s->status.saturation); - p+=sprintf(p, "\"special_effect\":%u,", s->status.special_effect); - p+=sprintf(p, "\"wb_mode\":%u,", s->status.wb_mode); - p+=sprintf(p, "\"awb\":%u,", s->status.awb); - p+=sprintf(p, "\"awb_gain\":%u,", s->status.awb_gain); - p+=sprintf(p, "\"aec\":%u,", s->status.aec); - p+=sprintf(p, "\"aec2\":%u,", s->status.aec2); - p+=sprintf(p, "\"ae_level\":%d,", s->status.ae_level); - p+=sprintf(p, "\"aec_value\":%u,", s->status.aec_value); - p+=sprintf(p, "\"agc\":%u,", s->status.agc); - p+=sprintf(p, "\"agc_gain\":%u,", s->status.agc_gain); - p+=sprintf(p, "\"gainceiling\":%u,", s->status.gainceiling); - p+=sprintf(p, "\"bpc\":%u,", s->status.bpc); - p+=sprintf(p, "\"wpc\":%u,", s->status.wpc); - p+=sprintf(p, "\"raw_gma\":%u,", s->status.raw_gma); - p+=sprintf(p, "\"lenc\":%u,", s->status.lenc); - p+=sprintf(p, "\"vflip\":%u,", s->status.vflip); - p+=sprintf(p, "\"hmirror\":%u,", s->status.hmirror); - p+=sprintf(p, "\"dcw\":%u,", s->status.dcw); - p+=sprintf(p, "\"colorbar\":%u,", s->status.colorbar); - p+=sprintf(p, "\"rotate\":\"%d\"", myRotation); - *p++ = '}'; - *p++ = 0; - file.print(json_response); - file.close(); - dumpPrefs(SPIFFS); -} - -void removePrefs(fs::FS &fs) { - if (fs.exists(PREFERENCES_FILE)) { - Serial.printf("Removing %s\r\n", PREFERENCES_FILE); - if (!fs.remove(PREFERENCES_FILE)) { - Serial.println("Error removing preferences"); - } - } else { - Serial.println("No saved preferences file to remove"); - } -} - -void filesystemStart(){ - Serial.println("Starting internal SPIFFS filesystem"); - while ( !SPIFFS.begin(FORMAT_SPIFFS_IF_FAILED) ) { - // if we sit in this loop something is wrong; - // if no existing spiffs partition exists one should be automagically created. - Serial.println("SPIFFS Mount failed, this can happen on first-run initialisation"); - Serial.println("If it happens repeatedly check if a SPIFFS partition is present for your board?"); - for (int i=0; i<10; i++) { - flashLED(100); // Show SPIFFS failure - delay(100); - } - delay(1000); - Serial.println("Retrying.."); - } - listDir(SPIFFS, "/", 0); -} diff --git a/storage.h b/storage.h deleted file mode 100644 index a67b075f..00000000 --- a/storage.h +++ /dev/null @@ -1,14 +0,0 @@ -#include "FS.h" -#include "SPIFFS.h" - -#define FORMAT_SPIFFS_IF_FAILED true -#define PREFERENCES_MAX_SIZE 500 - -#define PREFERENCES_FILE "/esp32cam-preferences.json" - -extern void dumpPrefs(fs::FS &fs); -extern void loadPrefs(fs::FS &fs); -extern void removePrefs(fs::FS &fs); -extern void savePrefs(fs::FS &fs); - -extern void filesystemStart(); From d152aec40bab38f5a46637fd970ed3ed79b073fc Mon Sep 17 00:00:00 2001 From: abratchik Date: Sun, 4 Dec 2022 09:03:20 +0400 Subject: [PATCH 02/17] refactoring storage and adding doxygen documentation --- API.md | 13 +- Docs/html/_a_p_i_8md.html | 76 + Docs/html/_c_o_n_t_r_i_b_u_t_i_n_g_8md.html | 76 + Docs/html/_r_e_a_d_m_e_8md.html | 76 + Docs/html/annotated.html | 89 + Docs/html/app__cam_8cpp.html | 104 + Docs/html/app__cam_8h.html | 146 + Docs/html/app__cam_8h_source.html | 212 ++ Docs/html/app__component_8cpp.html | 81 + Docs/html/app__component_8h.html | 95 + Docs/html/app__component_8h_source.html | 146 + Docs/html/app__config_8h.html | 153 + Docs/html/app__config_8h_source.html | 150 + Docs/html/app__conn_8cpp.html | 104 + Docs/html/app__conn_8h.html | 202 ++ Docs/html/app__conn_8h_source.html | 245 ++ Docs/html/app__httpd_8cpp.html | 313 ++ Docs/html/app__httpd_8h.html | 407 +++ Docs/html/app__httpd_8h_source.html | 235 ++ Docs/html/bc_s.png | Bin 0 -> 676 bytes Docs/html/bdwn.png | Bin 0 -> 147 bytes Docs/html/camera__pins_8h.html | 82 + Docs/html/camera__pins_8h_source.html | 324 ++ Docs/html/class_c_l_app_cam.html | 698 +++++ Docs/html/class_c_l_app_cam.png | Bin 0 -> 511 bytes Docs/html/class_c_l_app_component.html | 463 +++ Docs/html/class_c_l_app_component.png | Bin 0 -> 870 bytes Docs/html/class_c_l_app_conn.html | 706 +++++ Docs/html/class_c_l_app_conn.png | Bin 0 -> 510 bytes Docs/html/class_c_l_app_httpd.html | 647 ++++ Docs/html/class_c_l_app_httpd.png | Bin 0 -> 515 bytes Docs/html/class_c_l_storage.html | 379 +++ Docs/html/classes.html | 88 + Docs/html/closed.png | Bin 0 -> 132 bytes .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 112 + Docs/html/doc.png | Bin 0 -> 746 bytes Docs/html/doxygen.css | 1841 ++++++++++++ Docs/html/doxygen.svg | 26 + Docs/html/dynsections.js | 121 + Docs/html/files.html | 95 + Docs/html/folderclosed.png | Bin 0 -> 616 bytes Docs/html/folderopen.png | Bin 0 -> 597 bytes Docs/html/functions.html | 221 ++ Docs/html/functions_func.html | 207 ++ Docs/html/functions_vars.html | 85 + Docs/html/globals.html | 151 + Docs/html/globals_defs.html | 88 + Docs/html/globals_enum.html | 76 + Docs/html/globals_eval.html | 77 + Docs/html/globals_func.html | 85 + Docs/html/globals_vars.html | 79 + Docs/html/hierarchy.html | 89 + Docs/html/index.html | 221 ++ Docs/html/jquery.js | 35 + {data/www => Docs/html}/logo.svg | 0 Docs/html/md__a_p_i.html | 184 ++ Docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html | 125 + Docs/html/md__r_e_a_d_m_e.html | 221 ++ Docs/html/menu.js | 127 + Docs/html/menudata.js | 83 + Docs/html/nav_f.png | Bin 0 -> 153 bytes Docs/html/nav_g.png | Bin 0 -> 95 bytes Docs/html/nav_h.png | Bin 0 -> 98 bytes Docs/html/open.png | Bin 0 -> 123 bytes Docs/html/pages.html | 82 + Docs/html/parsebytes_8cpp.html | 136 + Docs/html/parsebytes_8h.html | 137 + Docs/html/parsebytes_8h_source.html | 87 + Docs/html/search/all_0.html | 37 + Docs/html/search/all_0.js | 16 + Docs/html/search/all_1.html | 37 + Docs/html/search/all_1.js | 5 + Docs/html/search/all_10.html | 37 + Docs/html/search/all_10.js | 6 + Docs/html/search/all_11.html | 37 + Docs/html/search/all_11.js | 5 + Docs/html/search/all_2.html | 37 + Docs/html/search/all_2.js | 19 + Docs/html/search/all_3.html | 37 + Docs/html/search/all_3.js | 8 + Docs/html/search/all_4.html | 37 + Docs/html/search/all_4.js | 6 + Docs/html/search/all_5.html | 37 + Docs/html/search/all_5.js | 38 + Docs/html/search/all_6.html | 37 + Docs/html/search/all_6.js | 5 + Docs/html/search/all_7.html | 37 + Docs/html/search/all_7.js | 12 + Docs/html/search/all_8.html | 37 + Docs/html/search/all_8.js | 6 + Docs/html/search/all_9.html | 37 + Docs/html/search/all_9.js | 5 + Docs/html/search/all_a.html | 37 + Docs/html/search/all_a.js | 7 + Docs/html/search/all_b.html | 37 + Docs/html/search/all_b.js | 10 + Docs/html/search/all_c.html | 37 + Docs/html/search/all_c.js | 11 + Docs/html/search/all_d.html | 37 + Docs/html/search/all_d.js | 9 + Docs/html/search/all_e.html | 37 + Docs/html/search/all_e.js | 29 + Docs/html/search/all_f.html | 37 + Docs/html/search/all_f.js | 4 + Docs/html/search/classes_0.html | 37 + Docs/html/search/classes_0.js | 8 + Docs/html/search/classes_1.html | 37 + Docs/html/search/classes_1.js | 5 + Docs/html/search/classes_2.html | 37 + Docs/html/search/classes_2.js | 4 + Docs/html/search/close.svg | 31 + Docs/html/search/defines_0.html | 37 + Docs/html/search/defines_0.js | 4 + Docs/html/search/defines_1.html | 37 + Docs/html/search/defines_1.js | 5 + Docs/html/search/defines_2.html | 37 + Docs/html/search/defines_2.js | 4 + Docs/html/search/defines_3.html | 37 + Docs/html/search/defines_3.js | 5 + Docs/html/search/defines_4.html | 37 + Docs/html/search/defines_4.js | 6 + Docs/html/search/defines_5.html | 37 + Docs/html/search/defines_5.js | 6 + Docs/html/search/defines_6.html | 37 + Docs/html/search/defines_6.js | 4 + Docs/html/search/enums_0.html | 37 + Docs/html/search/enums_0.js | 4 + Docs/html/search/enumvalues_0.html | 37 + Docs/html/search/enumvalues_0.js | 5 + Docs/html/search/files_0.html | 37 + Docs/html/search/files_0.js | 13 + Docs/html/search/files_1.html | 37 + Docs/html/search/files_1.js | 5 + Docs/html/search/files_2.html | 37 + Docs/html/search/files_2.js | 5 + Docs/html/search/files_3.html | 37 + Docs/html/search/files_3.js | 4 + Docs/html/search/files_4.html | 37 + Docs/html/search/files_4.js | 5 + Docs/html/search/functions_0.html | 37 + Docs/html/search/functions_0.js | 9 + Docs/html/search/functions_1.html | 37 + Docs/html/search/functions_1.js | 5 + Docs/html/search/functions_2.html | 37 + Docs/html/search/functions_2.js | 5 + Docs/html/search/functions_3.html | 37 + Docs/html/search/functions_3.js | 37 + Docs/html/search/functions_4.html | 37 + Docs/html/search/functions_4.js | 5 + Docs/html/search/functions_5.html | 37 + Docs/html/search/functions_5.js | 11 + Docs/html/search/functions_6.html | 37 + Docs/html/search/functions_6.js | 5 + Docs/html/search/functions_7.html | 37 + Docs/html/search/functions_7.js | 10 + Docs/html/search/functions_8.html | 37 + Docs/html/search/functions_8.js | 7 + Docs/html/search/functions_9.html | 37 + Docs/html/search/functions_9.js | 8 + Docs/html/search/functions_a.html | 37 + Docs/html/search/functions_a.js | 20 + Docs/html/search/functions_b.html | 37 + Docs/html/search/functions_b.js | 4 + Docs/html/search/functions_c.html | 37 + Docs/html/search/functions_c.js | 4 + Docs/html/search/functions_d.html | 37 + Docs/html/search/functions_d.js | 4 + Docs/html/search/mag_sel.svg | 74 + Docs/html/search/nomatches.html | 13 + Docs/html/search/pages_0.html | 37 + Docs/html/search/pages_0.js | 4 + Docs/html/search/pages_1.html | 37 + Docs/html/search/pages_1.js | 4 + Docs/html/search/pages_2.html | 37 + Docs/html/search/pages_2.js | 4 + Docs/html/search/search.css | 263 ++ Docs/html/search/search.js | 794 +++++ Docs/html/search/search_l.png | Bin 0 -> 567 bytes Docs/html/search/search_m.png | Bin 0 -> 158 bytes Docs/html/search/search_r.png | Bin 0 -> 553 bytes Docs/html/search/searchdata.js | 39 + Docs/html/search/variables_0.html | 37 + Docs/html/search/variables_0.js | 6 + Docs/html/search/variables_1.html | 37 + Docs/html/search/variables_1.js | 6 + Docs/html/search/variables_2.html | 37 + Docs/html/search/variables_2.js | 4 + Docs/html/search/variables_3.html | 37 + Docs/html/search/variables_3.js | 4 + Docs/html/search/variables_4.html | 37 + Docs/html/search/variables_4.js | 4 + Docs/html/search/variables_5.html | 37 + Docs/html/search/variables_5.js | 5 + Docs/html/search/variables_6.html | 37 + Docs/html/search/variables_6.js | 5 + Docs/html/search/variables_7.html | 37 + Docs/html/search/variables_7.js | 4 + Docs/html/splitbar.png | Bin 0 -> 314 bytes Docs/html/storage_8cpp.html | 104 + Docs/html/storage_8h.html | 176 ++ Docs/html/storage_8h_source.html | 146 + Docs/html/struct_static_i_p.html | 168 ++ Docs/html/struct_station.html | 136 + Docs/html/struct_uri_mapping.html | 125 + Docs/html/sync_off.png | Bin 0 -> 853 bytes Docs/html/sync_on.png | Bin 0 -> 845 bytes Docs/html/tab_a.png | Bin 0 -> 142 bytes Docs/html/tab_b.png | Bin 0 -> 169 bytes Docs/html/tab_h.png | Bin 0 -> 177 bytes Docs/html/tab_s.png | Bin 0 -> 184 bytes Docs/html/tabs.css | 1 + Doxyfile | 2658 +++++++++++++++++ README.md | 16 +- data/default_httpd.json | 4 + data/www/{ => css}/stream.css | 0 data/www/{ => css}/style.css | 0 data/www/dump.html | 10 +- data/www/error.html | 11 +- data/www/{ => img}/favicon-16x16.png | Bin data/www/{ => img}/favicon-32x32.png | Bin data/www/{ => img}/favicon.ico | Bin data/www/{ => img}/logo.png | Bin data/www/img/logo.svg | 131 + data/www/index_ov2640.html | 6 +- data/www/index_ov3660.html | 6 +- data/www/index_simple.html | 6 +- data/www/{ => js}/ws.js | 0 data/www/portal.html | 8 +- data/www/setup.html | 8 +- data/www/streamviewer.html | 8 +- esp32-cam-webserver.ino | 31 +- src/app_cam.cpp | 50 +- src/app_cam.h | 24 +- src/app_component.cpp | 18 +- src/app_component.h | 20 +- src/app_conn.cpp | 8 +- src/app_conn.h | 16 +- src/app_httpd.cpp | 128 +- src/app_httpd.h | 25 +- src/storage.cpp | 32 +- src/storage.h | 48 +- 241 files changed, 18966 insertions(+), 174 deletions(-) create mode 100644 Docs/html/_a_p_i_8md.html create mode 100644 Docs/html/_c_o_n_t_r_i_b_u_t_i_n_g_8md.html create mode 100644 Docs/html/_r_e_a_d_m_e_8md.html create mode 100644 Docs/html/annotated.html create mode 100644 Docs/html/app__cam_8cpp.html create mode 100644 Docs/html/app__cam_8h.html create mode 100644 Docs/html/app__cam_8h_source.html create mode 100644 Docs/html/app__component_8cpp.html create mode 100644 Docs/html/app__component_8h.html create mode 100644 Docs/html/app__component_8h_source.html create mode 100644 Docs/html/app__config_8h.html create mode 100644 Docs/html/app__config_8h_source.html create mode 100644 Docs/html/app__conn_8cpp.html create mode 100644 Docs/html/app__conn_8h.html create mode 100644 Docs/html/app__conn_8h_source.html create mode 100644 Docs/html/app__httpd_8cpp.html create mode 100644 Docs/html/app__httpd_8h.html create mode 100644 Docs/html/app__httpd_8h_source.html create mode 100644 Docs/html/bc_s.png create mode 100644 Docs/html/bdwn.png create mode 100644 Docs/html/camera__pins_8h.html create mode 100644 Docs/html/camera__pins_8h_source.html create mode 100644 Docs/html/class_c_l_app_cam.html create mode 100644 Docs/html/class_c_l_app_cam.png create mode 100644 Docs/html/class_c_l_app_component.html create mode 100644 Docs/html/class_c_l_app_component.png create mode 100644 Docs/html/class_c_l_app_conn.html create mode 100644 Docs/html/class_c_l_app_conn.png create mode 100644 Docs/html/class_c_l_app_httpd.html create mode 100644 Docs/html/class_c_l_app_httpd.png create mode 100644 Docs/html/class_c_l_storage.html create mode 100644 Docs/html/classes.html create mode 100644 Docs/html/closed.png create mode 100644 Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 Docs/html/doc.png create mode 100644 Docs/html/doxygen.css create mode 100644 Docs/html/doxygen.svg create mode 100644 Docs/html/dynsections.js create mode 100644 Docs/html/files.html create mode 100644 Docs/html/folderclosed.png create mode 100644 Docs/html/folderopen.png create mode 100644 Docs/html/functions.html create mode 100644 Docs/html/functions_func.html create mode 100644 Docs/html/functions_vars.html create mode 100644 Docs/html/globals.html create mode 100644 Docs/html/globals_defs.html create mode 100644 Docs/html/globals_enum.html create mode 100644 Docs/html/globals_eval.html create mode 100644 Docs/html/globals_func.html create mode 100644 Docs/html/globals_vars.html create mode 100644 Docs/html/hierarchy.html create mode 100644 Docs/html/index.html create mode 100644 Docs/html/jquery.js rename {data/www => Docs/html}/logo.svg (100%) create mode 100644 Docs/html/md__a_p_i.html create mode 100644 Docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html create mode 100644 Docs/html/md__r_e_a_d_m_e.html create mode 100644 Docs/html/menu.js create mode 100644 Docs/html/menudata.js create mode 100644 Docs/html/nav_f.png create mode 100644 Docs/html/nav_g.png create mode 100644 Docs/html/nav_h.png create mode 100644 Docs/html/open.png create mode 100644 Docs/html/pages.html create mode 100644 Docs/html/parsebytes_8cpp.html create mode 100644 Docs/html/parsebytes_8h.html create mode 100644 Docs/html/parsebytes_8h_source.html create mode 100644 Docs/html/search/all_0.html create mode 100644 Docs/html/search/all_0.js create mode 100644 Docs/html/search/all_1.html create mode 100644 Docs/html/search/all_1.js create mode 100644 Docs/html/search/all_10.html create mode 100644 Docs/html/search/all_10.js create mode 100644 Docs/html/search/all_11.html create mode 100644 Docs/html/search/all_11.js create mode 100644 Docs/html/search/all_2.html create mode 100644 Docs/html/search/all_2.js create mode 100644 Docs/html/search/all_3.html create mode 100644 Docs/html/search/all_3.js create mode 100644 Docs/html/search/all_4.html create mode 100644 Docs/html/search/all_4.js create mode 100644 Docs/html/search/all_5.html create mode 100644 Docs/html/search/all_5.js create mode 100644 Docs/html/search/all_6.html create mode 100644 Docs/html/search/all_6.js create mode 100644 Docs/html/search/all_7.html create mode 100644 Docs/html/search/all_7.js create mode 100644 Docs/html/search/all_8.html create mode 100644 Docs/html/search/all_8.js create mode 100644 Docs/html/search/all_9.html create mode 100644 Docs/html/search/all_9.js create mode 100644 Docs/html/search/all_a.html create mode 100644 Docs/html/search/all_a.js create mode 100644 Docs/html/search/all_b.html create mode 100644 Docs/html/search/all_b.js create mode 100644 Docs/html/search/all_c.html create mode 100644 Docs/html/search/all_c.js create mode 100644 Docs/html/search/all_d.html create mode 100644 Docs/html/search/all_d.js create mode 100644 Docs/html/search/all_e.html create mode 100644 Docs/html/search/all_e.js create mode 100644 Docs/html/search/all_f.html create mode 100644 Docs/html/search/all_f.js create mode 100644 Docs/html/search/classes_0.html create mode 100644 Docs/html/search/classes_0.js create mode 100644 Docs/html/search/classes_1.html create mode 100644 Docs/html/search/classes_1.js create mode 100644 Docs/html/search/classes_2.html create mode 100644 Docs/html/search/classes_2.js create mode 100644 Docs/html/search/close.svg create mode 100644 Docs/html/search/defines_0.html create mode 100644 Docs/html/search/defines_0.js create mode 100644 Docs/html/search/defines_1.html create mode 100644 Docs/html/search/defines_1.js create mode 100644 Docs/html/search/defines_2.html create mode 100644 Docs/html/search/defines_2.js create mode 100644 Docs/html/search/defines_3.html create mode 100644 Docs/html/search/defines_3.js create mode 100644 Docs/html/search/defines_4.html create mode 100644 Docs/html/search/defines_4.js create mode 100644 Docs/html/search/defines_5.html create mode 100644 Docs/html/search/defines_5.js create mode 100644 Docs/html/search/defines_6.html create mode 100644 Docs/html/search/defines_6.js create mode 100644 Docs/html/search/enums_0.html create mode 100644 Docs/html/search/enums_0.js create mode 100644 Docs/html/search/enumvalues_0.html create mode 100644 Docs/html/search/enumvalues_0.js create mode 100644 Docs/html/search/files_0.html create mode 100644 Docs/html/search/files_0.js create mode 100644 Docs/html/search/files_1.html create mode 100644 Docs/html/search/files_1.js create mode 100644 Docs/html/search/files_2.html create mode 100644 Docs/html/search/files_2.js create mode 100644 Docs/html/search/files_3.html create mode 100644 Docs/html/search/files_3.js create mode 100644 Docs/html/search/files_4.html create mode 100644 Docs/html/search/files_4.js create mode 100644 Docs/html/search/functions_0.html create mode 100644 Docs/html/search/functions_0.js create mode 100644 Docs/html/search/functions_1.html create mode 100644 Docs/html/search/functions_1.js create mode 100644 Docs/html/search/functions_2.html create mode 100644 Docs/html/search/functions_2.js create mode 100644 Docs/html/search/functions_3.html create mode 100644 Docs/html/search/functions_3.js create mode 100644 Docs/html/search/functions_4.html create mode 100644 Docs/html/search/functions_4.js create mode 100644 Docs/html/search/functions_5.html create mode 100644 Docs/html/search/functions_5.js create mode 100644 Docs/html/search/functions_6.html create mode 100644 Docs/html/search/functions_6.js create mode 100644 Docs/html/search/functions_7.html create mode 100644 Docs/html/search/functions_7.js create mode 100644 Docs/html/search/functions_8.html create mode 100644 Docs/html/search/functions_8.js create mode 100644 Docs/html/search/functions_9.html create mode 100644 Docs/html/search/functions_9.js create mode 100644 Docs/html/search/functions_a.html create mode 100644 Docs/html/search/functions_a.js create mode 100644 Docs/html/search/functions_b.html create mode 100644 Docs/html/search/functions_b.js create mode 100644 Docs/html/search/functions_c.html create mode 100644 Docs/html/search/functions_c.js create mode 100644 Docs/html/search/functions_d.html create mode 100644 Docs/html/search/functions_d.js create mode 100644 Docs/html/search/mag_sel.svg create mode 100644 Docs/html/search/nomatches.html create mode 100644 Docs/html/search/pages_0.html create mode 100644 Docs/html/search/pages_0.js create mode 100644 Docs/html/search/pages_1.html create mode 100644 Docs/html/search/pages_1.js create mode 100644 Docs/html/search/pages_2.html create mode 100644 Docs/html/search/pages_2.js create mode 100644 Docs/html/search/search.css create mode 100644 Docs/html/search/search.js create mode 100644 Docs/html/search/search_l.png create mode 100644 Docs/html/search/search_m.png create mode 100644 Docs/html/search/search_r.png create mode 100644 Docs/html/search/searchdata.js create mode 100644 Docs/html/search/variables_0.html create mode 100644 Docs/html/search/variables_0.js create mode 100644 Docs/html/search/variables_1.html create mode 100644 Docs/html/search/variables_1.js create mode 100644 Docs/html/search/variables_2.html create mode 100644 Docs/html/search/variables_2.js create mode 100644 Docs/html/search/variables_3.html create mode 100644 Docs/html/search/variables_3.js create mode 100644 Docs/html/search/variables_4.html create mode 100644 Docs/html/search/variables_4.js create mode 100644 Docs/html/search/variables_5.html create mode 100644 Docs/html/search/variables_5.js create mode 100644 Docs/html/search/variables_6.html create mode 100644 Docs/html/search/variables_6.js create mode 100644 Docs/html/search/variables_7.html create mode 100644 Docs/html/search/variables_7.js create mode 100644 Docs/html/splitbar.png create mode 100644 Docs/html/storage_8cpp.html create mode 100644 Docs/html/storage_8h.html create mode 100644 Docs/html/storage_8h_source.html create mode 100644 Docs/html/struct_static_i_p.html create mode 100644 Docs/html/struct_station.html create mode 100644 Docs/html/struct_uri_mapping.html create mode 100644 Docs/html/sync_off.png create mode 100644 Docs/html/sync_on.png create mode 100644 Docs/html/tab_a.png create mode 100644 Docs/html/tab_b.png create mode 100644 Docs/html/tab_h.png create mode 100644 Docs/html/tab_s.png create mode 100644 Docs/html/tabs.css create mode 100644 Doxyfile rename data/www/{ => css}/stream.css (100%) rename data/www/{ => css}/style.css (100%) rename data/www/{ => img}/favicon-16x16.png (100%) rename data/www/{ => img}/favicon-32x32.png (100%) rename data/www/{ => img}/favicon.ico (100%) rename data/www/{ => img}/logo.png (100%) create mode 100644 data/www/img/logo.svg rename data/www/{ => js}/ws.js (100%) diff --git a/API.md b/API.md index 6fa1db7c..148afadb 100644 --- a/API.md +++ b/API.md @@ -76,11 +76,16 @@ Only for 3Mp+ camera modules: #### Commands These are commands; they can be sent by calling the `/control` URI with them as -the `` *(a `` must also be supplied, but can be any value and is ignored)*. +the `` parameter. ``` -save_prefs - Saves preferences file -clear_prefs - Deletes the preferences file -reboot - Reboots the board +* save_prefs - Saves preferences + `val=cam` or not specified will save camera preferences + `val=conn` will save network preferences +* clear_prefs - Deletes camera the preferences + `val=cam` or not specified will reset camera preferences + `val=conn` will reset network preferences. Attention! after this the server will boot as access point after restart, and all + connection settings will be lost. +* reboot - Reboots the board ``` ## Examples diff --git a/Docs/html/_a_p_i_8md.html b/Docs/html/_a_p_i_8md.html new file mode 100644 index 00000000..3d6d7600 --- /dev/null +++ b/Docs/html/_a_p_i_8md.html @@ -0,0 +1,76 @@ + + + + + + + +ESP32 WebCam Server: API.md File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
API.md File Reference
+
+
+
+ + + + diff --git a/Docs/html/_c_o_n_t_r_i_b_u_t_i_n_g_8md.html b/Docs/html/_c_o_n_t_r_i_b_u_t_i_n_g_8md.html new file mode 100644 index 00000000..966d40d9 --- /dev/null +++ b/Docs/html/_c_o_n_t_r_i_b_u_t_i_n_g_8md.html @@ -0,0 +1,76 @@ + + + + + + + +ESP32 WebCam Server: CONTRIBUTING.md File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
CONTRIBUTING.md File Reference
+
+
+
+ + + + diff --git a/Docs/html/_r_e_a_d_m_e_8md.html b/Docs/html/_r_e_a_d_m_e_8md.html new file mode 100644 index 00000000..a8064b43 --- /dev/null +++ b/Docs/html/_r_e_a_d_m_e_8md.html @@ -0,0 +1,76 @@ + + + + + + + +ESP32 WebCam Server: README.md File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
README.md File Reference
+
+
+
+ + + + diff --git a/Docs/html/annotated.html b/Docs/html/annotated.html new file mode 100644 index 00000000..a9e68fcf --- /dev/null +++ b/Docs/html/annotated.html @@ -0,0 +1,89 @@ + + + + + + + +ESP32 WebCam Server: Data Structures + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + + + + + + + +
 CCLAppCamCamera Manager Manages all interactions with camera
 CCLAppComponentAbstract root class for the appication components
 CCLAppConnConnection Manager This class manages everything related to connectivity of the application: WiFi, OTA etc
 CCLAppHttpdWebServer Manager Class for handling web server requests. The web pages are assumed to be stored in the file system (can be SD card or LittleFS).
+
 CCLStorageStorage Manager Encapsulates access to the file system, which can be either external (SD card) or internal (LittleFS)
 CStaticIP
 CStation
 CUriMappingStatic URI to path mapping
+
+
+ + + + diff --git a/Docs/html/app__cam_8cpp.html b/Docs/html/app__cam_8cpp.html new file mode 100644 index 00000000..10401f24 --- /dev/null +++ b/Docs/html/app__cam_8cpp.html @@ -0,0 +1,104 @@ + + + + + + + +ESP32 WebCam Server: src/app_cam.cpp File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_cam.cpp File Reference
+
+
+
#include "app_cam.h"
+
+ + + +

+Variables

CLAppCam AppCam
 
+

Variable Documentation

+ +

◆ AppCam

+ +
+
+ + + + +
CLAppCam AppCam
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__cam_8h.html b/Docs/html/app__cam_8h.html new file mode 100644 index 00000000..be3627aa --- /dev/null +++ b/Docs/html/app__cam_8h.html @@ -0,0 +1,146 @@ + + + + + + + +ESP32 WebCam Server: src/app_cam.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_cam.h File Reference
+
+
+
#include <esp_camera.h>
+#include <esp_int_wdt.h>
+#include <esp_task_wdt.h>
+#include "app_component.h"
+#include "camera_pins.h"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  CLAppCam
 Camera Manager Manages all interactions with camera. More...
 
+ + + +

+Macros

#define LAMP_DEFAULT   80
 
+ + + +

+Variables

CLAppCam AppCam
 
+

Macro Definition Documentation

+ +

◆ LAMP_DEFAULT

+ +
+
+ + + + +
#define LAMP_DEFAULT   80
+
+ +
+
+

Variable Documentation

+ +

◆ AppCam

+ +
+
+ + + + + +
+ + + + +
CLAppCam AppCam
+
+extern
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__cam_8h_source.html b/Docs/html/app__cam_8h_source.html new file mode 100644 index 00000000..63be855e --- /dev/null +++ b/Docs/html/app__cam_8h_source.html @@ -0,0 +1,212 @@ + + + + + + + +ESP32 WebCam Server: src/app_cam.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_cam.h
+
+
+Go to the documentation of this file.
1#ifndef app_cam_h
+
2#define app_cam_h
+
3
+
4#include <esp_camera.h>
+
5#include <esp_int_wdt.h>
+
6#include <esp_task_wdt.h>
+
7
+
8#include "app_component.h"
+
9#include "camera_pins.h"
+
10
+
11#define LAMP_DEFAULT 80 // initial lamp value, range 0-100
+
12
+
13#if defined(LED_DISABLE)
+
14 #undef LED_PIN // undefining this disables the notification LED
+
15#endif
+
16
+
17
+
22class CLAppCam : public CLAppComponent {
+
23 public:
+
24
+
25 CLAppCam();
+
26
+
27 int start();
+
28 int stop();
+
29 int loadPrefs();
+
30 int savePrefs();
+
31
+
32 void setLamp(int newVal = LAMP_DEFAULT);
+
33 int getLamp() {return lampVal;};
+
34
+
35 void setAutoLamp(bool val) {autoLamp = val;};
+
36 bool isAutoLamp() { return autoLamp;};
+
37
+
38 int getSensorPID() {return (sensor?sensor->id.PID:0);};
+
39 sensor_t * getSensor() {return sensor;};
+
40 String getErr() {return critERR;};
+
41
+
42 int getFrameRate() {return frameRate;};
+
43 void setFrameRate(int newFrameRate) {frameRate = newFrameRate;};
+
44
+
45 void setXclk(int val) {xclk = val;};
+
46 int getXclk() {return xclk;};
+
47
+
48 void setRotation(int val) {myRotation = val;};
+
49 int getRotation() {return myRotation;};
+
50
+
51 int snapToBufer();
+
52 uint8_t * getBuffer() {return fb->buf;};
+
53 size_t getBufferSize() {return fb->len;};
+
54 bool isJPEGinBuffer() {return fb->format == PIXFORMAT_JPEG;};
+
55 void releaseBuffer();
+
56
+
57 private:
+
58 // Camera config structure
+
59 camera_config_t config;
+
60
+
61 // Camera module bus communications frequency.
+
62 // Originally: config.xclk_freq_mhz = 20000000, but this lead to visual artifacts on many modules.
+
63 // See https://github.com/espressif/esp32-camera/issues/150#issuecomment-726473652 et al.
+
64 // Initial setting is configured in /default_prefs.json
+
65 int xclk = 8;
+
66
+
67 // frame rate in FPS
+
68 // default can be set in /default_prefs.json
+
69 int frameRate = 25;
+
70
+
71 // Flash LED lamp parameters.
+
72 bool autoLamp = false; // Automatic lamp (auto on while camera running)
+
73
+
74 // Illumination LAMP and status LED
+
75 #if defined(LAMP_DISABLE)
+
76 int lampVal = -1; // lamp is disabled in config
+
77 #elif defined(LAMP_PIN)
+
78 int lampVal = 0;
+
79 #else
+
80 int lampVal = -1; // no lamp pin assigned
+
81 #endif
+
82
+
83 int lampChannel = 7; // a free PWM channel (some channels used by camera)
+
84 const int pwmfreq = 50000; // 50K pwm frequency
+
85 const int pwmresolution = 9; // duty cycle bit range
+
86 const int pwmMax = pow(2,pwmresolution)-1;
+
87
+
88 // Critical error string; if set during init (camera hardware failure) it
+
89 // will be returned for stream and still image requests
+
90 String critERR = "";
+
91
+
92 // initial rotation
+
93 // default can be set in /default_prefs.json
+
94 int myRotation = 0;
+
95
+
96 // camera buffer pointer
+
97 camera_fb_t * fb = NULL;
+
98
+
99 // camera sensor
+
100 sensor_t * sensor;
+
101
+
102
+
103};
+
104
+
105extern CLAppCam AppCam;
+
106
+
107#endif
+
CLAppCam AppCam
Definition: app_cam.cpp:233
+
#define LAMP_DEFAULT
Definition: app_cam.h:11
+ + +
Camera Manager Manages all interactions with camera.
Definition: app_cam.h:22
+
int savePrefs()
Definition: app_cam.cpp:157
+
bool isJPEGinBuffer()
Definition: app_cam.h:54
+
int loadPrefs()
Definition: app_cam.cpp:98
+
void setRotation(int val)
Definition: app_cam.h:48
+
CLAppCam()
Definition: app_cam.cpp:3
+
void setFrameRate(int newFrameRate)
Definition: app_cam.h:43
+
int getRotation()
Definition: app_cam.h:49
+
int getFrameRate()
Definition: app_cam.h:42
+
int getLamp()
Definition: app_cam.h:33
+
int snapToBufer()
Definition: app_cam.cpp:218
+
void setLamp(int newVal=LAMP_DEFAULT)
Definition: app_cam.cpp:85
+
int getXclk()
Definition: app_cam.h:46
+
int stop()
Definition: app_cam.cpp:78
+
String getErr()
Definition: app_cam.h:40
+
void setXclk(int val)
Definition: app_cam.h:45
+
size_t getBufferSize()
Definition: app_cam.h:53
+
void setAutoLamp(bool val)
Definition: app_cam.h:35
+
bool isAutoLamp()
Definition: app_cam.h:36
+
uint8_t * getBuffer()
Definition: app_cam.h:52
+
void releaseBuffer()
Definition: app_cam.cpp:224
+
int getSensorPID()
Definition: app_cam.h:38
+
int start()
Definition: app_cam.cpp:8
+
sensor_t * getSensor()
Definition: app_cam.h:39
+
Abstract root class for the appication components.
Definition: app_component.h:14
+
+ + + + diff --git a/Docs/html/app__component_8cpp.html b/Docs/html/app__component_8cpp.html new file mode 100644 index 00000000..2ab1f9fd --- /dev/null +++ b/Docs/html/app__component_8cpp.html @@ -0,0 +1,81 @@ + + + + + + + +ESP32 WebCam Server: src/app_component.cpp File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_component.cpp File Reference
+
+
+
#include "app_component.h"
+
+ + + + diff --git a/Docs/html/app__component_8h.html b/Docs/html/app__component_8h.html new file mode 100644 index 00000000..6085e4ce --- /dev/null +++ b/Docs/html/app__component_8h.html @@ -0,0 +1,95 @@ + + + + + + + +ESP32 WebCam Server: src/app_component.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_component.h File Reference
+
+
+
#include <json_generator.h>
+#include <json_parser.h>
+#include "app_config.h"
+#include "storage.h"
+
+

Go to the source code of this file.

+ + + + + +

+Data Structures

class  CLAppComponent
 Abstract root class for the appication components. More...
 
+
+ + + + diff --git a/Docs/html/app__component_8h_source.html b/Docs/html/app__component_8h_source.html new file mode 100644 index 00000000..86cae78e --- /dev/null +++ b/Docs/html/app__component_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP32 WebCam Server: src/app_component.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_component.h
+
+
+Go to the documentation of this file.
1#ifndef app_component_h
+
2#define app_component_h
+
3
+
4#include <json_generator.h>
+
5#include <json_parser.h>
+
6
+
7#include "app_config.h"
+
8#include "storage.h"
+
9
+ +
15 public:
+
16 // Sketch Info
+
17
+
18 int start(){return OS_SUCCESS;};
+
19 int loadPrefs(){return OS_SUCCESS;};
+
20 int savePrefs(){return OS_SUCCESS;};
+
21
+
22 void dumpPrefs();
+
23 int removePrefs();
+
24
+
25 char * getPrefsFileName(bool forsave = false);
+
26
+
27 void setDebugMode(bool val) {debug_mode = val;};
+
28 bool isDebugMode(){return debug_mode;};
+
29
+
30 int getLastErr() {return last_err;};
+
31
+
32 protected:
+
33 void setTag(const char *t) {tag = t;};
+
34
+
35 void setErr(int err_code) {last_err = err_code;};
+
36
+
41 int readJsonIntVal(jparse_ctx_t *jctx, char* token);
+
42
+
43 int parsePrefs(jparse_ctx_t *jctx);
+
44
+
45
+
46 private:
+
47 // prefix for forming preference file name of this class
+
48 const char * tag;
+
49
+
50 bool debug_mode = false;
+
51
+
52 // error code of the last error
+
53 int last_err = 0;
+
54
+
55 char prefs[20] = "prefs.json";
+
56};
+
57
+
58#endif
+ +
Abstract root class for the appication components.
Definition: app_component.h:14
+
int getLastErr()
Definition: app_component.h:30
+
int loadPrefs()
Definition: app_component.h:19
+
int savePrefs()
Definition: app_component.h:20
+
bool isDebugMode()
Definition: app_component.h:28
+
void setTag(const char *t)
Definition: app_component.h:33
+
int parsePrefs(jparse_ctx_t *jctx)
Definition: app_component.cpp:50
+
int start()
Definition: app_component.h:18
+
void setErr(int err_code)
Definition: app_component.h:35
+
void setDebugMode(bool val)
Definition: app_component.h:27
+
int readJsonIntVal(jparse_ctx_t *jctx, char *token)
reads the Int value from JSON context by token.
Definition: app_component.cpp:28
+
void dumpPrefs()
Definition: app_component.cpp:18
+
char * getPrefsFileName(bool forsave=false)
Definition: app_component.cpp:3
+
int removePrefs()
Definition: app_component.cpp:36
+ +
+ + + + diff --git a/Docs/html/app__config_8h.html b/Docs/html/app__config_8h.html new file mode 100644 index 00000000..552ca2ce --- /dev/null +++ b/Docs/html/app__config_8h.html @@ -0,0 +1,153 @@ + + + + + + + +ESP32 WebCam Server: src/app_config.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_config.h File Reference
+
+
+ +

Go to the source code of this file.

+ + + + + + + + + + +

+Macros

#define CAM_NAME   "ESP32 CAM Webserver"
 
#define BASE_VERSION   "5.0"
 
#define WIFI_WATCHDOG   15000
 
#define CAMERA_MODEL_AI_THINKER
 
+

Macro Definition Documentation

+ +

◆ BASE_VERSION

+ +
+
+ + + + +
#define BASE_VERSION   "5.0"
+
+ +
+
+ +

◆ CAM_NAME

+ +
+
+ + + + +
#define CAM_NAME   "ESP32 CAM Webserver"
+
+ +
+
+ +

◆ CAMERA_MODEL_AI_THINKER

+ +
+
+ + + + +
#define CAMERA_MODEL_AI_THINKER
+
+ +
+
+ +

◆ WIFI_WATCHDOG

+ +
+
+ + + + +
#define WIFI_WATCHDOG   15000
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__config_8h_source.html b/Docs/html/app__config_8h_source.html new file mode 100644 index 00000000..80a73c65 --- /dev/null +++ b/Docs/html/app__config_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +ESP32 WebCam Server: src/app_config.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_config.h
+
+
+Go to the documentation of this file.
1#ifndef app_config_h
+
2#define app_config_h
+
3
+
4
+
5/* Give the camera a name for the web interface */
+
6#define CAM_NAME "ESP32 CAM Webserver"
+
7
+
8/* Base application version */
+
9#define BASE_VERSION "5.0"
+
10
+
11
+
12/* Extended WiFi Settings */
+
13
+
14/*
+
15 * Wifi Watchdog defines how long we spend waiting for a connection before retrying,
+
16 * and how often we check to see if we are still connected, milliseconds
+
17 * You may wish to increase this if your WiFi is slow at conencting.
+
18 */
+
19#define WIFI_WATCHDOG 15000
+
20
+
21/*
+
22 * Over The Air firmware updates can be disabled by uncommenting the folowing line
+
23 * When enabled the device will advertise itself using the MDNS_NAME defined above
+
24 */
+
25// #define NO_OTA
+
26
+
27/*
+
28 * Additional Features
+
29 *
+
30 */
+
31
+
32
+
33
+
34// Uncomment to disable the notification LED on the module
+
35// #define LED_DISABLE
+
36
+
37// Uncomment to disable the illumination lamp features
+
38// #define LAMP_DISABLE
+
39
+
40// Uncomment this line to use LittleFS instead of SD.
+
41// NOTE!
+
42// LittleFS is still experimental, not recommended. The 'official' library installed from the Library Manager
+
43// seems to be broken, but fixed in this PR: https://github.com/lorol/LITTLEFS/pull/56
+
44// To install it, please navigate to you /libraries sub-folder of your sketch location and then execute
+
45// git clone https://github.com/Michael2MacDonald/LITTLEFS.
+
46// #define USE_LittleFS
+
47
+
48// Define the startup lamp power setting (as a percentage, defaults to 0%)
+
49// Saved user settings will override this
+
50// #define LAMP_DEFAULT 0
+
51
+
52/*
+
53 * Camera Hardware Selectiom
+
54 *
+
55 * You must uncomment one, and only one, of the lines below to select your board model.
+
56 * Remember to also select the board in the Boards Manager
+
57 * This is not optional
+
58 */
+
59#define CAMERA_MODEL_AI_THINKER // default
+
60// #define CAMERA_MODEL_WROVER_KIT
+
61// #define CAMERA_MODEL_ESP_EYE
+
62// #define CAMERA_MODEL_M5STACK_PSRAM
+
63// #define CAMERA_MODEL_M5STACK_V2_PSRAM
+
64// #define CAMERA_MODEL_M5STACK_WIDE
+
65// #define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM
+
66// #define CAMERA_MODEL_TTGO_T_JOURNAL
+
67// #define CAMERA_MODEL_ARDUCAM_ESP32S_UNO
+
68
+
69
+
70#endif
+
+ + + + diff --git a/Docs/html/app__conn_8cpp.html b/Docs/html/app__conn_8cpp.html new file mode 100644 index 00000000..7bf94a5c --- /dev/null +++ b/Docs/html/app__conn_8cpp.html @@ -0,0 +1,104 @@ + + + + + + + +ESP32 WebCam Server: src/app_conn.cpp File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_conn.cpp File Reference
+
+
+
#include "app_conn.h"
+
+ + + +

+Variables

CLAppConn AppConn
 
+

Variable Documentation

+ +

◆ AppConn

+ +
+
+ + + + +
CLAppConn AppConn
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__conn_8h.html b/Docs/html/app__conn_8h.html new file mode 100644 index 00000000..842324d5 --- /dev/null +++ b/Docs/html/app__conn_8h.html @@ -0,0 +1,202 @@ + + + + + + + +ESP32 WebCam Server: src/app_conn.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_conn.h File Reference
+
+
+
#include <ArduinoOTA.h>
+#include <WiFi.h>
+#include <WiFiUdp.h>
+#include <DNSServer.h>
+#include <ESPmDNS.h>
+#include <time.h>
+#include "parsebytes.h"
+#include "app_component.h"
+#include "app_cam.h"
+
+

Go to the source code of this file.

+ + + + + + + + + +

+Data Structures

struct  Station
 
struct  StaticIP
 
class  CLAppConn
 Connection Manager This class manages everything related to connectivity of the application: WiFi, OTA etc. More...
 
+ + + + + + + + + +

+Macros

#define MAX_KNOWN_STATIONS   5
 
#define NTPSERVER   "pool.ntp.org"
 
#define NTP_GMT_OFFSET   14400
 
#define NTP_DST_OFFSET   0
 
+ + + +

+Variables

CLAppConn AppConn
 
+

Macro Definition Documentation

+ +

◆ MAX_KNOWN_STATIONS

+ +
+
+ + + + +
#define MAX_KNOWN_STATIONS   5
+
+ +
+
+ +

◆ NTP_DST_OFFSET

+ +
+
+ + + + +
#define NTP_DST_OFFSET   0
+
+ +
+
+ +

◆ NTP_GMT_OFFSET

+ +
+
+ + + + +
#define NTP_GMT_OFFSET   14400
+
+ +
+
+ +

◆ NTPSERVER

+ +
+
+ + + + +
#define NTPSERVER   "pool.ntp.org"
+
+ +
+
+

Variable Documentation

+ +

◆ AppConn

+ +
+
+ + + + + +
+ + + + +
CLAppConn AppConn
+
+extern
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__conn_8h_source.html b/Docs/html/app__conn_8h_source.html new file mode 100644 index 00000000..fc7d394e --- /dev/null +++ b/Docs/html/app__conn_8h_source.html @@ -0,0 +1,245 @@ + + + + + + + +ESP32 WebCam Server: src/app_conn.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_conn.h
+
+
+Go to the documentation of this file.
1#ifndef app_conn_h
+
2#define app_conn_h
+
3
+
4#include <ArduinoOTA.h>
+
5#include <WiFi.h>
+
6#include <WiFiUdp.h>
+
7#include <DNSServer.h>
+
8#include <ESPmDNS.h>
+
9#include <time.h>
+
10
+
11#include "parsebytes.h"
+
12#include "app_component.h"
+
13#include "app_cam.h"
+
14
+
15#define MAX_KNOWN_STATIONS 5
+
16
+
17/* NTP
+
18 * Uncomment the following to enable the on-board clock
+
19 * Pick a nearby pool server from: https://www.ntppool.org/zone/@
+
20 * Set the GMT offset to match your timezone IN SECONDS;
+
21 * see https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
+
22 * 1hr = 3600 seconds; do the math ;-)
+
23 * Default is CET (Central European Time), eg GMT + 1hr
+
24 * The DST offset is usually 1 hour (again, in seconds) if used in your country.
+
25 */
+
26#define NTPSERVER "pool.ntp.org"
+
27#define NTP_GMT_OFFSET 14400
+
28#define NTP_DST_OFFSET 0
+
29
+
30
+
31struct Station { char ssid[64]; char password[64]; bool dhcp;};
+
32
+
33struct StaticIP { IPAddress *ip; IPAddress *netmask; IPAddress *gateway; IPAddress *dns1; IPAddress *dns2; };
+
34
+
40class CLAppConn : public CLAppComponent {
+
41 public:
+
42 CLAppConn();
+
43
+
44 int loadPrefs();
+
45 int savePrefs();
+
46 int start();
+
47 bool stop() {return WiFi.disconnect();};
+
48
+
49 void enableOTA(bool enable = true);
+
50 void handleOTA() {if(otaEnabled) ArduinoOTA.handle();};
+
51
+
52 void configMDNS();
+
53 void handleDNSRequest(){if (captivePortal) dnsServer.processNextRequest();};
+
54
+
55 void configNTP();
+
56
+
57 char * getNTPServer() { return ntpServer;};
+
58 long getGmtOffset_sec() {return gmtOffset_sec;};
+
59 int getDaylightOffset_sec() {return daylightOffset_sec;};
+
60
+
61 bool isOTAEnabled() {return otaEnabled;};
+
62
+
63 wl_status_t wifiStatus() {return (accesspoint?ap_status:WiFi.status());};
+
64
+
65 char * getHTTPUrl(){ return httpURL;};
+
66 char * getStreamUrl(){ return streamURL;};
+
67 int getPort() {return httpPort;};
+
68
+
69 char * getApName() {return apName;};
+
70
+
71 bool isAccessPoint() {return accesspoint;};
+
72 bool isCaptivePortal() {return captivePortal;};
+
73
+
74 char * getLocalTimeStr();
+
75 char * getUpTimeStr();
+
76 void printLocalTime(bool extraData=false);
+
77
+
78 private:
+
79 void calcURLs();
+
80
+
81 // Known networks structure. Max number of known stations limited for memory considerations
+
82 Station *stationList[MAX_KNOWN_STATIONS];
+
83 int stationCount = 0;
+
84
+
85 // Static IP structure
+
86 StaticIP staticIP;
+
87
+
88 char mdnsName[20];
+
89
+
90 bool accesspoint = false;
+
91 char apName[20];
+
92 char apPass[20];
+
93 int ap_channel=1;
+
94 StaticIP apIP;
+
95 bool ap_dhcp=true;
+
96 wl_status_t ap_status = WL_DISCONNECTED;
+
97
+
98 // DNS server
+
99 const byte DNS_PORT = 53;
+
100 DNSServer dnsServer;
+
101 bool captivePortal = false;
+
102
+
103 // HOST_NAME
+
104 char hostName[64]="";
+
105
+
106 // The app and stream URLs (initialized during WiFi setup)
+
107 char httpURL[64];
+
108 char streamURL[64];
+
109
+
110 // HTTP Port. Can be overriden during IP setup
+
111 int httpPort = 80;
+
112
+
113 // OTA parameters
+
114 bool otaEnabled = false;
+
115 char otaPassword[20] = "";
+
116
+
117 // NTP parameters
+
118 char ntpServer[20] = NTPSERVER;
+
119 long gmtOffset_sec = NTP_GMT_OFFSET;
+
120 int daylightOffset_sec = NTP_DST_OFFSET;
+
121
+
122};
+
123
+
124extern CLAppConn AppConn;
+
125
+
126#endif
+ + +
#define NTP_GMT_OFFSET
Definition: app_conn.h:27
+
#define NTP_DST_OFFSET
Definition: app_conn.h:28
+
CLAppConn AppConn
Definition: app_conn.cpp:385
+
#define NTPSERVER
Definition: app_conn.h:26
+
#define MAX_KNOWN_STATIONS
Definition: app_conn.h:15
+
Abstract root class for the appication components.
Definition: app_component.h:14
+
Connection Manager This class manages everything related to connectivity of the application: WiFi,...
Definition: app_conn.h:40
+
char * getUpTimeStr()
Definition: app_conn.cpp:374
+
char * getNTPServer()
Definition: app_conn.h:57
+
void configNTP()
Definition: app_conn.cpp:352
+
void handleOTA()
Definition: app_conn.h:50
+
char * getApName()
Definition: app_conn.h:69
+
char * getStreamUrl()
Definition: app_conn.h:66
+
CLAppConn()
Definition: app_conn.cpp:3
+
void enableOTA(bool enable=true)
Definition: app_conn.cpp:276
+
int getPort()
Definition: app_conn.h:67
+
int start()
Definition: app_conn.cpp:7
+
wl_status_t wifiStatus()
Definition: app_conn.h:63
+
bool isAccessPoint()
Definition: app_conn.h:71
+
void handleDNSRequest()
Definition: app_conn.h:53
+
void printLocalTime(bool extraData=false)
Definition: app_conn.cpp:356
+
long getGmtOffset_sec()
Definition: app_conn.h:58
+
bool stop()
Definition: app_conn.h:47
+
void configMDNS()
Definition: app_conn.cpp:338
+
bool isCaptivePortal()
Definition: app_conn.h:72
+
int savePrefs()
Definition: app_conn.cpp:271
+
char * getLocalTimeStr()
Definition: app_conn.cpp:364
+
char * getHTTPUrl()
Definition: app_conn.h:65
+
int loadPrefs()
Definition: app_conn.cpp:179
+
int getDaylightOffset_sec()
Definition: app_conn.h:59
+
bool isOTAEnabled()
Definition: app_conn.h:61
+ +
Definition: app_conn.h:33
+
IPAddress * ip
Definition: app_conn.h:33
+
IPAddress * dns2
Definition: app_conn.h:33
+
IPAddress * dns1
Definition: app_conn.h:33
+
IPAddress * gateway
Definition: app_conn.h:33
+
IPAddress * netmask
Definition: app_conn.h:33
+
Definition: app_conn.h:31
+
bool dhcp
Definition: app_conn.h:31
+
char ssid[64]
Definition: app_conn.h:31
+
char password[64]
Definition: app_conn.h:31
+
+ + + + diff --git a/Docs/html/app__httpd_8cpp.html b/Docs/html/app__httpd_8cpp.html new file mode 100644 index 00000000..f1c3f099 --- /dev/null +++ b/Docs/html/app__httpd_8cpp.html @@ -0,0 +1,313 @@ + + + + + + + +ESP32 WebCam Server: src/app_httpd.cpp File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_httpd.cpp File Reference
+
+
+
#include "app_httpd.h"
+
+ + + + + + + + + + + + + + + + + +

+Functions

void onSnapTimer (TimerHandle_t pxTimer)
 
void onWsEvent (AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len)
 
String processor (const String &var)
 
void onControl (AsyncWebServerRequest *request)
 
void onInfo (AsyncWebServerRequest *request)
 
void onStatus (AsyncWebServerRequest *request)
 
void onSystemStatus (AsyncWebServerRequest *request)
 
void dumpSystemStatusToJson (char *buf, size_t size)
 
+ + + +

+Variables

CLAppHttpd AppHttpd
 
+

Function Documentation

+ +

◆ dumpSystemStatusToJson()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dumpSystemStatusToJson (char * buf,
size_t size 
)
+
+ +
+
+ +

◆ onControl()

+ +
+
+ + + + + + + + +
void onControl (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onInfo()

+ +
+
+ + + + + + + + +
void onInfo (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onSnapTimer()

+ +
+
+ + + + + + + + +
void onSnapTimer (TimerHandle_t pxTimer)
+
+ +
+
+ +

◆ onStatus()

+ +
+
+ + + + + + + + +
void onStatus (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onSystemStatus()

+ +
+
+ + + + + + + + +
void onSystemStatus (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onWsEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void onWsEvent (AsyncWebSocket * server,
AsyncWebSocketClient * client,
AwsEventType type,
void * arg,
uint8_t * data,
size_t len 
)
+
+ +
+
+ +

◆ processor()

+ +
+
+ + + + + + + + +
String processor (const String & var)
+
+ +
+
+

Variable Documentation

+ +

◆ AppHttpd

+ +
+
+ + + + +
CLAppHttpd AppHttpd
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__httpd_8h.html b/Docs/html/app__httpd_8h.html new file mode 100644 index 00000000..42576f0e --- /dev/null +++ b/Docs/html/app__httpd_8h.html @@ -0,0 +1,407 @@ + + + + + + + +ESP32 WebCam Server: src/app_httpd.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
app_httpd.h File Reference
+
+
+
#include <esp_int_wdt.h>
+#include <esp_task_wdt.h>
+#include <freertos/timers.h>
+#include "ESPAsyncWebServer.h"
+#include "storage.h"
+#include "app_conn.h"
+#include "app_cam.h"
+
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

struct  UriMapping
 Static URI to path mapping. More...
 
class  CLAppHttpd
 WebServer Manager Class for handling web server requests. The web pages are assumed to be stored in the file system (can be SD card or LittleFS).
+ More...
 
+ + + +

+Macros

#define MAX_URI_MAPPINGS   32
 
+ + + +

+Enumerations

enum  capture_mode { CAPTURE_STILL +, CAPTURE_STREAM + }
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

uint8_t temprature_sens_read ()
 
String processor (const String &var)
 
void onSystemStatus (AsyncWebServerRequest *request)
 
void onStatus (AsyncWebServerRequest *request)
 
void onInfo (AsyncWebServerRequest *request)
 
void onControl (AsyncWebServerRequest *request)
 
void onWsEvent (AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len)
 
void onSnapTimer (TimerHandle_t pxTimer)
 
void dumpSystemStatusToJson (char *buf, size_t size)
 
+ + + +

+Variables

CLAppHttpd AppHttpd
 
+

Macro Definition Documentation

+ +

◆ MAX_URI_MAPPINGS

+ +
+
+ + + + +
#define MAX_URI_MAPPINGS   32
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ capture_mode

+ +
+
+ + + + +
enum capture_mode
+
+ + + +
Enumerator
CAPTURE_STILL 
CAPTURE_STREAM 
+ +
+
+

Function Documentation

+ +

◆ dumpSystemStatusToJson()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dumpSystemStatusToJson (char * buf,
size_t size 
)
+
+ +
+
+ +

◆ onControl()

+ +
+
+ + + + + + + + +
void onControl (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onInfo()

+ +
+
+ + + + + + + + +
void onInfo (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onSnapTimer()

+ +
+
+ + + + + + + + +
void onSnapTimer (TimerHandle_t pxTimer)
+
+ +
+
+ +

◆ onStatus()

+ +
+
+ + + + + + + + +
void onStatus (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onSystemStatus()

+ +
+
+ + + + + + + + +
void onSystemStatus (AsyncWebServerRequest * request)
+
+ +
+
+ +

◆ onWsEvent()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void onWsEvent (AsyncWebSocket * server,
AsyncWebSocketClient * client,
AwsEventType type,
void * arg,
uint8_t * data,
size_t len 
)
+
+ +
+
+ +

◆ processor()

+ +
+
+ + + + + + + + +
String processor (const String & var)
+
+ +
+
+ +

◆ temprature_sens_read()

+ +
+
+ + + + + + + +
uint8_t temprature_sens_read ()
+
+ +
+
+

Variable Documentation

+ +

◆ AppHttpd

+ +
+
+ + + + + +
+ + + + +
CLAppHttpd AppHttpd
+
+extern
+
+ +
+
+
+ + + + diff --git a/Docs/html/app__httpd_8h_source.html b/Docs/html/app__httpd_8h_source.html new file mode 100644 index 00000000..0d5213bb --- /dev/null +++ b/Docs/html/app__httpd_8h_source.html @@ -0,0 +1,235 @@ + + + + + + + +ESP32 WebCam Server: src/app_httpd.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
app_httpd.h
+
+
+Go to the documentation of this file.
1#ifndef app_httpd_h
+
2#define app_httpd_h
+
3
+
4#include <esp_int_wdt.h>
+
5#include <esp_task_wdt.h>
+
6#include <freertos/timers.h>
+
7
+
8#include "ESPAsyncWebServer.h"
+
9#include "storage.h"
+
10#include "app_conn.h"
+
11#include "app_cam.h"
+
12
+
13#define MAX_URI_MAPPINGS 32
+
14
+
15#ifdef __cplusplus
+
16extern "C" {
+
17#endif
+ +
19#ifdef __cplusplus
+
20}
+
21#endif
+
22
+ +
24
+
25String processor(const String& var);
+
26void onSystemStatus(AsyncWebServerRequest *request);
+
27void onStatus(AsyncWebServerRequest *request);
+
28void onInfo(AsyncWebServerRequest *request);
+
29void onControl(AsyncWebServerRequest *request);
+
30void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len);
+
31void onSnapTimer(TimerHandle_t pxTimer);
+
32
+
33void dumpSystemStatusToJson(char * buf, size_t size);
+
34
+
35
+
40struct UriMapping { char uri[32]; char path[32];};
+
41
+
42
+
48class CLAppHttpd : public CLAppComponent {
+
49 public:
+
50 CLAppHttpd();
+
51
+
52 int start();
+
53 int loadPrefs();
+
54
+
55 uint32_t getClientId() {return client_id;};
+
56
+
57 int8_t getStreamCount() {return streamCount;};
+
58 long getStreamsServed() {return streamsServed;};
+
59 unsigned long getImagesServed() {return imagesServed;};
+
60 void incImagesServed(){imagesServed++;};
+
61
+
62 void setStreamMode(capture_mode mode) {streammode = mode;};
+
63 capture_mode getStreamMode() {return streammode;};
+
64
+
65 int snapToStream(bool debug = false);
+
66 int startStream(uint32_t id);
+
67 int stopStream(uint32_t id);
+
68
+
69 void updateSnapTimer(int frameRate);
+
70
+
71 void serialSendCommand(const char * cmd);
+
72
+
73 int getSketchSize(){ return sketchSize;};
+
74 int getSketchSpace() {return sketchSpace;};
+
75 String getSketchMD5() {return sketchMD5;};
+
76
+
77 String getVersion() {return version;};
+
78
+
79 char * getName() {return myName;};
+
80
+
81 char * getSerialBuffer() {return serialBuffer;};
+
82
+
83
+
84 private:
+
85
+
86 UriMapping *mappingList[MAX_URI_MAPPINGS];
+
87 int mappingCount=0;
+
88
+
89 // Name of the application used in web interface
+
90 // Can be re-defined in the httpd.json file
+
91 char myName[20] = CAM_NAME;
+
92
+
93 char serialBuffer[64];
+
94
+
95 AsyncWebServer *server;
+
96 AsyncWebSocket *ws;
+
97 uint32_t client_id = 0;
+
98 TimerHandle_t snap_timer = NULL;
+
99
+
100 int8_t streamCount=0;
+
101 long streamsServed=0;
+
102 unsigned long imagesServed;
+
103
+
104 // mode of the image capture
+
105 capture_mode streammode = CAPTURE_STILL;
+
106
+
107 // Sketch Info
+
108 int sketchSize ;
+
109 int sketchSpace ;
+
110 String sketchMD5;
+
111
+
112 const String version = __DATE__ " @ " __TIME__;
+
113
+
114};
+
115
+
116
+
117
+
118extern CLAppHttpd AppHttpd;
+
119
+
120#endif
+ +
#define CAM_NAME
Definition: app_config.h:6
+ +
CLAppHttpd AppHttpd
Definition: app_httpd.cpp:507
+
String processor(const String &var)
Definition: app_httpd.cpp:128
+
void onSnapTimer(TimerHandle_t pxTimer)
Definition: app_httpd.cpp:11
+
uint8_t temprature_sens_read()
+
capture_mode
Definition: app_httpd.h:23
+
@ CAPTURE_STILL
Definition: app_httpd.h:23
+
@ CAPTURE_STREAM
Definition: app_httpd.h:23
+
#define MAX_URI_MAPPINGS
Definition: app_httpd.h:13
+
void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len)
Definition: app_httpd.cpp:93
+
void dumpSystemStatusToJson(char *buf, size_t size)
Definition: app_httpd.cpp:411
+
void onSystemStatus(AsyncWebServerRequest *request)
Definition: app_httpd.cpp:393
+
void onStatus(AsyncWebServerRequest *request)
Definition: app_httpd.cpp:349
+
void onControl(AsyncWebServerRequest *request)
Definition: app_httpd.cpp:223
+
void onInfo(AsyncWebServerRequest *request)
Definition: app_httpd.cpp:339
+
Abstract root class for the appication components.
Definition: app_component.h:14
+
WebServer Manager Class for handling web server requests. The web pages are assumed to be stored in t...
Definition: app_httpd.h:48
+
unsigned long getImagesServed()
Definition: app_httpd.h:59
+
long getStreamsServed()
Definition: app_httpd.h:58
+
void incImagesServed()
Definition: app_httpd.h:60
+
void serialSendCommand(const char *cmd)
Definition: app_httpd.cpp:469
+
String getVersion()
Definition: app_httpd.h:77
+
void setStreamMode(capture_mode mode)
Definition: app_httpd.h:62
+
int stopStream(uint32_t id)
Definition: app_httpd.cpp:207
+
int getSketchSpace()
Definition: app_httpd.h:74
+
int snapToStream(bool debug=false)
Definition: app_httpd.cpp:141
+
char * getName()
Definition: app_httpd.h:79
+
void updateSnapTimer(int frameRate)
Definition: app_httpd.cpp:334
+
int8_t getStreamCount()
Definition: app_httpd.h:57
+
int getSketchSize()
Definition: app_httpd.h:73
+
char * getSerialBuffer()
Definition: app_httpd.h:81
+
uint32_t getClientId()
Definition: app_httpd.h:55
+
int start()
Definition: app_httpd.cpp:15
+
CLAppHttpd()
Definition: app_httpd.cpp:3
+
String getSketchMD5()
Definition: app_httpd.h:75
+
capture_mode getStreamMode()
Definition: app_httpd.h:63
+
int loadPrefs()
Definition: app_httpd.cpp:474
+
int startStream(uint32_t id)
Definition: app_httpd.cpp:164
+ +
Static URI to path mapping.
Definition: app_httpd.h:40
+
char path[32]
Definition: app_httpd.h:40
+
char uri[32]
Definition: app_httpd.h:40
+
+ + + + diff --git a/Docs/html/bc_s.png b/Docs/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/Docs/html/bdwn.png b/Docs/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +ESP32 WebCam Server: src/camera_pins.h File Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
camera_pins.h File Reference
+
+ + + + + diff --git a/Docs/html/camera__pins_8h_source.html b/Docs/html/camera__pins_8h_source.html new file mode 100644 index 00000000..7b907658 --- /dev/null +++ b/Docs/html/camera__pins_8h_source.html @@ -0,0 +1,324 @@ + + + + + + + +ESP32 WebCam Server: src/camera_pins.h Source File + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
camera_pins.h
+
+
+Go to the documentation of this file.
1/*
+
2 * Pin definitions for some common ESP-CAM modules
+
3 *
+
4 * Select the module to use in myconfig.h
+
5 * Defaults to AI-THINKER CAM module
+
6 *
+
7 */
+
8#if defined(CAMERA_MODEL_AI_THINKER)
+
9 //
+
10 // AI Thinker
+
11 // https://github.com/SeeedDocument/forum_doc/raw/master/reg/ESP32_CAM_V1.6.pdf
+
12 //
+
13 #define PWDN_GPIO_NUM 32
+
14 #define RESET_GPIO_NUM -1
+
15 #define XCLK_GPIO_NUM 0
+
16 #define SIOD_GPIO_NUM 26
+
17 #define SIOC_GPIO_NUM 27
+
18 #define Y9_GPIO_NUM 35
+
19 #define Y8_GPIO_NUM 34
+
20 #define Y7_GPIO_NUM 39
+
21 #define Y6_GPIO_NUM 36
+
22 #define Y5_GPIO_NUM 21
+
23 #define Y4_GPIO_NUM 19
+
24 #define Y3_GPIO_NUM 18
+
25 #define Y2_GPIO_NUM 5
+
26 #define VSYNC_GPIO_NUM 25
+
27 #define HREF_GPIO_NUM 23
+
28 #define PCLK_GPIO_NUM 22
+
29 #define LED_PIN 33 // Status led
+
30 #define LED_ON LOW // - Pin is inverted.
+
31 #define LED_OFF HIGH //
+
32 #define LAMP_PIN 4 // LED FloodLamp.
+
33
+
34#elif defined(CAMERA_MODEL_WROVER_KIT)
+
35 //
+
36 // ESP WROVER
+
37 // https://dl.espressif.com/dl/schematics/ESP-WROVER-KIT_SCH-2.pdf
+
38 //
+
39 #define PWDN_GPIO_NUM -1
+
40 #define RESET_GPIO_NUM -1
+
41 #define XCLK_GPIO_NUM 21
+
42 #define SIOD_GPIO_NUM 26
+
43 #define SIOC_GPIO_NUM 27
+
44 #define Y9_GPIO_NUM 35
+
45 #define Y8_GPIO_NUM 34
+
46 #define Y7_GPIO_NUM 39
+
47 #define Y6_GPIO_NUM 36
+
48 #define Y5_GPIO_NUM 19
+
49 #define Y4_GPIO_NUM 18
+
50 #define Y3_GPIO_NUM 5
+
51 #define Y2_GPIO_NUM 4
+
52 #define VSYNC_GPIO_NUM 25
+
53 #define HREF_GPIO_NUM 23
+
54 #define PCLK_GPIO_NUM 22
+
55 #define LED_PIN 2 // A status led on the RGB; could also use pin 0 or 4
+
56 #define LED_ON HIGH //
+
57 #define LED_OFF LOW //
+
58 // #define LAMP_PIN x // No LED FloodLamp.
+
59
+
60#elif defined(CAMERA_MODEL_ESP_EYE)
+
61 //
+
62 // ESP-EYE
+
63 // https://twitter.com/esp32net/status/1085488403460882437
+
64 #define PWDN_GPIO_NUM -1
+
65 #define RESET_GPIO_NUM -1
+
66 #define XCLK_GPIO_NUM 4
+
67 #define SIOD_GPIO_NUM 18
+
68 #define SIOC_GPIO_NUM 23
+
69 #define Y9_GPIO_NUM 36
+
70 #define Y8_GPIO_NUM 37
+
71 #define Y7_GPIO_NUM 38
+
72 #define Y6_GPIO_NUM 39
+
73 #define Y5_GPIO_NUM 35
+
74 #define Y4_GPIO_NUM 14
+
75 #define Y3_GPIO_NUM 13
+
76 #define Y2_GPIO_NUM 34
+
77 #define VSYNC_GPIO_NUM 5
+
78 #define HREF_GPIO_NUM 27
+
79 #define PCLK_GPIO_NUM 25
+
80 #define LED_PIN 21 // Status led
+
81 #define LED_ON HIGH //
+
82 #define LED_OFF LOW //
+
83 // #define LAMP_PIN x // No LED FloodLamp.
+
84
+
85#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
+
86 //
+
87 // ESP32 M5STACK
+
88 //
+
89 #define PWDN_GPIO_NUM -1
+
90 #define RESET_GPIO_NUM 15
+
91 #define XCLK_GPIO_NUM 27
+
92 #define SIOD_GPIO_NUM 25
+
93 #define SIOC_GPIO_NUM 23
+
94 #define Y9_GPIO_NUM 19
+
95 #define Y8_GPIO_NUM 36
+
96 #define Y7_GPIO_NUM 18
+
97 #define Y6_GPIO_NUM 39
+
98 #define Y5_GPIO_NUM 5
+
99 #define Y4_GPIO_NUM 34
+
100 #define Y3_GPIO_NUM 35
+
101 #define Y2_GPIO_NUM 32
+
102 #define VSYNC_GPIO_NUM 22
+
103 #define HREF_GPIO_NUM 26
+
104 #define PCLK_GPIO_NUM 21
+
105 // M5 Stack status/illumination LED details unknown/unclear
+
106 // #define LED_PIN x // Status led
+
107 // #define LED_ON HIGH //
+
108 // #define LED_OFF LOW //
+
109 // #define LAMP_PIN x // LED FloodLamp.
+
110
+
111#elif defined(CAMERA_MODEL_M5STACK_V2_PSRAM)
+
112 //
+
113 // ESP32 M5STACK V2
+
114 //
+
115 #define PWDN_GPIO_NUM -1
+
116 #define RESET_GPIO_NUM 15
+
117 #define XCLK_GPIO_NUM 27
+
118 #define SIOD_GPIO_NUM 22
+
119 #define SIOC_GPIO_NUM 23
+
120 #define Y9_GPIO_NUM 19
+
121 #define Y8_GPIO_NUM 36
+
122 #define Y7_GPIO_NUM 18
+
123 #define Y6_GPIO_NUM 39
+
124 #define Y5_GPIO_NUM 5
+
125 #define Y4_GPIO_NUM 34
+
126 #define Y3_GPIO_NUM 35
+
127 #define Y2_GPIO_NUM 32
+
128 #define VSYNC_GPIO_NUM 25
+
129 #define HREF_GPIO_NUM 26
+
130 #define PCLK_GPIO_NUM 21
+
131 // M5 Stack status/illumination LED details unknown/unclear
+
132 // #define LED_PIN x // Status led
+
133 // #define LED_ON HIGH //
+
134 // #define LED_OFF LOW //
+
135 // #define LAMP_PIN x // LED FloodLamp.
+
136
+
137#elif defined(CAMERA_MODEL_M5STACK_WIDE)
+
138 //
+
139 // ESP32 M5STACK WIDE
+
140 //
+
141 #define PWDN_GPIO_NUM -1
+
142 #define RESET_GPIO_NUM 15
+
143 #define XCLK_GPIO_NUM 27
+
144 #define SIOD_GPIO_NUM 22
+
145 #define SIOC_GPIO_NUM 23
+
146 #define Y9_GPIO_NUM 19
+
147 #define Y8_GPIO_NUM 36
+
148 #define Y7_GPIO_NUM 18
+
149 #define Y6_GPIO_NUM 39
+
150 #define Y5_GPIO_NUM 5
+
151 #define Y4_GPIO_NUM 34
+
152 #define Y3_GPIO_NUM 35
+
153 #define Y2_GPIO_NUM 32
+
154 #define VSYNC_GPIO_NUM 25
+
155 #define HREF_GPIO_NUM 26
+
156 #define PCLK_GPIO_NUM 21
+
157 // M5 Stack status/illumination LED details unknown/unclear
+
158 // #define LED_PIN x // Status led
+
159 // #define LED_ON HIGH //
+
160 // #define LED_OFF LOW //
+
161 // #define LAMP_PIN x // LED FloodLamp.
+
162
+
163#elif defined(CAMERA_MODEL_M5STACK_ESP32CAM)
+
164 //
+
165 // Common M5 Stack without PSRAM
+
166 //
+
167 #define PWDN_GPIO_NUM -1
+
168 #define RESET_GPIO_NUM 15
+
169 #define XCLK_GPIO_NUM 27
+
170 #define SIOD_GPIO_NUM 25
+
171 #define SIOC_GPIO_NUM 23
+
172 #define Y9_GPIO_NUM 19
+
173 #define Y8_GPIO_NUM 36
+
174 #define Y7_GPIO_NUM 18
+
175 #define Y6_GPIO_NUM 39
+
176 #define Y5_GPIO_NUM 5
+
177 #define Y4_GPIO_NUM 34
+
178 #define Y3_GPIO_NUM 35
+
179 #define Y2_GPIO_NUM 17
+
180 #define VSYNC_GPIO_NUM 22
+
181 #define HREF_GPIO_NUM 26
+
182 #define PCLK_GPIO_NUM 21
+
183 // Note NO PSRAM,; so maximum working resolution is XGA 1024×768
+
184 // M5 Stack status/illumination LED details unknown/unclear
+
185 // #define LED_PIN x // Status led
+
186 // #define LED_ON HIGH //
+
187 // #define LED_OFF LOW //
+
188 // #define LAMP_PIN x // LED FloodLamp.
+
189
+
190#elif defined(CAMERA_MODEL_TTGO_T_JOURNAL)
+
191 //
+
192 // LilyGO TTGO T-Journal ESP32; with OLED! but not used here.. :-(
+
193 #define PWDN_GPIO_NUM 0
+
194 #define RESET_GPIO_NUM 15
+
195 #define XCLK_GPIO_NUM 27
+
196 #define SIOD_GPIO_NUM 25
+
197 #define SIOC_GPIO_NUM 23
+
198 #define Y9_GPIO_NUM 19
+
199 #define Y8_GPIO_NUM 36
+
200 #define Y7_GPIO_NUM 18
+
201 #define Y6_GPIO_NUM 39
+
202 #define Y5_GPIO_NUM 5
+
203 #define Y4_GPIO_NUM 34
+
204 #define Y3_GPIO_NUM 35
+
205 #define Y2_GPIO_NUM 17
+
206 #define VSYNC_GPIO_NUM 22
+
207 #define HREF_GPIO_NUM 26
+
208 #define PCLK_GPIO_NUM 21
+
209 // TTGO T Journal status/illumination LED details unknown/unclear
+
210 // #define LED_PIN 33 // Status led
+
211 // #define LED_ON LOW // - Pin is inverted.
+
212 // #define LED_OFF HIGH //
+
213 // #define LAMP_PIN 4 // LED FloodLamp.
+
214
+
215#elif defined(CAMERA_MODEL_ARDUCAM_ESP32S_UNO)
+
216 // Pins from user @rdragonrydr
+
217 // https://github.com/ArduCAM/ArduCAM_ESP32S_UNO/
+
218 // Based on AI-THINKER definitions
+
219 #define PWDN_GPIO_NUM 32
+
220 #define RESET_GPIO_NUM -1
+
221 #define XCLK_GPIO_NUM 0
+
222 #define SIOD_GPIO_NUM 26
+
223 #define SIOC_GPIO_NUM 27
+
224 #define Y9_GPIO_NUM 35
+
225 #define Y8_GPIO_NUM 34
+
226 #define Y7_GPIO_NUM 39
+
227 #define Y6_GPIO_NUM 36
+
228 #define Y5_GPIO_NUM 21
+
229 #define Y4_GPIO_NUM 19
+
230 #define Y3_GPIO_NUM 18
+
231 #define Y2_GPIO_NUM 5
+
232 #define VSYNC_GPIO_NUM 25
+
233 #define HREF_GPIO_NUM 23
+
234 #define PCLK_GPIO_NUM 22
+
235 #define LED_PIN 2 // Status led
+
236 #define LED_ON HIGH // - Pin is not inverted.
+
237 #define LED_OFF LOW //
+
238 //#define LAMP_PIN x // No LED FloodLamp.
+
239
+
240#else
+
241 // Well.
+
242 // that went badly...
+
243 #error "Camera model not selected, did you forget to uncomment it in myconfig?"
+
244#endif
+
+ + + + diff --git a/Docs/html/class_c_l_app_cam.html b/Docs/html/class_c_l_app_cam.html new file mode 100644 index 00000000..a92779ea --- /dev/null +++ b/Docs/html/class_c_l_app_cam.html @@ -0,0 +1,698 @@ + + + + + + + +ESP32 WebCam Server: CLAppCam Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CLAppCam Class Reference
+
+
+ +

Camera Manager Manages all interactions with camera. + More...

+ +

#include <app_cam.h>

+
+Inheritance diagram for CLAppCam:
+
+
+ + +CLAppComponent + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 CLAppCam ()
 
int start ()
 
int stop ()
 
int loadPrefs ()
 
int savePrefs ()
 
void setLamp (int newVal=LAMP_DEFAULT)
 
int getLamp ()
 
void setAutoLamp (bool val)
 
bool isAutoLamp ()
 
int getSensorPID ()
 
sensor_t * getSensor ()
 
String getErr ()
 
int getFrameRate ()
 
void setFrameRate (int newFrameRate)
 
void setXclk (int val)
 
int getXclk ()
 
void setRotation (int val)
 
int getRotation ()
 
int snapToBufer ()
 
uint8_t * getBuffer ()
 
size_t getBufferSize ()
 
bool isJPEGinBuffer ()
 
void releaseBuffer ()
 
- Public Member Functions inherited from CLAppComponent
int start ()
 
int loadPrefs ()
 
int savePrefs ()
 
void dumpPrefs ()
 
int removePrefs ()
 
char * getPrefsFileName (bool forsave=false)
 
void setDebugMode (bool val)
 
bool isDebugMode ()
 
int getLastErr ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from CLAppComponent
void setTag (const char *t)
 
void setErr (int err_code)
 
int readJsonIntVal (jparse_ctx_t *jctx, char *token)
 reads the Int value from JSON context by token. More...
 
int parsePrefs (jparse_ctx_t *jctx)
 
+

Detailed Description

+

Camera Manager Manages all interactions with camera.

+

Constructor & Destructor Documentation

+ +

◆ CLAppCam()

+ +
+
+ + + + + + + +
CLAppCam::CLAppCam ()
+
+ +
+
+

Member Function Documentation

+ +

◆ getBuffer()

+ +
+
+ + + + + +
+ + + + + + + +
uint8_t * CLAppCam::getBuffer ()
+
+inline
+
+ +
+
+ +

◆ getBufferSize()

+ +
+
+ + + + + +
+ + + + + + + +
size_t CLAppCam::getBufferSize ()
+
+inline
+
+ +
+
+ +

◆ getErr()

+ +
+
+ + + + + +
+ + + + + + + +
String CLAppCam::getErr ()
+
+inline
+
+ +
+
+ +

◆ getFrameRate()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppCam::getFrameRate ()
+
+inline
+
+ +
+
+ +

◆ getLamp()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppCam::getLamp ()
+
+inline
+
+ +
+
+ +

◆ getRotation()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppCam::getRotation ()
+
+inline
+
+ +
+
+ +

◆ getSensor()

+ +
+
+ + + + + +
+ + + + + + + +
sensor_t * CLAppCam::getSensor ()
+
+inline
+
+ +
+
+ +

◆ getSensorPID()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppCam::getSensorPID ()
+
+inline
+
+ +
+
+ +

◆ getXclk()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppCam::getXclk ()
+
+inline
+
+ +
+
+ +

◆ isAutoLamp()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppCam::isAutoLamp ()
+
+inline
+
+ +
+
+ +

◆ isJPEGinBuffer()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppCam::isJPEGinBuffer ()
+
+inline
+
+ +
+
+ +

◆ loadPrefs()

+ +
+
+ + + + + + + +
int CLAppCam::loadPrefs ()
+
+ +
+
+ +

◆ releaseBuffer()

+ +
+
+ + + + + + + +
void CLAppCam::releaseBuffer ()
+
+ +
+
+ +

◆ savePrefs()

+ +
+
+ + + + + + + +
int CLAppCam::savePrefs ()
+
+ +
+
+ +

◆ setAutoLamp()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppCam::setAutoLamp (bool val)
+
+inline
+
+ +
+
+ +

◆ setFrameRate()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppCam::setFrameRate (int newFrameRate)
+
+inline
+
+ +
+
+ +

◆ setLamp()

+ +
+
+ + + + + + + + +
void CLAppCam::setLamp (int newVal = LAMP_DEFAULT)
+
+ +
+
+ +

◆ setRotation()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppCam::setRotation (int val)
+
+inline
+
+ +
+
+ +

◆ setXclk()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppCam::setXclk (int val)
+
+inline
+
+ +
+
+ +

◆ snapToBufer()

+ +
+
+ + + + + + + +
int CLAppCam::snapToBufer ()
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + + + +
int CLAppCam::start ()
+
+ +
+
+ +

◆ stop()

+ +
+
+ + + + + + + +
int CLAppCam::stop ()
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Docs/html/class_c_l_app_cam.png b/Docs/html/class_c_l_app_cam.png new file mode 100644 index 0000000000000000000000000000000000000000..a29faff587c53e6083212acc810325e82a3b28dc GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^ML-t<74`jZ0^R=}9&;%e0 zj1L?*z}k679?0b=3GxeO04f53tEWPY7#JA)JY5_^Dj46+jmGrAe6JBl-y4xnCgywlllFdpJICni z?xkmr&Abqv_O>MY<-5Y5mxp$%@7-|v)5>bu*;9`0*16O(<=D<&+s>zIwfXB*8O%E! z@y%dW=KboQyH{F;O`0XLd)gAS=l!pOye=_-9o2IwDtkFoLBIHcm}lDY>tCMxdFrgi z?Vk;w=9jz)V(LlIWMtbgg@HN3tASBR^#H>(p#%nRPJ@P}EEWBR$Ih@a8%$oxB5`1T zu-xCR>Pt%+q~@~~G_Cs-amy~r%i4Mg5wN%T?cfv72YzOO}*Z!EW zd?(QL`6%Dr@T=neiUrN`A$Kk9XF@t^uJ=2%zj>}RsG w&n^9}|8b_!0>_Qn4c;)foY&|zOw+Pw+#{iJBfIbgFt!*xUHx3vIVCg!0CpYkr~m)} literal 0 HcmV?d00001 diff --git a/Docs/html/class_c_l_app_component.html b/Docs/html/class_c_l_app_component.html new file mode 100644 index 00000000..c81b6654 --- /dev/null +++ b/Docs/html/class_c_l_app_component.html @@ -0,0 +1,463 @@ + + + + + + + +ESP32 WebCam Server: CLAppComponent Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CLAppComponent Class Reference
+
+
+ +

Abstract root class for the appication components. + More...

+ +

#include <app_component.h>

+
+Inheritance diagram for CLAppComponent:
+
+
+ + +CLAppCam +CLAppConn +CLAppHttpd + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

int start ()
 
int loadPrefs ()
 
int savePrefs ()
 
void dumpPrefs ()
 
int removePrefs ()
 
char * getPrefsFileName (bool forsave=false)
 
void setDebugMode (bool val)
 
bool isDebugMode ()
 
int getLastErr ()
 
+ + + + + + + + + + +

+Protected Member Functions

void setTag (const char *t)
 
void setErr (int err_code)
 
int readJsonIntVal (jparse_ctx_t *jctx, char *token)
 reads the Int value from JSON context by token. More...
 
int parsePrefs (jparse_ctx_t *jctx)
 
+

Detailed Description

+

Abstract root class for the appication components.

+

Member Function Documentation

+ +

◆ dumpPrefs()

+ +
+
+ + + + + + + +
void CLAppComponent::dumpPrefs ()
+
+ +
+
+ +

◆ getLastErr()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppComponent::getLastErr ()
+
+inline
+
+ +
+
+ +

◆ getPrefsFileName()

+ +
+
+ + + + + + + + +
char * CLAppComponent::getPrefsFileName (bool forsave = false)
+
+ +
+
+ +

◆ isDebugMode()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppComponent::isDebugMode ()
+
+inline
+
+ +
+
+ +

◆ loadPrefs()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppComponent::loadPrefs ()
+
+inline
+
+ +
+
+ +

◆ parsePrefs()

+ +
+
+ + + + + +
+ + + + + + + + +
int CLAppComponent::parsePrefs (jparse_ctx_t * jctx)
+
+protected
+
+ +
+
+ +

◆ readJsonIntVal()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
int CLAppComponent::readJsonIntVal (jparse_ctx_t * jctx,
char * token 
)
+
+protected
+
+ +

reads the Int value from JSON context by token.

+
Parameters
+ + + +
jctxJSON context pointer
tokenJSON field where the value is to be retrieved from
+
+
+
Returns
value, or 0 if fail
+ +
+
+ +

◆ removePrefs()

+ +
+
+ + + + + + + +
int CLAppComponent::removePrefs ()
+
+ +
+
+ +

◆ savePrefs()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppComponent::savePrefs ()
+
+inline
+
+ +
+
+ +

◆ setDebugMode()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppComponent::setDebugMode (bool val)
+
+inline
+
+ +
+
+ +

◆ setErr()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppComponent::setErr (int err_code)
+
+inlineprotected
+
+ +
+
+ +

◆ setTag()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppComponent::setTag (const char * t)
+
+inlineprotected
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppComponent::start ()
+
+inline
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Docs/html/class_c_l_app_component.png b/Docs/html/class_c_l_app_component.png new file mode 100644 index 0000000000000000000000000000000000000000..08f456ec7ba1caf1958be18b64201db2fea8b62f GIT binary patch literal 870 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wxt12~w0B>RN(>wuI*fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1JhSe7srqa#?|rVPr4beSsjhoaA#!$YMrFm@2a!@cb%VC)V;e`Gy5Ie z>U+^o_1UHePmVV$`F{M-pNrh$oh zMcdX?WnFjL)LSODW75u>r}s88yfIjRx$y9e{9l0=cJ%L=^*yzA_m;h{t$T6 zaksIQz5BZ$=bXo-NzPZ-%RhBCogaMKTTkQrya$&u^| zbH{%3{=m7m2H!%~Z&uCp?tS(6!R%1^mitSsNu9r~PN%#O2LaexqXxFjFviy85}Sb4q9e0KsRJKmY&$ literal 0 HcmV?d00001 diff --git a/Docs/html/class_c_l_app_conn.html b/Docs/html/class_c_l_app_conn.html new file mode 100644 index 00000000..ad2068f0 --- /dev/null +++ b/Docs/html/class_c_l_app_conn.html @@ -0,0 +1,706 @@ + + + + + + + +ESP32 WebCam Server: CLAppConn Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CLAppConn Class Reference
+
+
+ +

Connection Manager This class manages everything related to connectivity of the application: WiFi, OTA etc. + More...

+ +

#include <app_conn.h>

+
+Inheritance diagram for CLAppConn:
+
+
+ + +CLAppComponent + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 CLAppConn ()
 
int loadPrefs ()
 
int savePrefs ()
 
int start ()
 
bool stop ()
 
void enableOTA (bool enable=true)
 
void handleOTA ()
 
void configMDNS ()
 
void handleDNSRequest ()
 
void configNTP ()
 
char * getNTPServer ()
 
long getGmtOffset_sec ()
 
int getDaylightOffset_sec ()
 
bool isOTAEnabled ()
 
wl_status_t wifiStatus ()
 
char * getHTTPUrl ()
 
char * getStreamUrl ()
 
int getPort ()
 
char * getApName ()
 
bool isAccessPoint ()
 
bool isCaptivePortal ()
 
char * getLocalTimeStr ()
 
char * getUpTimeStr ()
 
void printLocalTime (bool extraData=false)
 
- Public Member Functions inherited from CLAppComponent
int start ()
 
int loadPrefs ()
 
int savePrefs ()
 
void dumpPrefs ()
 
int removePrefs ()
 
char * getPrefsFileName (bool forsave=false)
 
void setDebugMode (bool val)
 
bool isDebugMode ()
 
int getLastErr ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from CLAppComponent
void setTag (const char *t)
 
void setErr (int err_code)
 
int readJsonIntVal (jparse_ctx_t *jctx, char *token)
 reads the Int value from JSON context by token. More...
 
int parsePrefs (jparse_ctx_t *jctx)
 
+

Detailed Description

+

Connection Manager This class manages everything related to connectivity of the application: WiFi, OTA etc.

+

Constructor & Destructor Documentation

+ +

◆ CLAppConn()

+ +
+
+ + + + + + + +
CLAppConn::CLAppConn ()
+
+ +
+
+

Member Function Documentation

+ +

◆ configMDNS()

+ +
+
+ + + + + + + +
void CLAppConn::configMDNS ()
+
+ +
+
+ +

◆ configNTP()

+ +
+
+ + + + + + + +
void CLAppConn::configNTP ()
+
+ +
+
+ +

◆ enableOTA()

+ +
+
+ + + + + + + + +
void CLAppConn::enableOTA (bool enable = true)
+
+ +
+
+ +

◆ getApName()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppConn::getApName ()
+
+inline
+
+ +
+
+ +

◆ getDaylightOffset_sec()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppConn::getDaylightOffset_sec ()
+
+inline
+
+ +
+
+ +

◆ getGmtOffset_sec()

+ +
+
+ + + + + +
+ + + + + + + +
long CLAppConn::getGmtOffset_sec ()
+
+inline
+
+ +
+
+ +

◆ getHTTPUrl()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppConn::getHTTPUrl ()
+
+inline
+
+ +
+
+ +

◆ getLocalTimeStr()

+ +
+
+ + + + + + + +
char * CLAppConn::getLocalTimeStr ()
+
+ +
+
+ +

◆ getNTPServer()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppConn::getNTPServer ()
+
+inline
+
+ +
+
+ +

◆ getPort()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppConn::getPort ()
+
+inline
+
+ +
+
+ +

◆ getStreamUrl()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppConn::getStreamUrl ()
+
+inline
+
+ +
+
+ +

◆ getUpTimeStr()

+ +
+
+ + + + + + + +
char * CLAppConn::getUpTimeStr ()
+
+ +
+
+ +

◆ handleDNSRequest()

+ +
+
+ + + + + +
+ + + + + + + +
void CLAppConn::handleDNSRequest ()
+
+inline
+
+ +
+
+ +

◆ handleOTA()

+ +
+
+ + + + + +
+ + + + + + + +
void CLAppConn::handleOTA ()
+
+inline
+
+ +
+
+ +

◆ isAccessPoint()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppConn::isAccessPoint ()
+
+inline
+
+ +
+
+ +

◆ isCaptivePortal()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppConn::isCaptivePortal ()
+
+inline
+
+ +
+
+ +

◆ isOTAEnabled()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppConn::isOTAEnabled ()
+
+inline
+
+ +
+
+ +

◆ loadPrefs()

+ +
+
+ + + + + + + +
int CLAppConn::loadPrefs ()
+
+ +
+
+ +

◆ printLocalTime()

+ +
+
+ + + + + + + + +
void CLAppConn::printLocalTime (bool extraData = false)
+
+ +
+
+ +

◆ savePrefs()

+ +
+
+ + + + + + + +
int CLAppConn::savePrefs ()
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + + + +
int CLAppConn::start ()
+
+ +
+
+ +

◆ stop()

+ +
+
+ + + + + +
+ + + + + + + +
bool CLAppConn::stop ()
+
+inline
+
+ +
+
+ +

◆ wifiStatus()

+ +
+
+ + + + + +
+ + + + + + + +
wl_status_t CLAppConn::wifiStatus ()
+
+inline
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Docs/html/class_c_l_app_conn.png b/Docs/html/class_c_l_app_conn.png new file mode 100644 index 0000000000000000000000000000000000000000..503a3c995e6c1372703e4f897c99d1e159624b3f GIT binary patch literal 510 zcmVvTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0004vNklDn*<1kkc#vcy3$cG_11AS#WDLE@4cT3UXo_Al#(=n?<(E) z+QWG*|7BmXOp+cFzm}CpVtYI9=bFw`CP@#emBv&mw-7d8_aLQ1GG5Q=%csjo`*sLs`Wl`p&y!!gv zK9{)}v9OrI^IV>7PpeAD*|X24npjC{QtVoi+VmgQrIe%rETtq3;5$n1y`KueXS@LB zGGF<6O?S>$ZpPWpFDU<$iCs#75iBLZ0G1M9080rlfTaW&z)}JXU?~9xu#^DzIOp74 zZ~!w|N`L|UE#)y>dqu7VsEK6&ecUUL{PuQUZc=Q2dI%W@{u zxoou^;KK9&KE + + + + + + +ESP32 WebCam Server: CLAppHttpd Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CLAppHttpd Class Reference
+
+
+ +

WebServer Manager Class for handling web server requests. The web pages are assumed to be stored in the file system (can be SD card or LittleFS).
+ + More...

+ +

#include <app_httpd.h>

+
+Inheritance diagram for CLAppHttpd:
+
+
+ + +CLAppComponent + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 CLAppHttpd ()
 
int start ()
 
int loadPrefs ()
 
uint32_t getClientId ()
 
int8_t getStreamCount ()
 
long getStreamsServed ()
 
unsigned long getImagesServed ()
 
void incImagesServed ()
 
void setStreamMode (capture_mode mode)
 
capture_mode getStreamMode ()
 
int snapToStream (bool debug=false)
 
int startStream (uint32_t id)
 
int stopStream (uint32_t id)
 
void updateSnapTimer (int frameRate)
 
void serialSendCommand (const char *cmd)
 
int getSketchSize ()
 
int getSketchSpace ()
 
String getSketchMD5 ()
 
String getVersion ()
 
char * getName ()
 
char * getSerialBuffer ()
 
- Public Member Functions inherited from CLAppComponent
int start ()
 
int loadPrefs ()
 
int savePrefs ()
 
void dumpPrefs ()
 
int removePrefs ()
 
char * getPrefsFileName (bool forsave=false)
 
void setDebugMode (bool val)
 
bool isDebugMode ()
 
int getLastErr ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from CLAppComponent
void setTag (const char *t)
 
void setErr (int err_code)
 
int readJsonIntVal (jparse_ctx_t *jctx, char *token)
 reads the Int value from JSON context by token. More...
 
int parsePrefs (jparse_ctx_t *jctx)
 
+

Detailed Description

+

WebServer Manager Class for handling web server requests. The web pages are assumed to be stored in the file system (can be SD card or LittleFS).
+

+

Constructor & Destructor Documentation

+ +

◆ CLAppHttpd()

+ +
+
+ + + + + + + +
CLAppHttpd::CLAppHttpd ()
+
+ +
+
+

Member Function Documentation

+ +

◆ getClientId()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t CLAppHttpd::getClientId ()
+
+inline
+
+ +
+
+ +

◆ getImagesServed()

+ +
+
+ + + + + +
+ + + + + + + +
unsigned long CLAppHttpd::getImagesServed ()
+
+inline
+
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppHttpd::getName ()
+
+inline
+
+ +
+
+ +

◆ getSerialBuffer()

+ +
+
+ + + + + +
+ + + + + + + +
char * CLAppHttpd::getSerialBuffer ()
+
+inline
+
+ +
+
+ +

◆ getSketchMD5()

+ +
+
+ + + + + +
+ + + + + + + +
String CLAppHttpd::getSketchMD5 ()
+
+inline
+
+ +
+
+ +

◆ getSketchSize()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppHttpd::getSketchSize ()
+
+inline
+
+ +
+
+ +

◆ getSketchSpace()

+ +
+
+ + + + + +
+ + + + + + + +
int CLAppHttpd::getSketchSpace ()
+
+inline
+
+ +
+
+ +

◆ getStreamCount()

+ +
+
+ + + + + +
+ + + + + + + +
int8_t CLAppHttpd::getStreamCount ()
+
+inline
+
+ +
+
+ +

◆ getStreamMode()

+ +
+
+ + + + + +
+ + + + + + + +
capture_mode CLAppHttpd::getStreamMode ()
+
+inline
+
+ +
+
+ +

◆ getStreamsServed()

+ +
+
+ + + + + +
+ + + + + + + +
long CLAppHttpd::getStreamsServed ()
+
+inline
+
+ +
+
+ +

◆ getVersion()

+ +
+
+ + + + + +
+ + + + + + + +
String CLAppHttpd::getVersion ()
+
+inline
+
+ +
+
+ +

◆ incImagesServed()

+ +
+
+ + + + + +
+ + + + + + + +
void CLAppHttpd::incImagesServed ()
+
+inline
+
+ +
+
+ +

◆ loadPrefs()

+ +
+
+ + + + + + + +
int CLAppHttpd::loadPrefs ()
+
+ +
+
+ +

◆ serialSendCommand()

+ +
+
+ + + + + + + + +
void CLAppHttpd::serialSendCommand (const char * cmd)
+
+ +
+
+ +

◆ setStreamMode()

+ +
+
+ + + + + +
+ + + + + + + + +
void CLAppHttpd::setStreamMode (capture_mode mode)
+
+inline
+
+ +
+
+ +

◆ snapToStream()

+ +
+
+ + + + + + + + +
int CLAppHttpd::snapToStream (bool debug = false)
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + + + +
int CLAppHttpd::start ()
+
+ +
+
+ +

◆ startStream()

+ +
+
+ + + + + + + + +
int CLAppHttpd::startStream (uint32_t id)
+
+ +
+
+ +

◆ stopStream()

+ +
+
+ + + + + + + + +
int CLAppHttpd::stopStream (uint32_t id)
+
+ +
+
+ +

◆ updateSnapTimer()

+ +
+
+ + + + + + + + +
void CLAppHttpd::updateSnapTimer (int frameRate)
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Docs/html/class_c_l_app_httpd.png b/Docs/html/class_c_l_app_httpd.png new file mode 100644 index 0000000000000000000000000000000000000000..a7118bfe8f0b079269d0f907336529522faf2813 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^ML-t<74`jZ0^R=}9&;%e0 zj1L?*z}k679?0b=3GxeO04f53tEWPY7#J8QdAc};R4~4sd$F%Yfyb49ddk25lfxZY zrWjgTAN3WxtQ}-!>#X^{;{D%o2iw>!(or>=`O|ul(BF)YJEL z>(k=cG``78X5UiQ4(g6++w!xPcayc{^{m2Q#Mv`o4%0G`(47>UpL=KZMw3% zea)Lw1$}F7y-ZFyRVX;Kt^EI&V|usiYp-o&y*VdU_}P-A>#uI_pT1NgJK=Kk?Y(zS z&C7irSH0eDcIukvqhm2i7}_ + + + + + + +ESP32 WebCam Server: CLStorage Class Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
CLStorage Class Reference
+
+
+ +

Storage Manager Encapsulates access to the file system, which can be either external (SD card) or internal (LittleFS). + More...

+ +

#include <storage.h>

+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

int readFileToString (char *path, String *s)
 Load a file to a String. More...
 
bool init ()
 
void listDir (const char *dirname, uint8_t levels)
 dumps the folder content to the Serial output. More...
 
int getSize ()
 
int getUsed ()
 
int capacityUnits ()
 
File open (const String &path, const char *mode="r", const bool create=false)
 
bool exists (const String &path)
 
bool remove (const String &path)
 
fs::SDMMCFS & getFS ()
 
+

Detailed Description

+

Storage Manager Encapsulates access to the file system, which can be either external (SD card) or internal (LittleFS).

+

Member Function Documentation

+ +

◆ capacityUnits()

+ +
+
+ + + + + + + +
int CLStorage::capacityUnits ()
+
+ +
+
+ +

◆ exists()

+ +
+
+ + + + + +
+ + + + + + + + +
bool CLStorage::exists (const String & path)
+
+inline
+
+ +
+
+ +

◆ getFS()

+ +
+
+ + + + + +
+ + + + + + + +
fs::SDMMCFS & CLStorage::getFS ()
+
+inline
+
+ +
+
+ +

◆ getSize()

+ +
+
+ + + + + + + +
int CLStorage::getSize ()
+
+ +
+
+ +

◆ getUsed()

+ +
+
+ + + + + + + +
int CLStorage::getUsed ()
+
+ +
+
+ +

◆ init()

+ +
+
+ + + + + + + +
bool CLStorage::init ()
+
+ +
+
+ +

◆ listDir()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void CLStorage::listDir (const char * dirname,
uint8_t levels 
)
+
+ +

dumps the folder content to the Serial output.

+
Parameters
+ + + +
dirname
levels
+
+
+
+ +
+
+ +

◆ open()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
File CLStorage::open (const String & path,
const char * mode = "r",
const bool create = false 
)
+
+inline
+
+ +
+
+ +

◆ readFileToString()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int CLStorage::readFileToString (char * path,
String * s 
)
+
+ +

Load a file to a String.

+
Parameters
+ + + +
pathfile name
spointer to the String buffer
+
+
+
Returns
OK(0) or FAIL(1)
+ +
+
+ +

◆ remove()

+ +
+
+ + + + + +
+ + + + + + + + +
bool CLStorage::remove (const String & path)
+
+inline
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Docs/html/classes.html b/Docs/html/classes.html new file mode 100644 index 00000000..84b3cec7 --- /dev/null +++ b/Docs/html/classes.html @@ -0,0 +1,88 @@ + + + + + + + +ESP32 WebCam Server: Data Structure Index + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Data Structure Index
+
+ + + + + diff --git a/Docs/html/closed.png b/Docs/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000..4af1df5e --- /dev/null +++ b/Docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,112 @@ + + + + + + + +ESP32 WebCam Server: src Directory Reference + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
src Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  app_cam.cpp
 
file  app_cam.h [code]
 
file  app_component.cpp
 
file  app_component.h [code]
 
file  app_config.h [code]
 
file  app_conn.cpp
 
file  app_conn.h [code]
 
file  app_httpd.cpp
 
file  app_httpd.h [code]
 
file  camera_pins.h [code]
 
file  parsebytes.cpp
 
file  parsebytes.h [code]
 
file  storage.cpp
 
file  storage.h [code]
 
+
+ + + + diff --git a/Docs/html/doc.png b/Docs/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/Docs/html/doxygen.css b/Docs/html/doxygen.css new file mode 100644 index 00000000..90367372 --- /dev/null +++ b/Docs/html/doxygen.css @@ -0,0 +1,1841 @@ +/* The standard CSS for doxygen 1.9.3 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font: 200% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 90% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +code.JavaDocCode + direction:ltr; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/Docs/html/doxygen.svg b/Docs/html/doxygen.svg new file mode 100644 index 00000000..d42dad52 --- /dev/null +++ b/Docs/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Docs/html/dynsections.js b/Docs/html/dynsections.js new file mode 100644 index 00000000..3174bd7b --- /dev/null +++ b/Docs/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +ESP32 WebCam Server: File List + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
+ + + + diff --git a/Docs/html/folderclosed.png b/Docs/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/Docs/html/functions.html b/Docs/html/functions.html new file mode 100644 index 00000000..becfe88d --- /dev/null +++ b/Docs/html/functions.html @@ -0,0 +1,221 @@ + + + + + + + +ESP32 WebCam Server: Data Fields + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- w -

+
+ + + + diff --git a/Docs/html/functions_func.html b/Docs/html/functions_func.html new file mode 100644 index 00000000..1b4e4282 --- /dev/null +++ b/Docs/html/functions_func.html @@ -0,0 +1,207 @@ + + + + + + + +ESP32 WebCam Server: Data Fields - Functions + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- w -

+
+ + + + diff --git a/Docs/html/functions_vars.html b/Docs/html/functions_vars.html new file mode 100644 index 00000000..93612b21 --- /dev/null +++ b/Docs/html/functions_vars.html @@ -0,0 +1,85 @@ + + + + + + + +ESP32 WebCam Server: Data Fields - Variables + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/globals.html b/Docs/html/globals.html new file mode 100644 index 00000000..acfdde7b --- /dev/null +++ b/Docs/html/globals.html @@ -0,0 +1,151 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+ + +

- w -

+
+ + + + diff --git a/Docs/html/globals_defs.html b/Docs/html/globals_defs.html new file mode 100644 index 00000000..0dddf92c --- /dev/null +++ b/Docs/html/globals_defs.html @@ -0,0 +1,88 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/globals_enum.html b/Docs/html/globals_enum.html new file mode 100644 index 00000000..4f2d014b --- /dev/null +++ b/Docs/html/globals_enum.html @@ -0,0 +1,76 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/globals_eval.html b/Docs/html/globals_eval.html new file mode 100644 index 00000000..ade17fba --- /dev/null +++ b/Docs/html/globals_eval.html @@ -0,0 +1,77 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/globals_func.html b/Docs/html/globals_func.html new file mode 100644 index 00000000..311ca167 --- /dev/null +++ b/Docs/html/globals_func.html @@ -0,0 +1,85 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/globals_vars.html b/Docs/html/globals_vars.html new file mode 100644 index 00000000..24952dc4 --- /dev/null +++ b/Docs/html/globals_vars.html @@ -0,0 +1,79 @@ + + + + + + + +ESP32 WebCam Server: Globals + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+ + + + diff --git a/Docs/html/hierarchy.html b/Docs/html/hierarchy.html new file mode 100644 index 00000000..de205485 --- /dev/null +++ b/Docs/html/hierarchy.html @@ -0,0 +1,89 @@ + + + + + + + +ESP32 WebCam Server: Class Hierarchy + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + +
 CCLAppComponentAbstract root class for the appication components
 CCLAppCamCamera Manager Manages all interactions with camera
 CCLAppConnConnection Manager This class manages everything related to connectivity of the application: WiFi, OTA etc
 CCLAppHttpdWebServer Manager Class for handling web server requests. The web pages are assumed to be stored in the file system (can be SD card or LittleFS).
+
 CCLStorageStorage Manager Encapsulates access to the file system, which can be either external (SD card) or internal (LittleFS)
 CStaticIP
 CStation
 CUriMappingStatic URI to path mapping
+
+
+ + + + diff --git a/Docs/html/index.html b/Docs/html/index.html new file mode 100644 index 00000000..afe37c13 --- /dev/null +++ b/Docs/html/index.html @@ -0,0 +1,221 @@ + + + + + + + +ESP32 WebCam Server: ESP32-CAM WebCam Server        + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
ESP32-CAM WebCam Server       
+
+
+

ESP-EYE logo

+

This sketch is a fully customizable webcam server based on ESP32-based board with camera. It can be used as a starting point for your own webcam solution.

+

+Key features:

+
    +
  • Extended options for default network and camera settings
  • +
  • Save and restore settings in JSON configuration files
  • +
  • Dedicated standalone stream viewer
  • +
  • Over The Air firmware updates
  • +
  • Optimizing the way how the video stream is processed, thus allowing higher frame rates on high resolution.
  • +
  • Using just one IP port instead of two.
  • +
  • Porting the web server to ESP Async Web Server.
  • +
  • Storing web pages as separate HTML/CSS/JS files on the SD drive, which greatly simplifies development of the interface. Basically, you can swap the face of this project just by replacing files on SD card.
  • +
  • Reduced size of the sketch and improving memory utilization
  • +
  • Porting the code from basic C to C++ object hierarchy, eliminating extensive use of global variables
  • +
  • Lots of minor fixes and tweaks, documentation etc.
  • +
+

+Key principles

+

There are many other variants of a webcam server for these modules online, but most are created for a specific scenario and not good for general, casual, webcam use.

+

Hopefully this expanded example is more useful for those users who wish to set up a simple ESP32 based webcam using the cheap(ish) modules freely available online.

+

+Summary of reductions

+

When re-desiginig and refactoring the original ESP32 Camera web server example from Espressve, the following key principles were followed:

+
    +
  1. Any idea can be killed by unnecessary features
  2. +
  3. See this tutorial video.
  4. +
+

Given the above, face recognition feature was removed. The main purpose of this sketch is to make the camera web server easily configurable and reusable.

+

The original example, is a bit incomprehensible and hard to modify as supplied. It is very focused on showing off the face recognition capabilities, and forgets the 'webcam' part.

+

+Supported development boards

+

The sketch has been tested on the AI Thinker ESP32-CAM module. Other ESP32 boards equipped with camera may be compatible but not guaranteed.

+

+Known Issues

+

The ESP32 itself is susceptible to the usual list of WiFi problems, not helped by having small antennas, older designs, congested airwaves and demanding users. The majority of disconnects, stutters and other communication problems are simply due to 'WiFi issues'.

+

The AI-THINKER camera module & esp32 combination is quite susceptible to power supply problems affecting both WiFi conctivity and Video quality; short cabling and decent power supplies are your friend here; also well cooled cases and, if you have the time, decoupling capacitors on the power lines.

+

A basic limitation of the sketch is that it can can only support one stream at a time. If you try to connect to a cam that is already streaming (or attempting to stream, the first steam will freeze.

+

Currently, camera modules other than ov2640 are not supported.

+

+Setup:

+
    +
  • For programming you will need a suitable development environment. Possible options include Visual Studio Code, Arduino Studio or Espressif development environment .
  • +
+

+Wiring for AI-THINKER Boards (and similar clone-alikes)

+

Is pretty simple, You just need jumper wires, no soldering really required, see the diagram below. Hoockup

    +
  • Connect the RX line from the serial adapter to the TX pin on ESP32
  • +
  • The adapters TX line goes to the ESP32 RX pin
  • +
  • The GPIO0 pin of the ESP32 must be held LOW (to ground) when the unit is powered up to allow it to enter it's programming mode. This can be done with simple jumper cable connected at poweron, fitting a switch for this is useful if you will be reprogramming a lot.
  • +
  • You will to supply 5v to the ESP32 in order to power it during programming; the FTDI board alone fails to supply this sometimes. The ESP32 CAM board is very sensitive to the quality of power source. Decoupling capacitors are very much recommended.
  • +
+

+Download the Sketch, Unpack and Rename

+

Download the latest release of the sketch this repository. Once you have done that you can open the sketch in the IDE by going to the esp32-cam-webserver sketch folder and selecting esp32-cam-webserver.ino.

+

You also need to copy the content of the data folder from this repository to a micro SD flash memory card (must be formatted as FAT32) and insert it into the micro SD slot of the board.

+

Without the SD card, the sketch will not start. Please ensure the size of the card does not exceed 4GB, which is a maximum supported capacity for ESP32-CAM board. Higher capacity SD card may not work.

+

+Config

+

You will need to configure the web server with your WiFi settings. In order to do so, you will need to create a config file in the root folder of your SD card named conn.json and format it as follows:

+
{
+
"mdns_name":"YOUR_MDNS_NAME",
+
"stations":[
+
{"ssid": "YOUR_SSID", "pass":"YOUR_WIFI_PASSWORD", "dhcp": true}
+
],
+
"http_port":80,
+
"ota_enabled":true,
+
"ota_password":"YOUR_OTA_PASSWORD",
+
"ap_ssid":"esp32cam",
+
"ap_pass":"123456789",
+
"ap_ip": {"ip":"192.168.4.1", "netmask":"255.255.255.0"},
+
"ap_dhcp":true,
+
"ntp_server":"pool.ntp.org",
+
"gmt_offset":14400,
+
"dst_offset":0,
+
"debug_mode": false
+
}
+

Replace the WiFi and OTA parameters with your settings and save. PLease note that the sketch will not boot properly if WiFi connection is established.

+

Web server name can configured by creating another config file, httpd.json, in the root folder of the SD card:

+
{
+
"my_name": "MY_NAME",
+
"mapping":[ {"uri":"/dump", "path": "/www/dump.html"},
+
{"uri":"/img", "path": "/www/img"},
+
{"uri":"/css", "path": "/www/css"},
+
{"uri":"/js", "path": "/www/js"}],
+
"debug_mode": false
+
}
+

The parameter mapping allows to configure folders with static content for the web server.

+

Similarly, default camera configuration parameters can be set by creating the file cam.json:

+
{
+
"lamp":-1,
+
"autolamp":0,
+
"framesize":8,
+
"quality":12,
+
"xclk":8,
+
"frame_rate":25,
+
"brightness":0,
+
"contrast":0,
+
"saturation":0,
+
"special_effect":0,
+
"wb_mode":0,"awb":1,
+
"awb_gain":1,
+
"aec":1,
+
"aec2":0,
+
"ae_level":0,
+
"aec_value":204,
+
"agc":1,
+
"agc_gain":0,
+
"gainceiling":0,
+
"bpc":0,
+
"wpc":1,
+
"raw_gma":1,
+
"lenc":1,
+
"vflip":0,
+
"hmirror":0,
+
"dcw":1,
+
"colorbar":0,
+
"rotate":"0",
+
"debug_mode": false
+
}
+

+Programming

+

Assuming you are using the latest Espressif Arduino core the ESP32 Dev Module board will appear in the ESP32 Arduino section of the boards list. Select this (do not use the AI-THINKER entry listed in the boiards menu, it is not OTA compatible, and will cause the module to crash and reboot rather than updating if you use it. IDE board config

+

Make sure you select the Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) partition cheme and turn PSRAM on.

+

The first time you program (or if OTA is failing) you need to compile and upload the code from the IDE, and when the Connecting... appears in the console reboot the ESP32 module while keeping GPIO0 grounded. You can release GPO0 once the sketch is uploading, most boards have a 'boot' button to trigger a reboot.

+

Once the upload completes (be patient, it can be a bit slow) open the serial monitor in the IDE and reboot the board again without GPIO0 grounded. In the serial monitor you should see the board start, connect to the wifi and then report the IP address it has been assigned.

+

Once you have the initial upload done and the board is connected to the wifi network you should see it appearing in the network ports list of the IDE, and you can upload wirelessly.

+

If you have a status LED configured it will give a double flash when it begins attempting to conenct to WiFi, and five short flashes once it has succeeded. It will also flash briefly when you access the camera to change settings.

+

Go to the URL given in the serial output, the web UI should appear with the settings panel open. Click away!

+

+API

+

The communications between the web browser and the camera module can also be used to send commands directly to the camera (eg to automate it, etc) and form, in effect, an API for the camera.

+

+Contributing

+

Contributions are welcome; please see the Contribution guidelines.

+

+Future plans

+
    +
  1. Support of LittleFS.
  2. +
  3. Support of other boards and cameras.
  4. +
  5. Explore how to improve the video quality and further reduce requirements to resources.
  6. +
+
+
+ + + + diff --git a/Docs/html/jquery.js b/Docs/html/jquery.js new file mode 100644 index 00000000..c9ed3d99 --- /dev/null +++ b/Docs/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/data/www/logo.svg b/Docs/html/logo.svg similarity index 100% rename from data/www/logo.svg rename to Docs/html/logo.svg diff --git a/Docs/html/md__a_p_i.html b/Docs/html/md__a_p_i.html new file mode 100644 index 00000000..99bc97e2 --- /dev/null +++ b/Docs/html/md__a_p_i.html @@ -0,0 +1,184 @@ + + + + + + + +ESP32 WebCam Server: Basic HTTP Commands; + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Basic HTTP Commands;
+
+
+

The WebUI and camera server communicate entirely via HTTP requests and responses; this makes controlling all functions of the camera via GET requests possible.

+

+URI's

+

+Web UI pages

+
    +
  • / or /portal - Default index (portal)
  • +
  • /view?mode=full|simple|stream|still - Go direct to specific page:
  • +
  • - full: taking still and video with complete set of camera controls
  • +
  • - simple: taking still and video with limited set of camera controls
  • +
  • - stream: starting video capture with full screen mode
  • +
  • - still: taking a still image with full screen mode
  • +
  • /dump - Status page (automatically refreshed every 5 sec)
  • +
+

+Special <em>key / val</em> settings and commands

+
    +
  • /control?var=<key>&val=<val> - Set a Control Variable specified by <key> to <val>
  • +
  • /status - JSON response containing camera settings
  • +
  • /system - JSON response containing all parameters displayed on the /dump page
  • +
+

+Supported Control Variables:

+
lamp - Lamp value in percent; integer, 0 - 100 (-1 = disabled)
+
framesize - See below
+
frame_rate - Frame rate in FPS. Must be positive integer
+
quality - 10 to 63 (ov3660: 4 to 10)
+
contrast - -2 to 2 (ov3660: -3 to 3)
+
brightness - -2 to 2 (ov3660: -3 to 3)
+
saturation - -2 to 2 (ov3660: -4 to 4)
+
sharpness - (ov3660: -3 to 3)
+
denoise - (ov3660: 0 to 8)
+
ae_level - (ov3660: -5 to 5)
+
special_effect - 0=No Effect, 1=Negative, 2=Grayscale, 3=Red Tint, 4=Green Tint, 5=Blue Tint, 6=Sepia
+
awb - 0 = disable, 1 = enable
+
awb_gain - 0 = disable, 1 = enable
+
wb_mode - if awb enabled: 0=Auto, 1=Sunny, 2=Cloudy, 3=Office, 4=Home
+
aec - 0 = disable, 1 = enable
+
aec_value - 0 to 1200 (ov3660: 0 to 1536)
+
aec2 - 0 = disable, 1 = enable
+
ae_level - -2 to 2 (not ov3660)
+
agc - 0 = disable, 1 = enable
+
agc_gain - 0 to 30 (ov3660: 0 to 64)
+
gainceiling - 0 to 6 (ov3660: 0 to 511)
+
bpc - 0 = disable, 1 = enable
+
wpc - 0 = disable, 1 = enable
+
raw_gma - 0 = disable, 1 = enable
+
lenc - 0 = disable, 1 = enable
+
hmirror - 0 = disable, 1 = enable
+
vflip - 0 = disable, 1 = enable
+
rotate - Rotation Angle; integer, only -90, 0, 90 values are recognised
+
dcw - 0 = disable, 1 = enable
+
colorbar - Overlays a color test pattern on the stream; integer, 1 = enabled
+
face_detect - Face Detection; 1 = enabled, Only settable if framesize <= 4 (CIF)
+
face_recognize - Face recognition; 1 = enabled, only settable if Face detection is already enabled
+

+Framesize values

+

These may vary between different ESP framework releases

0 - THUMB (96x96)
+
1 - QQVGA (160x120)
+
3 - HQVGA (240x176)
+
5 - QVGA (320x240)
+
6 - CIF (400x296)
+
7 - HVGA (480x320)
+
8 - VGA (640x480)
+
9 - SVGA (800x600)
+
10 - XGA (1024x768)
+
11 - HD (1280x720)
+
12 - SXGA (1280x1024)
+
13 - UXGA (1600x1200)
+
Only for 3Mp+ camera modules:
+
14 - FHD (1920x1080)
+
17 - QXGA (2048x1536)
+

+Commands

+

These are commands; they can be sent by calling the /control URI with them as the <key> parameter.

* save_prefs - Saves preferences
+
`val=cam` or not specified will save camera preferences
+
`val=conn` will save network preferences
+
* clear_prefs - Deletes camera the preferences
+
`val=cam` or not specified will reset camera preferences
+
`val=conn` will reset network preferences. Attention! after this the server will boot as access point after restart, and all
+
connection settings will be lost.
+
* reboot - Reboots the board
+

+Examples

+
    +
  • Flash light: on/mid/off
      +
    • http://<IP-ADDRESS>/control?var=lamp&val=100
    • +
    • http://<IP-ADDRESS>/control?var=lamp&val=50
    • +
    • http://<IP-ADDRESS>/control?var=lamp&val=0
    • +
    +
  • +
  • Set resolution to VGA
      +
    • http://<IP-ADDRESS>/control?var=framesize&val=8
    • +
    +
  • +
  • Show camera details and settings
      +
    • All settings are returned via single status call in JSON format.
    • +
    • http://<IP-ADDRESS>/status
    • +
    • Returns: {"lamp":0,"autolamp":0,"frame_rate":0,"framesize":9,"quality":10,"xclk":8,"brightness":0,"contrast":0,"saturation":0,"sharpness":0,"special_effect":0,"wb_mode":0,"awb":1,"awb_gain":1,"aec":1,"aec2":0,"ae_level":0,"aec_value":204,"agc":1,"agc_gain":0,"gainceiling":0,"bpc":0,"wpc":1,"raw_gma":1,"lenc":1,"vflip":1,"hmirror":1,"dcw":1,"colorbar":0,"cam_name":"ESP32 test camera","code_ver":"Mar 10 2022 @ 14:00:45","rotate":"0","stream_url":"ws://<IP-ADDRESS>/ws"}
    • +
    +
  • +
  • Reboot the camera
      +
    • http://<IP-ADDRESS>/control?var=reboot&val=0
    • +
    +
  • +
+

You can try these yourself in a browser address bar, from the commandline with curl and co. or use them programatically from your scripting language of choice.

+
+
+ + + + diff --git a/Docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html b/Docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html new file mode 100644 index 00000000..42d8d40b --- /dev/null +++ b/Docs/html/md__c_o_n_t_r_i_b_u_t_i_n_g.html @@ -0,0 +1,125 @@ + + + + + + + +ESP32 WebCam Server: Contributing to ESP32-CAM revisited + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
Contributing to ESP32-CAM revisited
+
+
+

We love your input and want to make contributing to this project as easy and transparent as possible, whether it's:

+
    +
  • Reporting a bug
  • +
  • Discussing the current state of the code
  • +
  • Submitting a fix
  • +
  • Proposing new features
  • +
  • Becoming a maintainer
  • +
+

+We Develop with Github

+

We use github to host code, to track issues and feature requests, as well as accept pull requests.

+

+We Use <a href="https://guides.github.com/introduction/flow/index.html" >Github Flow</a>

+

So All Code Changes Happen Through Pull Requests. Pull requests are the best way to propose changes to the codebase (use Github Flow). We actively welcome your pull requests:

+
    +
  1. Fork the repo and create your branch from master.
  2. +
  3. Give your branch a clear descriptive name and do your changes there.
  4. +
  5. If you've changed the HTTP APIs, update the documentation.
  6. +
  7. Issue a pull request against the master branch in the main repo.
  8. +
  9. Clearly describe your changes and the reason for them in the pull request.
  10. +
+

+Any contributions you make will be under the GNU Lesser General Public License v2.1

+

In short, when you submit code changes, your submissions are understood to be under the same License that covers the project.

+

+Report bugs using Github's issues

+

We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!

+

+Write bug reports with detail, background, and sample code

+

Great Bug Reports tend to have:

+
    +
  • A quick summary and/or background
  • +
  • Steps to reproduce
      +
    • Be specific!
    • +
    +
  • +
  • What you expected would happen
  • +
  • What actually happens
  • +
  • Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
  • +
+

+Use a Consistent Coding Style

+
    +
  • 4 spaces for indentation rather than tabs in the main code
  • +
+

+License

+

By contributing, you agree that your contributions will be licensed under its GNU Lesser General Public License v2.1

+
+
+ + + + diff --git a/Docs/html/md__r_e_a_d_m_e.html b/Docs/html/md__r_e_a_d_m_e.html new file mode 100644 index 00000000..9f9cd14c --- /dev/null +++ b/Docs/html/md__r_e_a_d_m_e.html @@ -0,0 +1,221 @@ + + + + + + + +ESP32 WebCam Server: ESP32-CAM WebCam Server        + + + + + + + + + +
+
+ + + + + + + +
+
ESP32 WebCam Server 5.0 +
+
Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
ESP32-CAM WebCam Server       
+
+
+

ESP-EYE logo

+

This sketch is a fully customizable webcam server based on ESP32-based board with camera. It can be used as a starting point for your own webcam solution.

+

+Key features:

+
    +
  • Extended options for default network and camera settings
  • +
  • Save and restore settings in JSON configuration files
  • +
  • Dedicated standalone stream viewer
  • +
  • Over The Air firmware updates
  • +
  • Optimizing the way how the video stream is processed, thus allowing higher frame rates on high resolution.
  • +
  • Using just one IP port instead of two.
  • +
  • Porting the web server to ESP Async Web Server.
  • +
  • Storing web pages as separate HTML/CSS/JS files on the SD drive, which greatly simplifies development of the interface. Basically, you can swap the face of this project just by replacing files on SD card.
  • +
  • Reduced size of the sketch and improving memory utilization
  • +
  • Porting the code from basic C to C++ object hierarchy, eliminating extensive use of global variables
  • +
  • Lots of minor fixes and tweaks, documentation etc.
  • +
+

+Key principles

+

There are many other variants of a webcam server for these modules online, but most are created for a specific scenario and not good for general, casual, webcam use.

+

Hopefully this expanded example is more useful for those users who wish to set up a simple ESP32 based webcam using the cheap(ish) modules freely available online.

+

+Summary of reductions

+

When re-desiginig and refactoring the original ESP32 Camera web server example from Espressve, the following key principles were followed:

+
    +
  1. Any idea can be killed by unnecessary features
  2. +
  3. See this tutorial video.
  4. +
+

Given the above, face recognition feature was removed. The main purpose of this sketch is to make the camera web server easily configurable and reusable.

+

The original example, is a bit incomprehensible and hard to modify as supplied. It is very focused on showing off the face recognition capabilities, and forgets the 'webcam' part.

+

+Supported development boards

+

The sketch has been tested on the AI Thinker ESP32-CAM module. Other ESP32 boards equipped with camera may be compatible but not guaranteed.

+

+Known Issues

+

The ESP32 itself is susceptible to the usual list of WiFi problems, not helped by having small antennas, older designs, congested airwaves and demanding users. The majority of disconnects, stutters and other communication problems are simply due to 'WiFi issues'.

+

The AI-THINKER camera module & esp32 combination is quite susceptible to power supply problems affecting both WiFi conctivity and Video quality; short cabling and decent power supplies are your friend here; also well cooled cases and, if you have the time, decoupling capacitors on the power lines.

+

A basic limitation of the sketch is that it can can only support one stream at a time. If you try to connect to a cam that is already streaming (or attempting to stream, the first steam will freeze.

+

Currently, camera modules other than ov2640 are not supported.

+

+Setup:

+
    +
  • For programming you will need a suitable development environment. Possible options include Visual Studio Code, Arduino Studio or Espressif development environment .
  • +
+

+Wiring for AI-THINKER Boards (and similar clone-alikes)

+

Is pretty simple, You just need jumper wires, no soldering really required, see the diagram below. Hoockup

    +
  • Connect the RX line from the serial adapter to the TX pin on ESP32
  • +
  • The adapters TX line goes to the ESP32 RX pin
  • +
  • The GPIO0 pin of the ESP32 must be held LOW (to ground) when the unit is powered up to allow it to enter it's programming mode. This can be done with simple jumper cable connected at poweron, fitting a switch for this is useful if you will be reprogramming a lot.
  • +
  • You will to supply 5v to the ESP32 in order to power it during programming; the FTDI board alone fails to supply this sometimes. The ESP32 CAM board is very sensitive to the quality of power source. Decoupling capacitors are very much recommended.
  • +
+

+Download the Sketch, Unpack and Rename

+

Download the latest release of the sketch this repository. Once you have done that you can open the sketch in the IDE by going to the esp32-cam-webserver sketch folder and selecting esp32-cam-webserver.ino.

+

You also need to copy the content of the data folder from this repository to a micro SD flash memory card (must be formatted as FAT32) and insert it into the micro SD slot of the board.

+

Without the SD card, the sketch will not start. Please ensure the size of the card does not exceed 4GB, which is a maximum supported capacity for ESP32-CAM board. Higher capacity SD card may not work.

+

+Config

+

You will need to configure the web server with your WiFi settings. In order to do so, you will need to create a config file in the root folder of your SD card named conn.json and format it as follows:

+
{
+
"mdns_name":"YOUR_MDNS_NAME",
+
"stations":[
+
{"ssid": "YOUR_SSID", "pass":"YOUR_WIFI_PASSWORD", "dhcp": true}
+
],
+
"http_port":80,
+
"ota_enabled":true,
+
"ota_password":"YOUR_OTA_PASSWORD",
+
"ap_ssid":"esp32cam",
+
"ap_pass":"123456789",
+
"ap_ip": {"ip":"192.168.4.1", "netmask":"255.255.255.0"},
+
"ap_dhcp":true,
+
"ntp_server":"pool.ntp.org",
+
"gmt_offset":14400,
+
"dst_offset":0,
+
"debug_mode": false
+
}
+

Replace the WiFi and OTA parameters with your settings and save. PLease note that the sketch will not boot properly if WiFi connection is established.

+

Web server name can configured by creating another config file, httpd.json, in the root folder of the SD card:

+
{
+
"my_name": "MY_NAME",
+
"mapping":[ {"uri":"/dump", "path": "/www/dump.html"},
+
{"uri":"/img", "path": "/www/img"},
+
{"uri":"/css", "path": "/www/css"},
+
{"uri":"/js", "path": "/www/js"}],
+
"debug_mode": false
+
}
+

The parameter mapping allows to configure folders with static content for the web server.

+

Similarly, default camera configuration parameters can be set by creating the file cam.json:

+
{
+
"lamp":-1,
+
"autolamp":0,
+
"framesize":8,
+
"quality":12,
+
"xclk":8,
+
"frame_rate":25,
+
"brightness":0,
+
"contrast":0,
+
"saturation":0,
+
"special_effect":0,
+
"wb_mode":0,"awb":1,
+
"awb_gain":1,
+
"aec":1,
+
"aec2":0,
+
"ae_level":0,
+
"aec_value":204,
+
"agc":1,
+
"agc_gain":0,
+
"gainceiling":0,
+
"bpc":0,
+
"wpc":1,
+
"raw_gma":1,
+
"lenc":1,
+
"vflip":0,
+
"hmirror":0,
+
"dcw":1,
+
"colorbar":0,
+
"rotate":"0",
+
"debug_mode": false
+
}
+

+Programming

+

Assuming you are using the latest Espressif Arduino core the ESP32 Dev Module board will appear in the ESP32 Arduino section of the boards list. Select this (do not use the AI-THINKER entry listed in the boiards menu, it is not OTA compatible, and will cause the module to crash and reboot rather than updating if you use it. IDE board config

+

Make sure you select the Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) partition cheme and turn PSRAM on.

+

The first time you program (or if OTA is failing) you need to compile and upload the code from the IDE, and when the Connecting... appears in the console reboot the ESP32 module while keeping GPIO0 grounded. You can release GPO0 once the sketch is uploading, most boards have a 'boot' button to trigger a reboot.

+

Once the upload completes (be patient, it can be a bit slow) open the serial monitor in the IDE and reboot the board again without GPIO0 grounded. In the serial monitor you should see the board start, connect to the wifi and then report the IP address it has been assigned.

+

Once you have the initial upload done and the board is connected to the wifi network you should see it appearing in the network ports list of the IDE, and you can upload wirelessly.

+

If you have a status LED configured it will give a double flash when it begins attempting to conenct to WiFi, and five short flashes once it has succeeded. It will also flash briefly when you access the camera to change settings.

+

Go to the URL given in the serial output, the web UI should appear with the settings panel open. Click away!

+

+API

+

The communications between the web browser and the camera module can also be used to send commands directly to the camera (eg to automate it, etc) and form, in effect, an API for the camera.

+

+Contributing

+

Contributions are welcome; please see the Contribution guidelines.

+

+Future plans

+
    +
  1. Support of LittleFS.
  2. +
  3. Support of other boards and cameras.
  4. +
  5. Explore how to improve the video quality and further reduce requirements to resources.
  6. +
+
+
+ + + + diff --git a/Docs/html/menu.js b/Docs/html/menu.js new file mode 100644 index 00000000..54e81cf1 --- /dev/null +++ b/Docs/html/menu.js @@ -0,0 +1,127 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + var searchBox; + if (searchEnabled) { + if (serverSide) { + searchBox='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBox='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + '' + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBox) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBox); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBox); + $('#searchBoxPos2').show(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/Docs/html/menudata.js b/Docs/html/menudata.js new file mode 100644 index 00000000..8b04811e --- /dev/null +++ b/Docs/html/menudata.js @@ -0,0 +1,83 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"u",url:"functions.html#index_u"}, +{text:"w",url:"functions.html#index_w"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"u",url:"functions_func.html#index_u"}, +{text:"w",url:"functions_func.html#index_w"}]}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"b",url:"globals.html#index_b"}, +{text:"c",url:"globals.html#index_c"}, +{text:"d",url:"globals.html#index_d"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"n",url:"globals.html#index_n"}, +{text:"o",url:"globals.html#index_o"}, +{text:"p",url:"globals.html#index_p"}, +{text:"s",url:"globals.html#index_s"}, +{text:"t",url:"globals.html#index_t"}, +{text:"w",url:"globals.html#index_w"}]}, +{text:"Functions",url:"globals_func.html"}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/Docs/html/nav_f.png b/Docs/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/Docs/html/nav_g.png b/Docs/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +ESP32 WebCam Server: Related Pages + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/Docs/html/parsebytes_8cpp.html b/Docs/html/parsebytes_8cpp.html new file mode 100644 index 00000000..07c3158d --- /dev/null +++ b/Docs/html/parsebytes_8cpp.html @@ -0,0 +1,136 @@ + + + + + + + +ESP32 WebCam Server: src/parsebytes.cpp File Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    parsebytes.cpp File Reference
    +
    +
    +
    #include <Arduino.h>
    +
    + + + +

    +Functions

    void parseBytes (const char *str, char sep, byte *bytes, int maxBytes, int base)
     
    +

    Function Documentation

    + +

    ◆ parseBytes()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void parseBytes (const char * str,
    char sep,
    byte * bytes,
    int maxBytes,
    int base 
    )
    +
    + +
    +
    +
    + + + + diff --git a/Docs/html/parsebytes_8h.html b/Docs/html/parsebytes_8h.html new file mode 100644 index 00000000..abe8de61 --- /dev/null +++ b/Docs/html/parsebytes_8h.html @@ -0,0 +1,137 @@ + + + + + + + +ESP32 WebCam Server: src/parsebytes.h File Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    parsebytes.h File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + +

    +Functions

    void parseBytes (const char *str, char sep, byte *bytes, int maxBytes, int base)
     
    +

    Function Documentation

    + +

    ◆ parseBytes()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void parseBytes (const char * str,
    char sep,
    byte * bytes,
    int maxBytes,
    int base 
    )
    +
    + +
    +
    +
    + + + + diff --git a/Docs/html/parsebytes_8h_source.html b/Docs/html/parsebytes_8h_source.html new file mode 100644 index 00000000..670a6414 --- /dev/null +++ b/Docs/html/parsebytes_8h_source.html @@ -0,0 +1,87 @@ + + + + + + + +ESP32 WebCam Server: src/parsebytes.h Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    parsebytes.h
    +
    +
    +Go to the documentation of this file.
    1#ifndef parsebytes_h
    +
    2#define parsebytes_h
    +
    3
    +
    4extern void parseBytes(const char* str, char sep, byte* bytes, int maxBytes, int base);
    +
    5
    +
    6#endif
    +
    void parseBytes(const char *str, char sep, byte *bytes, int maxBytes, int base)
    Definition: parsebytes.cpp:7
    +
    + + + + diff --git a/Docs/html/search/all_0.html b/Docs/html/search/all_0.html new file mode 100644 index 00000000..c36c9af5 --- /dev/null +++ b/Docs/html/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_0.js b/Docs/html/search/all_0.js new file mode 100644 index 00000000..a116542b --- /dev/null +++ b/Docs/html/search/all_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['api_2emd_0',['API.md',['../_a_p_i_8md.html',1,'']]], + ['app_5fcam_2ecpp_1',['app_cam.cpp',['../app__cam_8cpp.html',1,'']]], + ['app_5fcam_2eh_2',['app_cam.h',['../app__cam_8h.html',1,'']]], + ['app_5fcomponent_2ecpp_3',['app_component.cpp',['../app__component_8cpp.html',1,'']]], + ['app_5fcomponent_2eh_4',['app_component.h',['../app__component_8h.html',1,'']]], + ['app_5fconfig_2eh_5',['app_config.h',['../app__config_8h.html',1,'']]], + ['app_5fconn_2ecpp_6',['app_conn.cpp',['../app__conn_8cpp.html',1,'']]], + ['app_5fconn_2eh_7',['app_conn.h',['../app__conn_8h.html',1,'']]], + ['app_5fhttpd_2ecpp_8',['app_httpd.cpp',['../app__httpd_8cpp.html',1,'']]], + ['app_5fhttpd_2eh_9',['app_httpd.h',['../app__httpd_8h.html',1,'']]], + ['appcam_10',['AppCam',['../app__cam_8cpp.html#a2c40f09444d86a4ed61c53c20f0c9825',1,'AppCam(): app_cam.cpp'],['../app__cam_8h.html#a2c40f09444d86a4ed61c53c20f0c9825',1,'AppCam(): app_cam.cpp']]], + ['appconn_11',['AppConn',['../app__conn_8cpp.html#a3fca6c2df3835192bdadfe6edde1e63b',1,'AppConn(): app_conn.cpp'],['../app__conn_8h.html#a3fca6c2df3835192bdadfe6edde1e63b',1,'AppConn(): app_conn.cpp']]], + ['apphttpd_12',['AppHttpd',['../app__httpd_8cpp.html#a0174a427778b574c2447cf5d8568f986',1,'AppHttpd(): app_httpd.cpp'],['../app__httpd_8h.html#a0174a427778b574c2447cf5d8568f986',1,'AppHttpd(): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/all_1.html b/Docs/html/search/all_1.html new file mode 100644 index 00000000..91cfe8ac --- /dev/null +++ b/Docs/html/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_1.js b/Docs/html/search/all_1.js new file mode 100644 index 00000000..2fcc2b29 --- /dev/null +++ b/Docs/html/search/all_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['base_5fversion_0',['BASE_VERSION',['../app__config_8h.html#a7409e001dcdfa6d62c7266224556e6a3',1,'app_config.h']]], + ['basic_20http_20commands_3b_1',['Basic HTTP Commands;',['../md__a_p_i.html',1,'']]] +]; diff --git a/Docs/html/search/all_10.html b/Docs/html/search/all_10.html new file mode 100644 index 00000000..765f5848 --- /dev/null +++ b/Docs/html/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_10.js b/Docs/html/search/all_10.js new file mode 100644 index 00000000..68af51f1 --- /dev/null +++ b/Docs/html/search/all_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['updatesnaptimer_0',['updateSnapTimer',['../class_c_l_app_httpd.html#a58f5ed0635650911e1540f138df24b29',1,'CLAppHttpd']]], + ['uri_1',['uri',['../struct_uri_mapping.html#a9ce212b0da4d58af1f79b5476b68a7e8',1,'UriMapping']]], + ['urimapping_2',['UriMapping',['../struct_uri_mapping.html',1,'']]] +]; diff --git a/Docs/html/search/all_11.html b/Docs/html/search/all_11.html new file mode 100644 index 00000000..e2183ee4 --- /dev/null +++ b/Docs/html/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_11.js b/Docs/html/search/all_11.js new file mode 100644 index 00000000..dd6d5f73 --- /dev/null +++ b/Docs/html/search/all_11.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['wifi_5fwatchdog_0',['WIFI_WATCHDOG',['../app__config_8h.html#abe5fef12849f59923de575b49a6e222c',1,'app_config.h']]], + ['wifistatus_1',['wifiStatus',['../class_c_l_app_conn.html#a790ba7c0b56edae2de159abf29f0127b',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/all_2.html b/Docs/html/search/all_2.html new file mode 100644 index 00000000..259dde4f --- /dev/null +++ b/Docs/html/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_2.js b/Docs/html/search/all_2.js new file mode 100644 index 00000000..319ff913 --- /dev/null +++ b/Docs/html/search/all_2.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['cam_5fname_0',['CAM_NAME',['../app__config_8h.html#acc59b7b9d083568456e1131e8492b5dd',1,'app_config.h']]], + ['camera_5fmodel_5fai_5fthinker_1',['CAMERA_MODEL_AI_THINKER',['../app__config_8h.html#af3ad6cce87c9d1876247f85e3cece96e',1,'app_config.h']]], + ['camera_5fpins_2eh_2',['camera_pins.h',['../camera__pins_8h.html',1,'']]], + ['capacityunits_3',['capacityUnits',['../class_c_l_storage.html#a287d73a832226a938cc114b21bf52fb7',1,'CLStorage']]], + ['capture_5fmode_4',['capture_mode',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3d',1,'app_httpd.h']]], + ['capture_5fstill_5',['CAPTURE_STILL',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3daa95e79ced3f093812e4ada2d4642d0ac',1,'app_httpd.h']]], + ['capture_5fstream_6',['CAPTURE_STREAM',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3dae34cdf188185e5606a30deb938e20b40',1,'app_httpd.h']]], + ['clappcam_7',['CLAppCam',['../class_c_l_app_cam.html',1,'CLAppCam'],['../class_c_l_app_cam.html#a5489d93c51c1b4f3457af58970ff953d',1,'CLAppCam::CLAppCam()']]], + ['clappcomponent_8',['CLAppComponent',['../class_c_l_app_component.html',1,'']]], + ['clappconn_9',['CLAppConn',['../class_c_l_app_conn.html',1,'CLAppConn'],['../class_c_l_app_conn.html#a40ab21138b6b3280000a139da9784f58',1,'CLAppConn::CLAppConn()']]], + ['clapphttpd_10',['CLAppHttpd',['../class_c_l_app_httpd.html',1,'CLAppHttpd'],['../class_c_l_app_httpd.html#ad921ac128d82e11c8170847b25970dea',1,'CLAppHttpd::CLAppHttpd()']]], + ['clstorage_11',['CLStorage',['../class_c_l_storage.html',1,'']]], + ['configmdns_12',['configMDNS',['../class_c_l_app_conn.html#ab12f6fe1f13192cdcf6c2243c0619a39',1,'CLAppConn']]], + ['configntp_13',['configNTP',['../class_c_l_app_conn.html#a17ffc56321ce2e765ae90d1b27ed10e2',1,'CLAppConn']]], + ['contributing_20to_20esp32_2dcam_20revisited_14',['Contributing to ESP32-CAM revisited',['../md__c_o_n_t_r_i_b_u_t_i_n_g.html',1,'']]], + ['contributing_2emd_15',['CONTRIBUTING.md',['../_c_o_n_t_r_i_b_u_t_i_n_g_8md.html',1,'']]] +]; diff --git a/Docs/html/search/all_3.html b/Docs/html/search/all_3.html new file mode 100644 index 00000000..1e60c949 --- /dev/null +++ b/Docs/html/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_3.js b/Docs/html/search/all_3.js new file mode 100644 index 00000000..539a4edf --- /dev/null +++ b/Docs/html/search/all_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['dhcp_0',['dhcp',['../struct_station.html#aae4e91ca19c2b2b799ca20891f95c651',1,'Station']]], + ['dns1_1',['dns1',['../struct_static_i_p.html#a6257a5707d2a75fa38ef9d5064eb792d',1,'StaticIP']]], + ['dns2_2',['dns2',['../struct_static_i_p.html#a61e727e8a383392a7f36820a22f1628d',1,'StaticIP']]], + ['dumpprefs_3',['dumpPrefs',['../class_c_l_app_component.html#ad90151113ffbbcc630e347580b3ee9fe',1,'CLAppComponent']]], + ['dumpsystemstatustojson_4',['dumpSystemStatusToJson',['../app__httpd_8cpp.html#a93682b89d59abe5dbad7f6d2a7fa8b8e',1,'dumpSystemStatusToJson(char *buf, size_t size): app_httpd.cpp'],['../app__httpd_8h.html#a93682b89d59abe5dbad7f6d2a7fa8b8e',1,'dumpSystemStatusToJson(char *buf, size_t size): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/all_4.html b/Docs/html/search/all_4.html new file mode 100644 index 00000000..08f1aede --- /dev/null +++ b/Docs/html/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_4.js b/Docs/html/search/all_4.js new file mode 100644 index 00000000..5f55ed4f --- /dev/null +++ b/Docs/html/search/all_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['enableota_0',['enableOTA',['../class_c_l_app_conn.html#a5e9975f7afdb88ae197fb3ad43942c7f',1,'CLAppConn']]], + ['esp32_2dcam_20webcam_20server_20_26nbsp_3b_26nbsp_3b_26nbsp_3b_20_20_26nbsp_3b_26nbsp_3b_1',['ESP32-CAM WebCam Server &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;',['../index.html',1,'']]], + ['exists_2',['exists',['../class_c_l_storage.html#aa5b081483af1fcf83fca0573cc1c6f44',1,'CLStorage']]] +]; diff --git a/Docs/html/search/all_5.html b/Docs/html/search/all_5.html new file mode 100644 index 00000000..0d85fcc8 --- /dev/null +++ b/Docs/html/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_5.js b/Docs/html/search/all_5.js new file mode 100644 index 00000000..eedeefd0 --- /dev/null +++ b/Docs/html/search/all_5.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['gateway_0',['gateway',['../struct_static_i_p.html#a6bd38cab74299d715d64d1ea5a369913',1,'StaticIP']]], + ['getapname_1',['getApName',['../class_c_l_app_conn.html#a2d4395c692371a87b05ccb3e9b6b33d9',1,'CLAppConn']]], + ['getbuffer_2',['getBuffer',['../class_c_l_app_cam.html#aac54409dcd9344abbbe434b237dc505f',1,'CLAppCam']]], + ['getbuffersize_3',['getBufferSize',['../class_c_l_app_cam.html#aa0f1c434be24055bab3abb459a071abd',1,'CLAppCam']]], + ['getclientid_4',['getClientId',['../class_c_l_app_httpd.html#a9c73098b74bbc4bb1358c2723019e716',1,'CLAppHttpd']]], + ['getdaylightoffset_5fsec_5',['getDaylightOffset_sec',['../class_c_l_app_conn.html#aef2f2c99712b1c867b9d73f5abf4377e',1,'CLAppConn']]], + ['geterr_6',['getErr',['../class_c_l_app_cam.html#a97ffe4ceb1fc0ae537d4e5f96cb7691e',1,'CLAppCam']]], + ['getframerate_7',['getFrameRate',['../class_c_l_app_cam.html#a790db89fdbe6524175ad6f447b863c26',1,'CLAppCam']]], + ['getfs_8',['getFS',['../class_c_l_storage.html#a163976b7c12700a887fe33d797380d36',1,'CLStorage']]], + ['getgmtoffset_5fsec_9',['getGmtOffset_sec',['../class_c_l_app_conn.html#aa10f212281464764cf8b3057290d1722',1,'CLAppConn']]], + ['gethttpurl_10',['getHTTPUrl',['../class_c_l_app_conn.html#ae243b486cbd9ac417ff050df27bab72f',1,'CLAppConn']]], + ['getimagesserved_11',['getImagesServed',['../class_c_l_app_httpd.html#a1682f0b927c3c3691a20c1298e9922c9',1,'CLAppHttpd']]], + ['getlamp_12',['getLamp',['../class_c_l_app_cam.html#a84dc1e1b593b3d4b67889cc88893c92f',1,'CLAppCam']]], + ['getlasterr_13',['getLastErr',['../class_c_l_app_component.html#a0c99f78f5ea7090785c70864b8fd9101',1,'CLAppComponent']]], + ['getlocaltimestr_14',['getLocalTimeStr',['../class_c_l_app_conn.html#add0e97835e7204a17639eb8b4c07cfd0',1,'CLAppConn']]], + ['getname_15',['getName',['../class_c_l_app_httpd.html#a56a97b6250dd609d57e9c84128813846',1,'CLAppHttpd']]], + ['getntpserver_16',['getNTPServer',['../class_c_l_app_conn.html#a0e78e96c67968f486c71658925b53251',1,'CLAppConn']]], + ['getport_17',['getPort',['../class_c_l_app_conn.html#a6fa2c289453dd0849fe5d982d6b0ff59',1,'CLAppConn']]], + ['getprefsfilename_18',['getPrefsFileName',['../class_c_l_app_component.html#ada7959a912692cd2c03bd950faa8c5bc',1,'CLAppComponent']]], + ['getrotation_19',['getRotation',['../class_c_l_app_cam.html#a65918dca872c1d5bdcb0bb556451127f',1,'CLAppCam']]], + ['getsensor_20',['getSensor',['../class_c_l_app_cam.html#af812f50b9e35bcdb56af399c4fafd8f2',1,'CLAppCam']]], + ['getsensorpid_21',['getSensorPID',['../class_c_l_app_cam.html#ac20c8599dfc6112502b2ca9e446e6af5',1,'CLAppCam']]], + ['getserialbuffer_22',['getSerialBuffer',['../class_c_l_app_httpd.html#a86f5338752065817fabed08e118a8ff8',1,'CLAppHttpd']]], + ['getsize_23',['getSize',['../class_c_l_storage.html#a74a864f262e8143d1b82f4c823a7bb45',1,'CLStorage']]], + ['getsketchmd5_24',['getSketchMD5',['../class_c_l_app_httpd.html#add4710263a9093fa4f57a2c26d97310e',1,'CLAppHttpd']]], + ['getsketchsize_25',['getSketchSize',['../class_c_l_app_httpd.html#a80c23913b0e693ae584b8177647cec6c',1,'CLAppHttpd']]], + ['getsketchspace_26',['getSketchSpace',['../class_c_l_app_httpd.html#a4be3e20152216b606c83ae09e74c3840',1,'CLAppHttpd']]], + ['getstreamcount_27',['getStreamCount',['../class_c_l_app_httpd.html#a5f8f1b5b6e4a1da9dbc9788a4442e00c',1,'CLAppHttpd']]], + ['getstreammode_28',['getStreamMode',['../class_c_l_app_httpd.html#aeef90f323bd91eba9d00d0b464177c82',1,'CLAppHttpd']]], + ['getstreamsserved_29',['getStreamsServed',['../class_c_l_app_httpd.html#a2b63e9eb18e2d67fc3f352fec0b66cd9',1,'CLAppHttpd']]], + ['getstreamurl_30',['getStreamUrl',['../class_c_l_app_conn.html#a3b240d40a51a7d76f22be73b2563b412',1,'CLAppConn']]], + ['getuptimestr_31',['getUpTimeStr',['../class_c_l_app_conn.html#a05b74d2731b9c2220c431e354b1b55a5',1,'CLAppConn']]], + ['getused_32',['getUsed',['../class_c_l_storage.html#a9effb4148704bbc571acce5214e5dd74',1,'CLStorage']]], + ['getversion_33',['getVersion',['../class_c_l_app_httpd.html#a3ba8f3dfa8888b198ac9ad69e88f1a5d',1,'CLAppHttpd']]], + ['getxclk_34',['getXclk',['../class_c_l_app_cam.html#a8e19e1d337c7d7406d713a42615005aa',1,'CLAppCam']]] +]; diff --git a/Docs/html/search/all_6.html b/Docs/html/search/all_6.html new file mode 100644 index 00000000..7e088b86 --- /dev/null +++ b/Docs/html/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_6.js b/Docs/html/search/all_6.js new file mode 100644 index 00000000..6fff5835 --- /dev/null +++ b/Docs/html/search/all_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handlednsrequest_0',['handleDNSRequest',['../class_c_l_app_conn.html#a841aff4dbe7c1b8f34a9eff36fa1b7fd',1,'CLAppConn']]], + ['handleota_1',['handleOTA',['../class_c_l_app_conn.html#a2471ad68dc8303ebfd945c89151d6f03',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/all_7.html b/Docs/html/search/all_7.html new file mode 100644 index 00000000..d2b18254 --- /dev/null +++ b/Docs/html/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_7.js b/Docs/html/search/all_7.js new file mode 100644 index 00000000..f6178041 --- /dev/null +++ b/Docs/html/search/all_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['incimagesserved_0',['incImagesServed',['../class_c_l_app_httpd.html#a2db88a341da481eff2270d5fa8d607a3',1,'CLAppHttpd']]], + ['init_1',['init',['../class_c_l_storage.html#ad93b1e36f1c529d89352699ade07e9d7',1,'CLStorage']]], + ['ip_2',['ip',['../struct_static_i_p.html#a4cba6eec0917a4f531e3285d9e5f8529',1,'StaticIP']]], + ['isaccesspoint_3',['isAccessPoint',['../class_c_l_app_conn.html#a80277e357f23e4dd2de431aecdc326ad',1,'CLAppConn']]], + ['isautolamp_4',['isAutoLamp',['../class_c_l_app_cam.html#aa68f9714fa1c5bdf77708279c8da081b',1,'CLAppCam']]], + ['iscaptiveportal_5',['isCaptivePortal',['../class_c_l_app_conn.html#abbde99435f66b7828a706c15c4317634',1,'CLAppConn']]], + ['isdebugmode_6',['isDebugMode',['../class_c_l_app_component.html#a4891eef9a9970b158d528fef5dda8d30',1,'CLAppComponent']]], + ['isjpeginbuffer_7',['isJPEGinBuffer',['../class_c_l_app_cam.html#a1f01a309f73eb36142ab8b449c81a381',1,'CLAppCam']]], + ['isotaenabled_8',['isOTAEnabled',['../class_c_l_app_conn.html#af5a7071604dbf2bc0ec8b1bdfabd538a',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/all_8.html b/Docs/html/search/all_8.html new file mode 100644 index 00000000..f4e3a2aa --- /dev/null +++ b/Docs/html/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_8.js b/Docs/html/search/all_8.js new file mode 100644 index 00000000..a37ba199 --- /dev/null +++ b/Docs/html/search/all_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['lamp_5fdefault_0',['LAMP_DEFAULT',['../app__cam_8h.html#a8dcb31f6ec7707e22c63090318ca951f',1,'app_cam.h']]], + ['listdir_1',['listDir',['../class_c_l_storage.html#aad57cc509fd60ff11bfc55a47b96be9f',1,'CLStorage']]], + ['loadprefs_2',['loadPrefs',['../class_c_l_app_cam.html#a26a9c706c7c9f86adbfa3cfb748760df',1,'CLAppCam::loadPrefs()'],['../class_c_l_app_component.html#a300c0d2775ed4a082f63449826ee3b98',1,'CLAppComponent::loadPrefs()'],['../class_c_l_app_conn.html#ae2c05fac4c38fd444700b3f01eed931f',1,'CLAppConn::loadPrefs()'],['../class_c_l_app_httpd.html#af530618baf6452852e39524efa4fd365',1,'CLAppHttpd::loadPrefs()']]] +]; diff --git a/Docs/html/search/all_9.html b/Docs/html/search/all_9.html new file mode 100644 index 00000000..89177a82 --- /dev/null +++ b/Docs/html/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_9.js b/Docs/html/search/all_9.js new file mode 100644 index 00000000..f7bfe0e7 --- /dev/null +++ b/Docs/html/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['max_5fknown_5fstations_0',['MAX_KNOWN_STATIONS',['../app__conn_8h.html#a83592674d0318a8edd98e994f0fed16b',1,'app_conn.h']]], + ['max_5furi_5fmappings_1',['MAX_URI_MAPPINGS',['../app__httpd_8h.html#a637263863b33a51633c07ec542547fc1',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/all_a.html b/Docs/html/search/all_a.html new file mode 100644 index 00000000..1f90b7a7 --- /dev/null +++ b/Docs/html/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_a.js b/Docs/html/search/all_a.js new file mode 100644 index 00000000..31471ea3 --- /dev/null +++ b/Docs/html/search/all_a.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['netmask_0',['netmask',['../struct_static_i_p.html#ad8221b5210f6692fbeffb6735495a930',1,'StaticIP']]], + ['ntp_5fdst_5foffset_1',['NTP_DST_OFFSET',['../app__conn_8h.html#a3c6fa4af03ad17716da92c20fa8ff64b',1,'app_conn.h']]], + ['ntp_5fgmt_5foffset_2',['NTP_GMT_OFFSET',['../app__conn_8h.html#a2c57373b84abca8b795c0a8dd84568a9',1,'app_conn.h']]], + ['ntpserver_3',['NTPSERVER',['../app__conn_8h.html#a6a6985b24d084cef13acc6754ab4c3a9',1,'app_conn.h']]] +]; diff --git a/Docs/html/search/all_b.html b/Docs/html/search/all_b.html new file mode 100644 index 00000000..b7ad6e6d --- /dev/null +++ b/Docs/html/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_b.js b/Docs/html/search/all_b.js new file mode 100644 index 00000000..39379aaf --- /dev/null +++ b/Docs/html/search/all_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['oncontrol_0',['onControl',['../app__httpd_8cpp.html#ad15b6110c801dc234564fa2f8268a9ab',1,'onControl(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#ad15b6110c801dc234564fa2f8268a9ab',1,'onControl(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['oninfo_1',['onInfo',['../app__httpd_8cpp.html#ad302c9a0a0e16505eef900b55250762e',1,'onInfo(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#ad302c9a0a0e16505eef900b55250762e',1,'onInfo(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onsnaptimer_2',['onSnapTimer',['../app__httpd_8cpp.html#a1424ebf10d44b20fd79bb8102221a969',1,'onSnapTimer(TimerHandle_t pxTimer): app_httpd.cpp'],['../app__httpd_8h.html#a1424ebf10d44b20fd79bb8102221a969',1,'onSnapTimer(TimerHandle_t pxTimer): app_httpd.cpp']]], + ['onstatus_3',['onStatus',['../app__httpd_8cpp.html#acc8d1122165362713f0823aeb3b25d1e',1,'onStatus(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#acc8d1122165362713f0823aeb3b25d1e',1,'onStatus(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onsystemstatus_4',['onSystemStatus',['../app__httpd_8cpp.html#a9a31c0a3ca52126629c612c494b8d3c6',1,'onSystemStatus(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#a9a31c0a3ca52126629c612c494b8d3c6',1,'onSystemStatus(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onwsevent_5',['onWsEvent',['../app__httpd_8cpp.html#a7064e9828984f378d3e04f9b7a47bcae',1,'onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len): app_httpd.cpp'],['../app__httpd_8h.html#a7064e9828984f378d3e04f9b7a47bcae',1,'onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len): app_httpd.cpp']]], + ['open_6',['open',['../class_c_l_storage.html#a867f099568b8c4f18f0135ad14260a01',1,'CLStorage']]] +]; diff --git a/Docs/html/search/all_c.html b/Docs/html/search/all_c.html new file mode 100644 index 00000000..829c9170 --- /dev/null +++ b/Docs/html/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_c.js b/Docs/html/search/all_c.js new file mode 100644 index 00000000..c45aa0ba --- /dev/null +++ b/Docs/html/search/all_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['parsebytes_0',['parseBytes',['../parsebytes_8cpp.html#a4d8e6d226a4ee77982a2810ca02a8b77',1,'parseBytes(const char *str, char sep, byte *bytes, int maxBytes, int base): parsebytes.cpp'],['../parsebytes_8h.html#a4d8e6d226a4ee77982a2810ca02a8b77',1,'parseBytes(const char *str, char sep, byte *bytes, int maxBytes, int base): parsebytes.cpp']]], + ['parsebytes_2ecpp_1',['parsebytes.cpp',['../parsebytes_8cpp.html',1,'']]], + ['parsebytes_2eh_2',['parsebytes.h',['../parsebytes_8h.html',1,'']]], + ['parseprefs_3',['parsePrefs',['../class_c_l_app_component.html#a7b23015c89977efd202896a19e7ca319',1,'CLAppComponent']]], + ['password_4',['password',['../struct_station.html#adfce66aab835659fef7ab8501def3867',1,'Station']]], + ['path_5',['path',['../struct_uri_mapping.html#a28b0be3b16e0a3d7f7bd4ecff420fa4f',1,'UriMapping']]], + ['printlocaltime_6',['printLocalTime',['../class_c_l_app_conn.html#a9a4f24949950433f1672c3db6af49dde',1,'CLAppConn']]], + ['processor_7',['processor',['../app__httpd_8cpp.html#a0c021f9721c3b479757f8e1b40624b6c',1,'processor(const String &var): app_httpd.cpp'],['../app__httpd_8h.html#a0c021f9721c3b479757f8e1b40624b6c',1,'processor(const String &var): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/all_d.html b/Docs/html/search/all_d.html new file mode 100644 index 00000000..d32b28eb --- /dev/null +++ b/Docs/html/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_d.js b/Docs/html/search/all_d.js new file mode 100644 index 00000000..9090040e --- /dev/null +++ b/Docs/html/search/all_d.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['readfiletostring_0',['readFileToString',['../class_c_l_storage.html#a837b93ce2190684b5f17cc5b9da6f6ba',1,'CLStorage']]], + ['readjsonintval_1',['readJsonIntVal',['../class_c_l_app_component.html#aae2aee9e4a8001900d8b380adb66a8e3',1,'CLAppComponent']]], + ['readme_2emd_2',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['releasebuffer_3',['releaseBuffer',['../class_c_l_app_cam.html#aaf9c6d7306c5122eb6766011b8fc4c4c',1,'CLAppCam']]], + ['remove_4',['remove',['../class_c_l_storage.html#afa5139f3590aba42b3de2c8e1786a43b',1,'CLStorage']]], + ['removeprefs_5',['removePrefs',['../class_c_l_app_component.html#af763174f3eed76761a2eeab9aa845e6a',1,'CLAppComponent']]] +]; diff --git a/Docs/html/search/all_e.html b/Docs/html/search/all_e.html new file mode 100644 index 00000000..ce450a29 --- /dev/null +++ b/Docs/html/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_e.js b/Docs/html/search/all_e.js new file mode 100644 index 00000000..1af90bd6 --- /dev/null +++ b/Docs/html/search/all_e.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['saveprefs_0',['savePrefs',['../class_c_l_app_cam.html#a0f2bc29dea9609204871b7b5bc281c4f',1,'CLAppCam::savePrefs()'],['../class_c_l_app_component.html#a31a25b7869113a15e18f34b2c690189a',1,'CLAppComponent::savePrefs()'],['../class_c_l_app_conn.html#ace5a052d85379ece71207129edc2a0f1',1,'CLAppConn::savePrefs()']]], + ['serialsendcommand_1',['serialSendCommand',['../class_c_l_app_httpd.html#a36be0ed79de4194e8d00b026fd4be4d0',1,'CLAppHttpd']]], + ['setautolamp_2',['setAutoLamp',['../class_c_l_app_cam.html#aa5bd4f968fd8345d3d2a5d8a121586c3',1,'CLAppCam']]], + ['setdebugmode_3',['setDebugMode',['../class_c_l_app_component.html#a9ab4a575691522178eb10d9bffcff5b7',1,'CLAppComponent']]], + ['seterr_4',['setErr',['../class_c_l_app_component.html#a9565596ad1c588c05e349d92b2476e40',1,'CLAppComponent']]], + ['setframerate_5',['setFrameRate',['../class_c_l_app_cam.html#a6581e369883546817a1edaedf4af1734',1,'CLAppCam']]], + ['setlamp_6',['setLamp',['../class_c_l_app_cam.html#a8cab0636ce5e566a7b89016c477aec2b',1,'CLAppCam']]], + ['setrotation_7',['setRotation',['../class_c_l_app_cam.html#a27d4c05b87660b0e04b6a8902f0f173e',1,'CLAppCam']]], + ['setstreammode_8',['setStreamMode',['../class_c_l_app_httpd.html#a40005188d09a72002252fd4b6e2cd2b9',1,'CLAppHttpd']]], + ['settag_9',['setTag',['../class_c_l_app_component.html#a75a706c37e31c3083c845d304e3a519b',1,'CLAppComponent']]], + ['setxclk_10',['setXclk',['../class_c_l_app_cam.html#a9ccd0763eb8eeb559b46e747df25d268',1,'CLAppCam']]], + ['snaptobufer_11',['snapToBufer',['../class_c_l_app_cam.html#a89a7a39bd89130cab06fd7139fc9b6d9',1,'CLAppCam']]], + ['snaptostream_12',['snapToStream',['../class_c_l_app_httpd.html#a4e52f72c1d20cf6420e2f17b0b521da4',1,'CLAppHttpd']]], + ['ssid_13',['ssid',['../struct_station.html#ad635bfe5333139b2596ace399fe5054e',1,'Station']]], + ['start_14',['start',['../class_c_l_app_httpd.html#aaf8a95884768b7ac3e1c04ea041ee514',1,'CLAppHttpd::start()'],['../class_c_l_app_conn.html#a75a0c8c0ab160691ecf58e3c4ad58951',1,'CLAppConn::start()'],['../class_c_l_app_component.html#a7e64a4c55bd1f3216c507101835392b5',1,'CLAppComponent::start()'],['../class_c_l_app_cam.html#af277f42041c7c0a561bd8c8b087f4b3a',1,'CLAppCam::start()']]], + ['startstream_15',['startStream',['../class_c_l_app_httpd.html#af836002eda44f3e400af0808bf9046c1',1,'CLAppHttpd']]], + ['staticip_16',['StaticIP',['../struct_static_i_p.html',1,'']]], + ['station_17',['Station',['../struct_station.html',1,'']]], + ['stop_18',['stop',['../class_c_l_app_cam.html#a8f1da94b3efb536a15419e5983fcac81',1,'CLAppCam::stop()'],['../class_c_l_app_conn.html#ab0a56d0491f5fd3fdce6028447183a25',1,'CLAppConn::stop()']]], + ['stopstream_19',['stopStream',['../class_c_l_app_httpd.html#a4889a2a7ee9a0e5ab558b64983249e46',1,'CLAppHttpd']]], + ['storage_20',['Storage',['../storage_8cpp.html#a47c5a522666eb276db609c3d8049238a',1,'Storage(): storage.cpp'],['../storage_8h.html#a47c5a522666eb276db609c3d8049238a',1,'Storage(): storage.cpp']]], + ['storage_2ecpp_21',['storage.cpp',['../storage_8cpp.html',1,'']]], + ['storage_2eh_22',['storage.h',['../storage_8h.html',1,'']]], + ['storage_5funits_23',['STORAGE_UNITS',['../storage_8h.html#a41be8b1964027c1f9ddfc1e01af3f261',1,'storage.h']]], + ['storage_5funits_5fbt_24',['STORAGE_UNITS_BT',['../storage_8h.html#a58de0b755f7c8d4e84b9be13013c03d2',1,'storage.h']]], + ['storage_5funits_5fmb_25',['STORAGE_UNITS_MB',['../storage_8h.html#acfefb2c2a43c05d5c979ef54f7030a34',1,'storage.h']]] +]; diff --git a/Docs/html/search/all_f.html b/Docs/html/search/all_f.html new file mode 100644 index 00000000..59cfe49c --- /dev/null +++ b/Docs/html/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/all_f.js b/Docs/html/search/all_f.js new file mode 100644 index 00000000..4248ec10 --- /dev/null +++ b/Docs/html/search/all_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['temprature_5fsens_5fread_0',['temprature_sens_read',['../app__httpd_8h.html#a2188b2e5ed72e93782e0a6d59111a180',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/classes_0.html b/Docs/html/search/classes_0.html new file mode 100644 index 00000000..8361bcdc --- /dev/null +++ b/Docs/html/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/classes_0.js b/Docs/html/search/classes_0.js new file mode 100644 index 00000000..650e3c8b --- /dev/null +++ b/Docs/html/search/classes_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['clappcam_0',['CLAppCam',['../class_c_l_app_cam.html',1,'']]], + ['clappcomponent_1',['CLAppComponent',['../class_c_l_app_component.html',1,'']]], + ['clappconn_2',['CLAppConn',['../class_c_l_app_conn.html',1,'']]], + ['clapphttpd_3',['CLAppHttpd',['../class_c_l_app_httpd.html',1,'']]], + ['clstorage_4',['CLStorage',['../class_c_l_storage.html',1,'']]] +]; diff --git a/Docs/html/search/classes_1.html b/Docs/html/search/classes_1.html new file mode 100644 index 00000000..3c668dea --- /dev/null +++ b/Docs/html/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/classes_1.js b/Docs/html/search/classes_1.js new file mode 100644 index 00000000..7084ccf5 --- /dev/null +++ b/Docs/html/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['staticip_0',['StaticIP',['../struct_static_i_p.html',1,'']]], + ['station_1',['Station',['../struct_station.html',1,'']]] +]; diff --git a/Docs/html/search/classes_2.html b/Docs/html/search/classes_2.html new file mode 100644 index 00000000..868c1727 --- /dev/null +++ b/Docs/html/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/classes_2.js b/Docs/html/search/classes_2.js new file mode 100644 index 00000000..59ea40b1 --- /dev/null +++ b/Docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['urimapping_0',['UriMapping',['../struct_uri_mapping.html',1,'']]] +]; diff --git a/Docs/html/search/close.svg b/Docs/html/search/close.svg new file mode 100644 index 00000000..a933eea1 --- /dev/null +++ b/Docs/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/Docs/html/search/defines_0.html b/Docs/html/search/defines_0.html new file mode 100644 index 00000000..fd147dbf --- /dev/null +++ b/Docs/html/search/defines_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_0.js b/Docs/html/search/defines_0.js new file mode 100644 index 00000000..959fcfa0 --- /dev/null +++ b/Docs/html/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['base_5fversion_0',['BASE_VERSION',['../app__config_8h.html#a7409e001dcdfa6d62c7266224556e6a3',1,'app_config.h']]] +]; diff --git a/Docs/html/search/defines_1.html b/Docs/html/search/defines_1.html new file mode 100644 index 00000000..517e9fc4 --- /dev/null +++ b/Docs/html/search/defines_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_1.js b/Docs/html/search/defines_1.js new file mode 100644 index 00000000..31d94c48 --- /dev/null +++ b/Docs/html/search/defines_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cam_5fname_0',['CAM_NAME',['../app__config_8h.html#acc59b7b9d083568456e1131e8492b5dd',1,'app_config.h']]], + ['camera_5fmodel_5fai_5fthinker_1',['CAMERA_MODEL_AI_THINKER',['../app__config_8h.html#af3ad6cce87c9d1876247f85e3cece96e',1,'app_config.h']]] +]; diff --git a/Docs/html/search/defines_2.html b/Docs/html/search/defines_2.html new file mode 100644 index 00000000..a4cbbba1 --- /dev/null +++ b/Docs/html/search/defines_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_2.js b/Docs/html/search/defines_2.js new file mode 100644 index 00000000..9cb75cc5 --- /dev/null +++ b/Docs/html/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lamp_5fdefault_0',['LAMP_DEFAULT',['../app__cam_8h.html#a8dcb31f6ec7707e22c63090318ca951f',1,'app_cam.h']]] +]; diff --git a/Docs/html/search/defines_3.html b/Docs/html/search/defines_3.html new file mode 100644 index 00000000..df9e6c21 --- /dev/null +++ b/Docs/html/search/defines_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_3.js b/Docs/html/search/defines_3.js new file mode 100644 index 00000000..f7bfe0e7 --- /dev/null +++ b/Docs/html/search/defines_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['max_5fknown_5fstations_0',['MAX_KNOWN_STATIONS',['../app__conn_8h.html#a83592674d0318a8edd98e994f0fed16b',1,'app_conn.h']]], + ['max_5furi_5fmappings_1',['MAX_URI_MAPPINGS',['../app__httpd_8h.html#a637263863b33a51633c07ec542547fc1',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/defines_4.html b/Docs/html/search/defines_4.html new file mode 100644 index 00000000..c656e9dd --- /dev/null +++ b/Docs/html/search/defines_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_4.js b/Docs/html/search/defines_4.js new file mode 100644 index 00000000..8a0936db --- /dev/null +++ b/Docs/html/search/defines_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['ntp_5fdst_5foffset_0',['NTP_DST_OFFSET',['../app__conn_8h.html#a3c6fa4af03ad17716da92c20fa8ff64b',1,'app_conn.h']]], + ['ntp_5fgmt_5foffset_1',['NTP_GMT_OFFSET',['../app__conn_8h.html#a2c57373b84abca8b795c0a8dd84568a9',1,'app_conn.h']]], + ['ntpserver_2',['NTPSERVER',['../app__conn_8h.html#a6a6985b24d084cef13acc6754ab4c3a9',1,'app_conn.h']]] +]; diff --git a/Docs/html/search/defines_5.html b/Docs/html/search/defines_5.html new file mode 100644 index 00000000..9dacf5db --- /dev/null +++ b/Docs/html/search/defines_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_5.js b/Docs/html/search/defines_5.js new file mode 100644 index 00000000..27e5053c --- /dev/null +++ b/Docs/html/search/defines_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['storage_5funits_0',['STORAGE_UNITS',['../storage_8h.html#a41be8b1964027c1f9ddfc1e01af3f261',1,'storage.h']]], + ['storage_5funits_5fbt_1',['STORAGE_UNITS_BT',['../storage_8h.html#a58de0b755f7c8d4e84b9be13013c03d2',1,'storage.h']]], + ['storage_5funits_5fmb_2',['STORAGE_UNITS_MB',['../storage_8h.html#acfefb2c2a43c05d5c979ef54f7030a34',1,'storage.h']]] +]; diff --git a/Docs/html/search/defines_6.html b/Docs/html/search/defines_6.html new file mode 100644 index 00000000..5e673253 --- /dev/null +++ b/Docs/html/search/defines_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/defines_6.js b/Docs/html/search/defines_6.js new file mode 100644 index 00000000..2836903e --- /dev/null +++ b/Docs/html/search/defines_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wifi_5fwatchdog_0',['WIFI_WATCHDOG',['../app__config_8h.html#abe5fef12849f59923de575b49a6e222c',1,'app_config.h']]] +]; diff --git a/Docs/html/search/enums_0.html b/Docs/html/search/enums_0.html new file mode 100644 index 00000000..eb1f873f --- /dev/null +++ b/Docs/html/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/enums_0.js b/Docs/html/search/enums_0.js new file mode 100644 index 00000000..23bc1377 --- /dev/null +++ b/Docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['capture_5fmode_0',['capture_mode',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3d',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/enumvalues_0.html b/Docs/html/search/enumvalues_0.html new file mode 100644 index 00000000..7a520ff8 --- /dev/null +++ b/Docs/html/search/enumvalues_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/enumvalues_0.js b/Docs/html/search/enumvalues_0.js new file mode 100644 index 00000000..14320e41 --- /dev/null +++ b/Docs/html/search/enumvalues_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['capture_5fstill_0',['CAPTURE_STILL',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3daa95e79ced3f093812e4ada2d4642d0ac',1,'app_httpd.h']]], + ['capture_5fstream_1',['CAPTURE_STREAM',['../app__httpd_8h.html#a4f1a58013e90714b6ff526f27933ad3dae34cdf188185e5606a30deb938e20b40',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/files_0.html b/Docs/html/search/files_0.html new file mode 100644 index 00000000..da83704e --- /dev/null +++ b/Docs/html/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/files_0.js b/Docs/html/search/files_0.js new file mode 100644 index 00000000..bc872c34 --- /dev/null +++ b/Docs/html/search/files_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['api_2emd_0',['API.md',['../_a_p_i_8md.html',1,'']]], + ['app_5fcam_2ecpp_1',['app_cam.cpp',['../app__cam_8cpp.html',1,'']]], + ['app_5fcam_2eh_2',['app_cam.h',['../app__cam_8h.html',1,'']]], + ['app_5fcomponent_2ecpp_3',['app_component.cpp',['../app__component_8cpp.html',1,'']]], + ['app_5fcomponent_2eh_4',['app_component.h',['../app__component_8h.html',1,'']]], + ['app_5fconfig_2eh_5',['app_config.h',['../app__config_8h.html',1,'']]], + ['app_5fconn_2ecpp_6',['app_conn.cpp',['../app__conn_8cpp.html',1,'']]], + ['app_5fconn_2eh_7',['app_conn.h',['../app__conn_8h.html',1,'']]], + ['app_5fhttpd_2ecpp_8',['app_httpd.cpp',['../app__httpd_8cpp.html',1,'']]], + ['app_5fhttpd_2eh_9',['app_httpd.h',['../app__httpd_8h.html',1,'']]] +]; diff --git a/Docs/html/search/files_1.html b/Docs/html/search/files_1.html new file mode 100644 index 00000000..f7e1582a --- /dev/null +++ b/Docs/html/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/files_1.js b/Docs/html/search/files_1.js new file mode 100644 index 00000000..3d5d6644 --- /dev/null +++ b/Docs/html/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['camera_5fpins_2eh_0',['camera_pins.h',['../camera__pins_8h.html',1,'']]], + ['contributing_2emd_1',['CONTRIBUTING.md',['../_c_o_n_t_r_i_b_u_t_i_n_g_8md.html',1,'']]] +]; diff --git a/Docs/html/search/files_2.html b/Docs/html/search/files_2.html new file mode 100644 index 00000000..99aca620 --- /dev/null +++ b/Docs/html/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/files_2.js b/Docs/html/search/files_2.js new file mode 100644 index 00000000..737971f9 --- /dev/null +++ b/Docs/html/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['parsebytes_2ecpp_0',['parsebytes.cpp',['../parsebytes_8cpp.html',1,'']]], + ['parsebytes_2eh_1',['parsebytes.h',['../parsebytes_8h.html',1,'']]] +]; diff --git a/Docs/html/search/files_3.html b/Docs/html/search/files_3.html new file mode 100644 index 00000000..25e128c8 --- /dev/null +++ b/Docs/html/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/files_3.js b/Docs/html/search/files_3.js new file mode 100644 index 00000000..4accdc1f --- /dev/null +++ b/Docs/html/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_2emd_0',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]] +]; diff --git a/Docs/html/search/files_4.html b/Docs/html/search/files_4.html new file mode 100644 index 00000000..3c8ba6ea --- /dev/null +++ b/Docs/html/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/files_4.js b/Docs/html/search/files_4.js new file mode 100644 index 00000000..4c5b9ca1 --- /dev/null +++ b/Docs/html/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['storage_2ecpp_0',['storage.cpp',['../storage_8cpp.html',1,'']]], + ['storage_2eh_1',['storage.h',['../storage_8h.html',1,'']]] +]; diff --git a/Docs/html/search/functions_0.html b/Docs/html/search/functions_0.html new file mode 100644 index 00000000..2d2d9501 --- /dev/null +++ b/Docs/html/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_0.js b/Docs/html/search/functions_0.js new file mode 100644 index 00000000..1d32ffe1 --- /dev/null +++ b/Docs/html/search/functions_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['capacityunits_0',['capacityUnits',['../class_c_l_storage.html#a287d73a832226a938cc114b21bf52fb7',1,'CLStorage']]], + ['clappcam_1',['CLAppCam',['../class_c_l_app_cam.html#a5489d93c51c1b4f3457af58970ff953d',1,'CLAppCam']]], + ['clappconn_2',['CLAppConn',['../class_c_l_app_conn.html#a40ab21138b6b3280000a139da9784f58',1,'CLAppConn']]], + ['clapphttpd_3',['CLAppHttpd',['../class_c_l_app_httpd.html#ad921ac128d82e11c8170847b25970dea',1,'CLAppHttpd']]], + ['configmdns_4',['configMDNS',['../class_c_l_app_conn.html#ab12f6fe1f13192cdcf6c2243c0619a39',1,'CLAppConn']]], + ['configntp_5',['configNTP',['../class_c_l_app_conn.html#a17ffc56321ce2e765ae90d1b27ed10e2',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/functions_1.html b/Docs/html/search/functions_1.html new file mode 100644 index 00000000..3b96b900 --- /dev/null +++ b/Docs/html/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_1.js b/Docs/html/search/functions_1.js new file mode 100644 index 00000000..be0f8027 --- /dev/null +++ b/Docs/html/search/functions_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['dumpprefs_0',['dumpPrefs',['../class_c_l_app_component.html#ad90151113ffbbcc630e347580b3ee9fe',1,'CLAppComponent']]], + ['dumpsystemstatustojson_1',['dumpSystemStatusToJson',['../app__httpd_8cpp.html#a93682b89d59abe5dbad7f6d2a7fa8b8e',1,'dumpSystemStatusToJson(char *buf, size_t size): app_httpd.cpp'],['../app__httpd_8h.html#a93682b89d59abe5dbad7f6d2a7fa8b8e',1,'dumpSystemStatusToJson(char *buf, size_t size): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/functions_2.html b/Docs/html/search/functions_2.html new file mode 100644 index 00000000..1f16d2ae --- /dev/null +++ b/Docs/html/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_2.js b/Docs/html/search/functions_2.js new file mode 100644 index 00000000..ba62a981 --- /dev/null +++ b/Docs/html/search/functions_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['enableota_0',['enableOTA',['../class_c_l_app_conn.html#a5e9975f7afdb88ae197fb3ad43942c7f',1,'CLAppConn']]], + ['exists_1',['exists',['../class_c_l_storage.html#aa5b081483af1fcf83fca0573cc1c6f44',1,'CLStorage']]] +]; diff --git a/Docs/html/search/functions_3.html b/Docs/html/search/functions_3.html new file mode 100644 index 00000000..0b37ee2f --- /dev/null +++ b/Docs/html/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_3.js b/Docs/html/search/functions_3.js new file mode 100644 index 00000000..ca9f29fc --- /dev/null +++ b/Docs/html/search/functions_3.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['getapname_0',['getApName',['../class_c_l_app_conn.html#a2d4395c692371a87b05ccb3e9b6b33d9',1,'CLAppConn']]], + ['getbuffer_1',['getBuffer',['../class_c_l_app_cam.html#aac54409dcd9344abbbe434b237dc505f',1,'CLAppCam']]], + ['getbuffersize_2',['getBufferSize',['../class_c_l_app_cam.html#aa0f1c434be24055bab3abb459a071abd',1,'CLAppCam']]], + ['getclientid_3',['getClientId',['../class_c_l_app_httpd.html#a9c73098b74bbc4bb1358c2723019e716',1,'CLAppHttpd']]], + ['getdaylightoffset_5fsec_4',['getDaylightOffset_sec',['../class_c_l_app_conn.html#aef2f2c99712b1c867b9d73f5abf4377e',1,'CLAppConn']]], + ['geterr_5',['getErr',['../class_c_l_app_cam.html#a97ffe4ceb1fc0ae537d4e5f96cb7691e',1,'CLAppCam']]], + ['getframerate_6',['getFrameRate',['../class_c_l_app_cam.html#a790db89fdbe6524175ad6f447b863c26',1,'CLAppCam']]], + ['getfs_7',['getFS',['../class_c_l_storage.html#a163976b7c12700a887fe33d797380d36',1,'CLStorage']]], + ['getgmtoffset_5fsec_8',['getGmtOffset_sec',['../class_c_l_app_conn.html#aa10f212281464764cf8b3057290d1722',1,'CLAppConn']]], + ['gethttpurl_9',['getHTTPUrl',['../class_c_l_app_conn.html#ae243b486cbd9ac417ff050df27bab72f',1,'CLAppConn']]], + ['getimagesserved_10',['getImagesServed',['../class_c_l_app_httpd.html#a1682f0b927c3c3691a20c1298e9922c9',1,'CLAppHttpd']]], + ['getlamp_11',['getLamp',['../class_c_l_app_cam.html#a84dc1e1b593b3d4b67889cc88893c92f',1,'CLAppCam']]], + ['getlasterr_12',['getLastErr',['../class_c_l_app_component.html#a0c99f78f5ea7090785c70864b8fd9101',1,'CLAppComponent']]], + ['getlocaltimestr_13',['getLocalTimeStr',['../class_c_l_app_conn.html#add0e97835e7204a17639eb8b4c07cfd0',1,'CLAppConn']]], + ['getname_14',['getName',['../class_c_l_app_httpd.html#a56a97b6250dd609d57e9c84128813846',1,'CLAppHttpd']]], + ['getntpserver_15',['getNTPServer',['../class_c_l_app_conn.html#a0e78e96c67968f486c71658925b53251',1,'CLAppConn']]], + ['getport_16',['getPort',['../class_c_l_app_conn.html#a6fa2c289453dd0849fe5d982d6b0ff59',1,'CLAppConn']]], + ['getprefsfilename_17',['getPrefsFileName',['../class_c_l_app_component.html#ada7959a912692cd2c03bd950faa8c5bc',1,'CLAppComponent']]], + ['getrotation_18',['getRotation',['../class_c_l_app_cam.html#a65918dca872c1d5bdcb0bb556451127f',1,'CLAppCam']]], + ['getsensor_19',['getSensor',['../class_c_l_app_cam.html#af812f50b9e35bcdb56af399c4fafd8f2',1,'CLAppCam']]], + ['getsensorpid_20',['getSensorPID',['../class_c_l_app_cam.html#ac20c8599dfc6112502b2ca9e446e6af5',1,'CLAppCam']]], + ['getserialbuffer_21',['getSerialBuffer',['../class_c_l_app_httpd.html#a86f5338752065817fabed08e118a8ff8',1,'CLAppHttpd']]], + ['getsize_22',['getSize',['../class_c_l_storage.html#a74a864f262e8143d1b82f4c823a7bb45',1,'CLStorage']]], + ['getsketchmd5_23',['getSketchMD5',['../class_c_l_app_httpd.html#add4710263a9093fa4f57a2c26d97310e',1,'CLAppHttpd']]], + ['getsketchsize_24',['getSketchSize',['../class_c_l_app_httpd.html#a80c23913b0e693ae584b8177647cec6c',1,'CLAppHttpd']]], + ['getsketchspace_25',['getSketchSpace',['../class_c_l_app_httpd.html#a4be3e20152216b606c83ae09e74c3840',1,'CLAppHttpd']]], + ['getstreamcount_26',['getStreamCount',['../class_c_l_app_httpd.html#a5f8f1b5b6e4a1da9dbc9788a4442e00c',1,'CLAppHttpd']]], + ['getstreammode_27',['getStreamMode',['../class_c_l_app_httpd.html#aeef90f323bd91eba9d00d0b464177c82',1,'CLAppHttpd']]], + ['getstreamsserved_28',['getStreamsServed',['../class_c_l_app_httpd.html#a2b63e9eb18e2d67fc3f352fec0b66cd9',1,'CLAppHttpd']]], + ['getstreamurl_29',['getStreamUrl',['../class_c_l_app_conn.html#a3b240d40a51a7d76f22be73b2563b412',1,'CLAppConn']]], + ['getuptimestr_30',['getUpTimeStr',['../class_c_l_app_conn.html#a05b74d2731b9c2220c431e354b1b55a5',1,'CLAppConn']]], + ['getused_31',['getUsed',['../class_c_l_storage.html#a9effb4148704bbc571acce5214e5dd74',1,'CLStorage']]], + ['getversion_32',['getVersion',['../class_c_l_app_httpd.html#a3ba8f3dfa8888b198ac9ad69e88f1a5d',1,'CLAppHttpd']]], + ['getxclk_33',['getXclk',['../class_c_l_app_cam.html#a8e19e1d337c7d7406d713a42615005aa',1,'CLAppCam']]] +]; diff --git a/Docs/html/search/functions_4.html b/Docs/html/search/functions_4.html new file mode 100644 index 00000000..0eaf2b4a --- /dev/null +++ b/Docs/html/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_4.js b/Docs/html/search/functions_4.js new file mode 100644 index 00000000..6fff5835 --- /dev/null +++ b/Docs/html/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['handlednsrequest_0',['handleDNSRequest',['../class_c_l_app_conn.html#a841aff4dbe7c1b8f34a9eff36fa1b7fd',1,'CLAppConn']]], + ['handleota_1',['handleOTA',['../class_c_l_app_conn.html#a2471ad68dc8303ebfd945c89151d6f03',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/functions_5.html b/Docs/html/search/functions_5.html new file mode 100644 index 00000000..eaa27697 --- /dev/null +++ b/Docs/html/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_5.js b/Docs/html/search/functions_5.js new file mode 100644 index 00000000..2ce5efb4 --- /dev/null +++ b/Docs/html/search/functions_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['incimagesserved_0',['incImagesServed',['../class_c_l_app_httpd.html#a2db88a341da481eff2270d5fa8d607a3',1,'CLAppHttpd']]], + ['init_1',['init',['../class_c_l_storage.html#ad93b1e36f1c529d89352699ade07e9d7',1,'CLStorage']]], + ['isaccesspoint_2',['isAccessPoint',['../class_c_l_app_conn.html#a80277e357f23e4dd2de431aecdc326ad',1,'CLAppConn']]], + ['isautolamp_3',['isAutoLamp',['../class_c_l_app_cam.html#aa68f9714fa1c5bdf77708279c8da081b',1,'CLAppCam']]], + ['iscaptiveportal_4',['isCaptivePortal',['../class_c_l_app_conn.html#abbde99435f66b7828a706c15c4317634',1,'CLAppConn']]], + ['isdebugmode_5',['isDebugMode',['../class_c_l_app_component.html#a4891eef9a9970b158d528fef5dda8d30',1,'CLAppComponent']]], + ['isjpeginbuffer_6',['isJPEGinBuffer',['../class_c_l_app_cam.html#a1f01a309f73eb36142ab8b449c81a381',1,'CLAppCam']]], + ['isotaenabled_7',['isOTAEnabled',['../class_c_l_app_conn.html#af5a7071604dbf2bc0ec8b1bdfabd538a',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/functions_6.html b/Docs/html/search/functions_6.html new file mode 100644 index 00000000..25d1cc81 --- /dev/null +++ b/Docs/html/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_6.js b/Docs/html/search/functions_6.js new file mode 100644 index 00000000..abb4f011 --- /dev/null +++ b/Docs/html/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['listdir_0',['listDir',['../class_c_l_storage.html#aad57cc509fd60ff11bfc55a47b96be9f',1,'CLStorage']]], + ['loadprefs_1',['loadPrefs',['../class_c_l_app_cam.html#a26a9c706c7c9f86adbfa3cfb748760df',1,'CLAppCam::loadPrefs()'],['../class_c_l_app_component.html#a300c0d2775ed4a082f63449826ee3b98',1,'CLAppComponent::loadPrefs()'],['../class_c_l_app_conn.html#ae2c05fac4c38fd444700b3f01eed931f',1,'CLAppConn::loadPrefs()'],['../class_c_l_app_httpd.html#af530618baf6452852e39524efa4fd365',1,'CLAppHttpd::loadPrefs()']]] +]; diff --git a/Docs/html/search/functions_7.html b/Docs/html/search/functions_7.html new file mode 100644 index 00000000..b6392eaa --- /dev/null +++ b/Docs/html/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_7.js b/Docs/html/search/functions_7.js new file mode 100644 index 00000000..39379aaf --- /dev/null +++ b/Docs/html/search/functions_7.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['oncontrol_0',['onControl',['../app__httpd_8cpp.html#ad15b6110c801dc234564fa2f8268a9ab',1,'onControl(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#ad15b6110c801dc234564fa2f8268a9ab',1,'onControl(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['oninfo_1',['onInfo',['../app__httpd_8cpp.html#ad302c9a0a0e16505eef900b55250762e',1,'onInfo(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#ad302c9a0a0e16505eef900b55250762e',1,'onInfo(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onsnaptimer_2',['onSnapTimer',['../app__httpd_8cpp.html#a1424ebf10d44b20fd79bb8102221a969',1,'onSnapTimer(TimerHandle_t pxTimer): app_httpd.cpp'],['../app__httpd_8h.html#a1424ebf10d44b20fd79bb8102221a969',1,'onSnapTimer(TimerHandle_t pxTimer): app_httpd.cpp']]], + ['onstatus_3',['onStatus',['../app__httpd_8cpp.html#acc8d1122165362713f0823aeb3b25d1e',1,'onStatus(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#acc8d1122165362713f0823aeb3b25d1e',1,'onStatus(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onsystemstatus_4',['onSystemStatus',['../app__httpd_8cpp.html#a9a31c0a3ca52126629c612c494b8d3c6',1,'onSystemStatus(AsyncWebServerRequest *request): app_httpd.cpp'],['../app__httpd_8h.html#a9a31c0a3ca52126629c612c494b8d3c6',1,'onSystemStatus(AsyncWebServerRequest *request): app_httpd.cpp']]], + ['onwsevent_5',['onWsEvent',['../app__httpd_8cpp.html#a7064e9828984f378d3e04f9b7a47bcae',1,'onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len): app_httpd.cpp'],['../app__httpd_8h.html#a7064e9828984f378d3e04f9b7a47bcae',1,'onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len): app_httpd.cpp']]], + ['open_6',['open',['../class_c_l_storage.html#a867f099568b8c4f18f0135ad14260a01',1,'CLStorage']]] +]; diff --git a/Docs/html/search/functions_8.html b/Docs/html/search/functions_8.html new file mode 100644 index 00000000..ecf6a892 --- /dev/null +++ b/Docs/html/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_8.js b/Docs/html/search/functions_8.js new file mode 100644 index 00000000..3d3ced6d --- /dev/null +++ b/Docs/html/search/functions_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['parsebytes_0',['parseBytes',['../parsebytes_8cpp.html#a4d8e6d226a4ee77982a2810ca02a8b77',1,'parseBytes(const char *str, char sep, byte *bytes, int maxBytes, int base): parsebytes.cpp'],['../parsebytes_8h.html#a4d8e6d226a4ee77982a2810ca02a8b77',1,'parseBytes(const char *str, char sep, byte *bytes, int maxBytes, int base): parsebytes.cpp']]], + ['parseprefs_1',['parsePrefs',['../class_c_l_app_component.html#a7b23015c89977efd202896a19e7ca319',1,'CLAppComponent']]], + ['printlocaltime_2',['printLocalTime',['../class_c_l_app_conn.html#a9a4f24949950433f1672c3db6af49dde',1,'CLAppConn']]], + ['processor_3',['processor',['../app__httpd_8cpp.html#a0c021f9721c3b479757f8e1b40624b6c',1,'processor(const String &var): app_httpd.cpp'],['../app__httpd_8h.html#a0c021f9721c3b479757f8e1b40624b6c',1,'processor(const String &var): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/functions_9.html b/Docs/html/search/functions_9.html new file mode 100644 index 00000000..cd70e2b7 --- /dev/null +++ b/Docs/html/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_9.js b/Docs/html/search/functions_9.js new file mode 100644 index 00000000..b38b2b0e --- /dev/null +++ b/Docs/html/search/functions_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['readfiletostring_0',['readFileToString',['../class_c_l_storage.html#a837b93ce2190684b5f17cc5b9da6f6ba',1,'CLStorage']]], + ['readjsonintval_1',['readJsonIntVal',['../class_c_l_app_component.html#aae2aee9e4a8001900d8b380adb66a8e3',1,'CLAppComponent']]], + ['releasebuffer_2',['releaseBuffer',['../class_c_l_app_cam.html#aaf9c6d7306c5122eb6766011b8fc4c4c',1,'CLAppCam']]], + ['remove_3',['remove',['../class_c_l_storage.html#afa5139f3590aba42b3de2c8e1786a43b',1,'CLStorage']]], + ['removeprefs_4',['removePrefs',['../class_c_l_app_component.html#af763174f3eed76761a2eeab9aa845e6a',1,'CLAppComponent']]] +]; diff --git a/Docs/html/search/functions_a.html b/Docs/html/search/functions_a.html new file mode 100644 index 00000000..d2a3de90 --- /dev/null +++ b/Docs/html/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_a.js b/Docs/html/search/functions_a.js new file mode 100644 index 00000000..b073fdbc --- /dev/null +++ b/Docs/html/search/functions_a.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['saveprefs_0',['savePrefs',['../class_c_l_app_cam.html#a0f2bc29dea9609204871b7b5bc281c4f',1,'CLAppCam::savePrefs()'],['../class_c_l_app_component.html#a31a25b7869113a15e18f34b2c690189a',1,'CLAppComponent::savePrefs()'],['../class_c_l_app_conn.html#ace5a052d85379ece71207129edc2a0f1',1,'CLAppConn::savePrefs()']]], + ['serialsendcommand_1',['serialSendCommand',['../class_c_l_app_httpd.html#a36be0ed79de4194e8d00b026fd4be4d0',1,'CLAppHttpd']]], + ['setautolamp_2',['setAutoLamp',['../class_c_l_app_cam.html#aa5bd4f968fd8345d3d2a5d8a121586c3',1,'CLAppCam']]], + ['setdebugmode_3',['setDebugMode',['../class_c_l_app_component.html#a9ab4a575691522178eb10d9bffcff5b7',1,'CLAppComponent']]], + ['seterr_4',['setErr',['../class_c_l_app_component.html#a9565596ad1c588c05e349d92b2476e40',1,'CLAppComponent']]], + ['setframerate_5',['setFrameRate',['../class_c_l_app_cam.html#a6581e369883546817a1edaedf4af1734',1,'CLAppCam']]], + ['setlamp_6',['setLamp',['../class_c_l_app_cam.html#a8cab0636ce5e566a7b89016c477aec2b',1,'CLAppCam']]], + ['setrotation_7',['setRotation',['../class_c_l_app_cam.html#a27d4c05b87660b0e04b6a8902f0f173e',1,'CLAppCam']]], + ['setstreammode_8',['setStreamMode',['../class_c_l_app_httpd.html#a40005188d09a72002252fd4b6e2cd2b9',1,'CLAppHttpd']]], + ['settag_9',['setTag',['../class_c_l_app_component.html#a75a706c37e31c3083c845d304e3a519b',1,'CLAppComponent']]], + ['setxclk_10',['setXclk',['../class_c_l_app_cam.html#a9ccd0763eb8eeb559b46e747df25d268',1,'CLAppCam']]], + ['snaptobufer_11',['snapToBufer',['../class_c_l_app_cam.html#a89a7a39bd89130cab06fd7139fc9b6d9',1,'CLAppCam']]], + ['snaptostream_12',['snapToStream',['../class_c_l_app_httpd.html#a4e52f72c1d20cf6420e2f17b0b521da4',1,'CLAppHttpd']]], + ['start_13',['start',['../class_c_l_app_cam.html#af277f42041c7c0a561bd8c8b087f4b3a',1,'CLAppCam::start()'],['../class_c_l_app_component.html#a7e64a4c55bd1f3216c507101835392b5',1,'CLAppComponent::start()'],['../class_c_l_app_conn.html#a75a0c8c0ab160691ecf58e3c4ad58951',1,'CLAppConn::start()'],['../class_c_l_app_httpd.html#aaf8a95884768b7ac3e1c04ea041ee514',1,'CLAppHttpd::start()']]], + ['startstream_14',['startStream',['../class_c_l_app_httpd.html#af836002eda44f3e400af0808bf9046c1',1,'CLAppHttpd']]], + ['stop_15',['stop',['../class_c_l_app_cam.html#a8f1da94b3efb536a15419e5983fcac81',1,'CLAppCam::stop()'],['../class_c_l_app_conn.html#ab0a56d0491f5fd3fdce6028447183a25',1,'CLAppConn::stop()']]], + ['stopstream_16',['stopStream',['../class_c_l_app_httpd.html#a4889a2a7ee9a0e5ab558b64983249e46',1,'CLAppHttpd']]] +]; diff --git a/Docs/html/search/functions_b.html b/Docs/html/search/functions_b.html new file mode 100644 index 00000000..e6f34bb2 --- /dev/null +++ b/Docs/html/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_b.js b/Docs/html/search/functions_b.js new file mode 100644 index 00000000..4248ec10 --- /dev/null +++ b/Docs/html/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['temprature_5fsens_5fread_0',['temprature_sens_read',['../app__httpd_8h.html#a2188b2e5ed72e93782e0a6d59111a180',1,'app_httpd.h']]] +]; diff --git a/Docs/html/search/functions_c.html b/Docs/html/search/functions_c.html new file mode 100644 index 00000000..87b4ce26 --- /dev/null +++ b/Docs/html/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_c.js b/Docs/html/search/functions_c.js new file mode 100644 index 00000000..05f2a22c --- /dev/null +++ b/Docs/html/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['updatesnaptimer_0',['updateSnapTimer',['../class_c_l_app_httpd.html#a58f5ed0635650911e1540f138df24b29',1,'CLAppHttpd']]] +]; diff --git a/Docs/html/search/functions_d.html b/Docs/html/search/functions_d.html new file mode 100644 index 00000000..ada2b817 --- /dev/null +++ b/Docs/html/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/functions_d.js b/Docs/html/search/functions_d.js new file mode 100644 index 00000000..1fe1fee8 --- /dev/null +++ b/Docs/html/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wifistatus_0',['wifiStatus',['../class_c_l_app_conn.html#a790ba7c0b56edae2de159abf29f0127b',1,'CLAppConn']]] +]; diff --git a/Docs/html/search/mag_sel.svg b/Docs/html/search/mag_sel.svg new file mode 100644 index 00000000..03626f64 --- /dev/null +++ b/Docs/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/Docs/html/search/nomatches.html b/Docs/html/search/nomatches.html new file mode 100644 index 00000000..2b9360b6 --- /dev/null +++ b/Docs/html/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Docs/html/search/pages_0.html b/Docs/html/search/pages_0.html new file mode 100644 index 00000000..e53c280e --- /dev/null +++ b/Docs/html/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/pages_0.js b/Docs/html/search/pages_0.js new file mode 100644 index 00000000..57ac6e8a --- /dev/null +++ b/Docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['basic_20http_20commands_3b_0',['Basic HTTP Commands;',['../md__a_p_i.html',1,'']]] +]; diff --git a/Docs/html/search/pages_1.html b/Docs/html/search/pages_1.html new file mode 100644 index 00000000..73d9bb19 --- /dev/null +++ b/Docs/html/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/pages_1.js b/Docs/html/search/pages_1.js new file mode 100644 index 00000000..4e5a92ee --- /dev/null +++ b/Docs/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['contributing_20to_20esp32_2dcam_20revisited_0',['Contributing to ESP32-CAM revisited',['../md__c_o_n_t_r_i_b_u_t_i_n_g.html',1,'']]] +]; diff --git a/Docs/html/search/pages_2.html b/Docs/html/search/pages_2.html new file mode 100644 index 00000000..023a2618 --- /dev/null +++ b/Docs/html/search/pages_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/pages_2.js b/Docs/html/search/pages_2.js new file mode 100644 index 00000000..34c26914 --- /dev/null +++ b/Docs/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['esp32_2dcam_20webcam_20server_20_26nbsp_3b_26nbsp_3b_26nbsp_3b_20_20_26nbsp_3b_26nbsp_3b_0',['ESP32-CAM WebCam Server &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;',['../index.html',1,'']]] +]; diff --git a/Docs/html/search/search.css b/Docs/html/search/search.css new file mode 100644 index 00000000..648a792f --- /dev/null +++ b/Docs/html/search/search.css @@ -0,0 +1,263 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 19px; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Docs/html/search/search.js b/Docs/html/search/search.js new file mode 100644 index 00000000..ac8055d1 --- /dev/null +++ b/Docs/html/search/search.js @@ -0,0 +1,794 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var width = 400; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/Docs/html/search/search_r.png b/Docs/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/Docs/html/search/searchdata.js b/Docs/html/search/searchdata.js new file mode 100644 index 00000000..f8ab6fa5 --- /dev/null +++ b/Docs/html/search/searchdata.js @@ -0,0 +1,39 @@ +var indexSectionsWithContent = +{ + 0: "abcdeghilmnoprstuw", + 1: "csu", + 2: "acprs", + 3: "cdeghiloprstuw", + 4: "adginpsu", + 5: "c", + 6: "c", + 7: "bclmnsw", + 8: "bce" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "enums", + 6: "enumvalues", + 7: "defines", + 8: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Data Structures", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Enumerations", + 6: "Enumerator", + 7: "Macros", + 8: "Pages" +}; + diff --git a/Docs/html/search/variables_0.html b/Docs/html/search/variables_0.html new file mode 100644 index 00000000..950bfc5f --- /dev/null +++ b/Docs/html/search/variables_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_0.js b/Docs/html/search/variables_0.js new file mode 100644 index 00000000..a14d6d95 --- /dev/null +++ b/Docs/html/search/variables_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['appcam_0',['AppCam',['../app__cam_8cpp.html#a2c40f09444d86a4ed61c53c20f0c9825',1,'AppCam(): app_cam.cpp'],['../app__cam_8h.html#a2c40f09444d86a4ed61c53c20f0c9825',1,'AppCam(): app_cam.cpp']]], + ['appconn_1',['AppConn',['../app__conn_8cpp.html#a3fca6c2df3835192bdadfe6edde1e63b',1,'AppConn(): app_conn.cpp'],['../app__conn_8h.html#a3fca6c2df3835192bdadfe6edde1e63b',1,'AppConn(): app_conn.cpp']]], + ['apphttpd_2',['AppHttpd',['../app__httpd_8cpp.html#a0174a427778b574c2447cf5d8568f986',1,'AppHttpd(): app_httpd.cpp'],['../app__httpd_8h.html#a0174a427778b574c2447cf5d8568f986',1,'AppHttpd(): app_httpd.cpp']]] +]; diff --git a/Docs/html/search/variables_1.html b/Docs/html/search/variables_1.html new file mode 100644 index 00000000..fed58a5d --- /dev/null +++ b/Docs/html/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_1.js b/Docs/html/search/variables_1.js new file mode 100644 index 00000000..1a6a8e80 --- /dev/null +++ b/Docs/html/search/variables_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['dhcp_0',['dhcp',['../struct_station.html#aae4e91ca19c2b2b799ca20891f95c651',1,'Station']]], + ['dns1_1',['dns1',['../struct_static_i_p.html#a6257a5707d2a75fa38ef9d5064eb792d',1,'StaticIP']]], + ['dns2_2',['dns2',['../struct_static_i_p.html#a61e727e8a383392a7f36820a22f1628d',1,'StaticIP']]] +]; diff --git a/Docs/html/search/variables_2.html b/Docs/html/search/variables_2.html new file mode 100644 index 00000000..761c194a --- /dev/null +++ b/Docs/html/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_2.js b/Docs/html/search/variables_2.js new file mode 100644 index 00000000..68d8dfd8 --- /dev/null +++ b/Docs/html/search/variables_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gateway_0',['gateway',['../struct_static_i_p.html#a6bd38cab74299d715d64d1ea5a369913',1,'StaticIP']]] +]; diff --git a/Docs/html/search/variables_3.html b/Docs/html/search/variables_3.html new file mode 100644 index 00000000..78bfe03b --- /dev/null +++ b/Docs/html/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_3.js b/Docs/html/search/variables_3.js new file mode 100644 index 00000000..41bb19a3 --- /dev/null +++ b/Docs/html/search/variables_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ip_0',['ip',['../struct_static_i_p.html#a4cba6eec0917a4f531e3285d9e5f8529',1,'StaticIP']]] +]; diff --git a/Docs/html/search/variables_4.html b/Docs/html/search/variables_4.html new file mode 100644 index 00000000..4d608da1 --- /dev/null +++ b/Docs/html/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_4.js b/Docs/html/search/variables_4.js new file mode 100644 index 00000000..9356c1c8 --- /dev/null +++ b/Docs/html/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['netmask_0',['netmask',['../struct_static_i_p.html#ad8221b5210f6692fbeffb6735495a930',1,'StaticIP']]] +]; diff --git a/Docs/html/search/variables_5.html b/Docs/html/search/variables_5.html new file mode 100644 index 00000000..6342402d --- /dev/null +++ b/Docs/html/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_5.js b/Docs/html/search/variables_5.js new file mode 100644 index 00000000..d73e62f3 --- /dev/null +++ b/Docs/html/search/variables_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['password_0',['password',['../struct_station.html#adfce66aab835659fef7ab8501def3867',1,'Station']]], + ['path_1',['path',['../struct_uri_mapping.html#a28b0be3b16e0a3d7f7bd4ecff420fa4f',1,'UriMapping']]] +]; diff --git a/Docs/html/search/variables_6.html b/Docs/html/search/variables_6.html new file mode 100644 index 00000000..80db039f --- /dev/null +++ b/Docs/html/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_6.js b/Docs/html/search/variables_6.js new file mode 100644 index 00000000..b58281a4 --- /dev/null +++ b/Docs/html/search/variables_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ssid_0',['ssid',['../struct_station.html#ad635bfe5333139b2596ace399fe5054e',1,'Station']]], + ['storage_1',['Storage',['../storage_8cpp.html#a47c5a522666eb276db609c3d8049238a',1,'Storage(): storage.cpp'],['../storage_8h.html#a47c5a522666eb276db609c3d8049238a',1,'Storage(): storage.cpp']]] +]; diff --git a/Docs/html/search/variables_7.html b/Docs/html/search/variables_7.html new file mode 100644 index 00000000..bf8eb384 --- /dev/null +++ b/Docs/html/search/variables_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Docs/html/search/variables_7.js b/Docs/html/search/variables_7.js new file mode 100644 index 00000000..94570bb5 --- /dev/null +++ b/Docs/html/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['uri_0',['uri',['../struct_uri_mapping.html#a9ce212b0da4d58af1f79b5476b68a7e8',1,'UriMapping']]] +]; diff --git a/Docs/html/splitbar.png b/Docs/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/Docs/html/storage_8cpp.html b/Docs/html/storage_8cpp.html new file mode 100644 index 00000000..fcae76a0 --- /dev/null +++ b/Docs/html/storage_8cpp.html @@ -0,0 +1,104 @@ + + + + + + + +ESP32 WebCam Server: src/storage.cpp File Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    storage.cpp File Reference
    +
    +
    +
    #include "storage.h"
    +
    + + + +

    +Variables

    CLStorage Storage
     
    +

    Variable Documentation

    + +

    ◆ Storage

    + +
    +
    + + + + +
    CLStorage Storage
    +
    + +
    +
    +
    + + + + diff --git a/Docs/html/storage_8h.html b/Docs/html/storage_8h.html new file mode 100644 index 00000000..9b6da6aa --- /dev/null +++ b/Docs/html/storage_8h.html @@ -0,0 +1,176 @@ + + + + + + + +ESP32 WebCam Server: src/storage.h File Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    storage.h File Reference
    +
    +
    +
    #include <FS.h>
    +#include "app_config.h"
    +#include "SD_MMC.h"
    +
    +

    Go to the source code of this file.

    + + + + + +

    +Data Structures

    class  CLStorage
     Storage Manager Encapsulates access to the file system, which can be either external (SD card) or internal (LittleFS). More...
     
    + + + + + + + +

    +Macros

    #define STORAGE_UNITS_BT   0
     
    #define STORAGE_UNITS_MB   2
     
    #define STORAGE_UNITS   STORAGE_UNITS_MB
     
    + + + +

    +Variables

    CLStorage Storage
     
    +

    Macro Definition Documentation

    + +

    ◆ STORAGE_UNITS

    + +
    +
    + + + + +
    #define STORAGE_UNITS   STORAGE_UNITS_MB
    +
    + +
    +
    + +

    ◆ STORAGE_UNITS_BT

    + +
    +
    + + + + +
    #define STORAGE_UNITS_BT   0
    +
    + +
    +
    + +

    ◆ STORAGE_UNITS_MB

    + +
    +
    + + + + +
    #define STORAGE_UNITS_MB   2
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ Storage

    + +
    +
    + + + + + +
    + + + + +
    CLStorage Storage
    +
    +extern
    +
    + +
    +
    +
    + + + + diff --git a/Docs/html/storage_8h_source.html b/Docs/html/storage_8h_source.html new file mode 100644 index 00000000..989f55b9 --- /dev/null +++ b/Docs/html/storage_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +ESP32 WebCam Server: src/storage.h Source File + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    storage.h
    +
    +
    +Go to the documentation of this file.
    1#ifndef storage_h
    +
    2#define storage_h
    +
    3
    +
    4#include <FS.h>
    +
    5
    +
    6#include "app_config.h"
    +
    7
    +
    8#define STORAGE_UNITS_BT 0
    +
    9#define STORAGE_UNITS_MB 2
    +
    10
    +
    11#ifdef USE_LittleFS
    +
    12#include <LITTLEFS.h>
    +
    13#define FORMAT_LITTLEFS_IF_FAILED true
    +
    14#define STORAGE_UNITS STORAGE_UNITS_BT
    +
    15#else
    +
    16#include "SD_MMC.h"
    +
    17#define STORAGE_UNITS STORAGE_UNITS_MB
    +
    18#endif
    +
    19
    +
    25class CLStorage {
    +
    26 public:
    +
    31 int readFileToString(char *path, String *s);
    +
    32
    +
    33 bool init();
    +
    34
    +
    38 void listDir(const char * dirname, uint8_t levels);
    +
    39
    +
    40 int getSize();
    +
    41 int getUsed();
    +
    42 int capacityUnits();
    +
    43
    +
    44 File open(const String &path, const char *mode = "r", const bool create = false) {return fsStorage->open(path, mode, create);};
    +
    45 bool exists(const String &path) {return fsStorage->exists(path);};
    +
    46 bool remove(const String &path) {return fsStorage->remove(path);};
    +
    47
    +
    48#ifdef USE_LittleFS
    +
    49 fs::LITTLEFSFS & getFS() {return *fsStorage;};
    +
    50#else
    +
    51 fs::SDMMCFS & getFS() {return *fsStorage;};
    +
    52#endif
    +
    53
    +
    54 private:
    +
    55#ifdef USE_LittleFS
    +
    56 fs::LITTLEFSFS * const fsStorage = &LITTLEFS;
    +
    57#else
    +
    58 fs::SDMMCFS * const fsStorage = &SD_MMC;
    +
    59#endif
    +
    60
    +
    61};
    +
    62
    +
    63extern CLStorage Storage;
    +
    64
    +
    65#endif
    + +
    Storage Manager Encapsulates access to the file system, which can be either external (SD card) or int...
    Definition: storage.h:25
    +
    fs::SDMMCFS & getFS()
    Definition: storage.h:51
    +
    int capacityUnits()
    Definition: storage.cpp:93
    +
    int getSize()
    Definition: storage.cpp:85
    +
    int readFileToString(char *path, String *s)
    Load a file to a String.
    Definition: storage.cpp:70
    +
    File open(const String &path, const char *mode="r", const bool create=false)
    Definition: storage.h:44
    +
    int getUsed()
    Definition: storage.cpp:89
    +
    bool exists(const String &path)
    Definition: storage.h:45
    +
    void listDir(const char *dirname, uint8_t levels)
    dumps the folder content to the Serial output.
    Definition: storage.cpp:3
    +
    bool init()
    Definition: storage.cpp:37
    +
    bool remove(const String &path)
    Definition: storage.h:46
    +
    CLStorage Storage
    Definition: storage.cpp:97
    +
    + + + + diff --git a/Docs/html/struct_static_i_p.html b/Docs/html/struct_static_i_p.html new file mode 100644 index 00000000..672020f7 --- /dev/null +++ b/Docs/html/struct_static_i_p.html @@ -0,0 +1,168 @@ + + + + + + + +ESP32 WebCam Server: StaticIP Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    StaticIP Struct Reference
    +
    +
    + +

    #include <app_conn.h>

    + + + + + + + + + + + + +

    +Data Fields

    IPAddress * ip
     
    IPAddress * netmask
     
    IPAddress * gateway
     
    IPAddress * dns1
     
    IPAddress * dns2
     
    +

    Field Documentation

    + +

    ◆ dns1

    + +
    +
    + + + + +
    IPAddress* StaticIP::dns1
    +
    + +
    +
    + +

    ◆ dns2

    + +
    +
    + + + + +
    IPAddress* StaticIP::dns2
    +
    + +
    +
    + +

    ◆ gateway

    + +
    +
    + + + + +
    IPAddress* StaticIP::gateway
    +
    + +
    +
    + +

    ◆ ip

    + +
    +
    + + + + +
    IPAddress* StaticIP::ip
    +
    + +
    +
    + +

    ◆ netmask

    + +
    +
    + + + + +
    IPAddress* StaticIP::netmask
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/Docs/html/struct_station.html b/Docs/html/struct_station.html new file mode 100644 index 00000000..521affc5 --- /dev/null +++ b/Docs/html/struct_station.html @@ -0,0 +1,136 @@ + + + + + + + +ESP32 WebCam Server: Station Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    Station Struct Reference
    +
    +
    + +

    #include <app_conn.h>

    + + + + + + + + +

    +Data Fields

    char ssid [64]
     
    char password [64]
     
    bool dhcp
     
    +

    Field Documentation

    + +

    ◆ dhcp

    + +
    +
    + + + + +
    bool Station::dhcp
    +
    + +
    +
    + +

    ◆ password

    + +
    +
    + + + + +
    char Station::password[64]
    +
    + +
    +
    + +

    ◆ ssid

    + +
    +
    + + + + +
    char Station::ssid[64]
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/Docs/html/struct_uri_mapping.html b/Docs/html/struct_uri_mapping.html new file mode 100644 index 00000000..ac7d8b1c --- /dev/null +++ b/Docs/html/struct_uri_mapping.html @@ -0,0 +1,125 @@ + + + + + + + +ESP32 WebCam Server: UriMapping Struct Reference + + + + + + + + + +
    +
    + + + + + + + +
    +
    ESP32 WebCam Server 5.0 +
    +
    Fully customizable WebCam server based on Espressif ESP32-based board with a camera.
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    UriMapping Struct Reference
    +
    +
    + +

    Static URI to path mapping. + More...

    + +

    #include <app_httpd.h>

    + + + + + + +

    +Data Fields

    char uri [32]
     
    char path [32]
     
    +

    Detailed Description

    +

    Static URI to path mapping.

    +

    Field Documentation

    + +

    ◆ path

    + +
    +
    + + + + +
    char UriMapping::path[32]
    +
    + +
    +
    + +

    ◆ uri

    + +
    +
    + + + + +
    char UriMapping::uri[32]
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/Docs/html/sync_off.png b/Docs/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/Docs/html/sync_on.png b/Docs/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/Docs/html/tab_a.png b/Docs/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/Docs/html/tab_b.png b/Docs/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/Docs/html/tabs.css b/Docs/html/tabs.css new file mode 100644 index 00000000..00d1c602 --- /dev/null +++ b/Docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..6c161912 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,2658 @@ +# Doxyfile 1.9.3 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "ESP32 WebCam Server" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 5.0 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = Fully customizable WebCam server based on Espressif ESP32-based board with a camera. + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = ./data/www/img/logo.svg + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./Docs + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = ino=C++ + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = YES + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ./ ./src/ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.l \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = README.md + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /
  • diff --git a/Docs/html/app__config_8h_source.html b/Docs/html/app__config_8h_source.html index 80a73c65..7e5b63a5 100644 --- a/Docs/html/app__config_8h_source.html +++ b/Docs/html/app__config_8h_source.html @@ -92,55 +92,47 @@
    19#define WIFI_WATCHDOG 15000
    20
    21/*
    -
    22 * Over The Air firmware updates can be disabled by uncommenting the folowing line
    -
    23 * When enabled the device will advertise itself using the MDNS_NAME defined above
    +
    22 * Additional Features
    +
    23 *
    24 */
    -
    25// #define NO_OTA
    -
    26
    -
    27/*
    -
    28 * Additional Features
    -
    29 *
    -
    30 */
    +
    25
    +
    26// Uncomment to disable the notification LED on the module
    +
    27// #define LED_DISABLE
    +
    28
    +
    29// Uncomment to disable the illumination lamp features
    +
    30// #define LAMP_DISABLE
    31
    -
    32
    -
    33
    -
    34// Uncomment to disable the notification LED on the module
    -
    35// #define LED_DISABLE
    -
    36
    -
    37// Uncomment to disable the illumination lamp features
    -
    38// #define LAMP_DISABLE
    +
    32// Uncomment this line to use LittleFS instead of SD.
    +
    33// NOTE!
    +
    34// LittleFS is still experimental, not recommended. The 'official' library installed from the Library Manager
    +
    35// seems to be broken, but fixed in this PR: https://github.com/lorol/LITTLEFS/pull/56
    +
    36// To install it, please navigate to you /libraries sub-folder of your sketch location and then execute
    +
    37// git clone https://github.com/Michael2MacDonald/LITTLEFS.
    +
    38// #define USE_LittleFS
    39
    -
    40// Uncomment this line to use LittleFS instead of SD.
    -
    41// NOTE!
    -
    42// LittleFS is still experimental, not recommended. The 'official' library installed from the Library Manager
    -
    43// seems to be broken, but fixed in this PR: https://github.com/lorol/LITTLEFS/pull/56
    -
    44// To install it, please navigate to you /libraries sub-folder of your sketch location and then execute
    -
    45// git clone https://github.com/Michael2MacDonald/LITTLEFS.
    -
    46// #define USE_LittleFS
    -
    47
    -
    48// Define the startup lamp power setting (as a percentage, defaults to 0%)
    -
    49// Saved user settings will override this
    -
    50// #define LAMP_DEFAULT 0
    -
    51
    -
    52/*
    -
    53 * Camera Hardware Selectiom
    -
    54 *
    -
    55 * You must uncomment one, and only one, of the lines below to select your board model.
    -
    56 * Remember to also select the board in the Boards Manager
    -
    57 * This is not optional
    -
    58 */
    -
    59#define CAMERA_MODEL_AI_THINKER // default
    -
    60// #define CAMERA_MODEL_WROVER_KIT
    -
    61// #define CAMERA_MODEL_ESP_EYE
    -
    62// #define CAMERA_MODEL_M5STACK_PSRAM
    -
    63// #define CAMERA_MODEL_M5STACK_V2_PSRAM
    -
    64// #define CAMERA_MODEL_M5STACK_WIDE
    -
    65// #define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM
    -
    66// #define CAMERA_MODEL_TTGO_T_JOURNAL
    -
    67// #define CAMERA_MODEL_ARDUCAM_ESP32S_UNO
    -
    68
    -
    69
    -
    70#endif
    +
    40// Define the startup lamp power setting (as a percentage, defaults to 0%)
    +
    41// Saved user settings will override this
    +
    42// #define LAMP_DEFAULT 0
    +
    43
    +
    44/*
    +
    45 * Camera Hardware Selectiom
    +
    46 *
    +
    47 * You must uncomment one, and only one, of the lines below to select your board model.
    +
    48 * Remember to also select the board in the Boards Manager
    +
    49 * This is not optional
    +
    50 */
    +
    51#define CAMERA_MODEL_AI_THINKER // default
    +
    52// #define CAMERA_MODEL_WROVER_KIT
    +
    53// #define CAMERA_MODEL_ESP_EYE
    +
    54// #define CAMERA_MODEL_M5STACK_PSRAM
    +
    55// #define CAMERA_MODEL_M5STACK_V2_PSRAM
    +
    56// #define CAMERA_MODEL_M5STACK_WIDE
    +
    57// #define CAMERA_MODEL_M5STACK_ESP32CAM // Originally: CAMERA_MODEL_M5STACK_NO_PSRAM
    +
    58// #define CAMERA_MODEL_TTGO_T_JOURNAL
    +
    59// #define CAMERA_MODEL_ARDUCAM_ESP32S_UNO
    +
    60
    +
    61
    +
    62#endif

    ;}0zW2=@*Il+Mks)hI^J_{vfqD?hWCNL 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

    #define MAX_KNOWN_STATIONS   5   -#define NTPSERVER   "pool.ntp.org" -  -#define NTP_GMT_OFFSET   14400 -  -#define NTP_DST_OFFSET   0 -  + + + +

    +Enumerations

    enum  StaticIPField {
    +  IP +, NETMASK +, GATEWAY +, DNS1 +,
    +  DNS2 +
    + }
     
    @@ -130,45 +138,25 @@

    -

    ◆ NTP_DST_OFFSET

    - -
    -
    -

    Variables

    - - - -
    #define NTP_DST_OFFSET   0
    -
    - -
    - - -

    ◆ NTP_GMT_OFFSET

    +

    Enumeration Type Documentation

    + +

    ◆ StaticIPField

    - - -
    #define NTP_GMT_OFFSET   14400
    -
    - -
    -
    - -

    ◆ NTPSERVER

    - -
    -
    - - - +
    #define NTPSERVER   "pool.ntp.org"enum StaticIPField
    + + + + + + +
    Enumerator
    IP 
    NETMASK 
    GATEWAY 
    DNS1 
    DNS2 
    diff --git a/Docs/html/app__conn_8h_source.html b/Docs/html/app__conn_8h_source.html index b4edd93e..b83a33a3 100644 --- a/Docs/html/app__conn_8h_source.html +++ b/Docs/html/app__conn_8h_source.html @@ -87,154 +87,201 @@
    14
    15#define MAX_KNOWN_STATIONS 5
    16
    -
    17/* NTP
    -
    18 * Uncomment the following to enable the on-board clock
    -
    19 * Pick a nearby pool server from: https://www.ntppool.org/zone/@
    -
    20 * Set the GMT offset to match your timezone IN SECONDS;
    -
    21 * see https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
    -
    22 * 1hr = 3600 seconds; do the math ;-)
    -
    23 * Default is CET (Central European Time), eg GMT + 1hr
    -
    24 * The DST offset is usually 1 hour (again, in seconds) if used in your country.
    -
    25 */
    -
    26#define NTPSERVER "pool.ntp.org"
    -
    27#define NTP_GMT_OFFSET 14400
    -
    28#define NTP_DST_OFFSET 0
    -
    29
    -
    34struct Station { char ssid[64]; char password[64]; bool dhcp;};
    -
    35
    -
    40struct StaticIP { IPAddress *ip; IPAddress *netmask; IPAddress *gateway; IPAddress *dns1; IPAddress *dns2; };
    -
    41
    -
    47class CLAppConn : public CLAppComponent {
    -
    48 public:
    -
    49 CLAppConn();
    +
    21struct Station { char ssid[64]; char password[64]; };
    +
    22
    +
    27struct StaticIP { IPAddress *ip; IPAddress *netmask; IPAddress *gateway; IPAddress *dns1; IPAddress *dns2; };
    +
    28
    + +
    30
    +
    36class CLAppConn : public CLAppComponent {
    +
    37 public:
    +
    38 CLAppConn();
    +
    39
    +
    40 int loadPrefs();
    +
    41 int savePrefs();
    +
    42 int start();
    +
    43 bool stop() {return WiFi.disconnect();};
    +
    44
    +
    45 void startOTA();
    +
    46 void handleOTA() {if(otaEnabled) ArduinoOTA.handle();};
    +
    47 bool isOTAEnabled() {return otaEnabled;};
    +
    48 void setOTAEnabled(bool val) {otaEnabled = val;};
    +
    49 void setOTAPassword(const char * str) {snprintf(otaPassword, sizeof(otaPassword), str);};
    50
    -
    51 int loadPrefs();
    -
    52 int savePrefs();
    -
    53 int start();
    -
    54 bool stop() {return WiFi.disconnect();};
    +
    51 void configMDNS();
    +
    52 void handleDNSRequest(){if (captivePortal) dnsServer.processNextRequest();};
    +
    53 char * getMDNSname() {return mdnsName;};
    +
    54 void setMDNSName(const char * str) {snprintf(mdnsName, sizeof(mdnsName), str);};
    55
    -
    56 void enableOTA(bool enable = true);
    -
    57 void handleOTA() {if(otaEnabled) ArduinoOTA.handle();};
    -
    58
    -
    59 void configMDNS();
    -
    60 void handleDNSRequest(){if (captivePortal) dnsServer.processNextRequest();};
    -
    61
    -
    62 void configNTP();
    +
    56 void configNTP();
    +
    57 char * getNTPServer() { return ntpServer;};
    +
    58 void setNTPServer(const char * str) {snprintf(ntpServer, sizeof(ntpServer), str);};
    +
    59 long getGmtOffset_sec() {return gmtOffset_sec;};
    +
    60 void setGmtOffset_sec(long sec) {gmtOffset_sec = sec;};
    +
    61 int getDaylightOffset_sec() {return daylightOffset_sec;};
    +
    62 void setDaylightOffset_sec(int sec) {daylightOffset_sec = sec;};
    63
    -
    64 char * getNTPServer() { return ntpServer;};
    -
    65 long getGmtOffset_sec() {return gmtOffset_sec;};
    -
    66 int getDaylightOffset_sec() {return daylightOffset_sec;};
    +
    64 char * getSSID() {return ssid;};
    +
    65 void setSSID(const char * str) {snprintf(ssid, sizeof(ssid), str);};
    +
    66 void setPassword(const char * str) {snprintf(password, sizeof(password), str);};;
    67
    -
    68 bool isOTAEnabled() {return otaEnabled;};
    -
    69
    -
    70 wl_status_t wifiStatus() {return (accesspoint?ap_status:WiFi.status());};
    -
    71
    -
    72 char * getHTTPUrl(){ return httpURL;};
    -
    73 char * getStreamUrl(){ return streamURL;};
    -
    74 int getPort() {return httpPort;};
    -
    75
    -
    76 char * getApName() {return apName;};
    -
    77
    -
    78 bool isAccessPoint() {return accesspoint;};
    -
    79 bool isCaptivePortal() {return captivePortal;};
    -
    80
    -
    81 char * getLocalTimeStr();
    -
    82 char * getUpTimeStr();
    -
    83 void printLocalTime(bool extraData=false);
    -
    84
    -
    85 private:
    -
    86 void calcURLs();
    -
    87
    -
    88 // Known networks structure. Max number of known stations limited for memory considerations
    -
    89 Station *stationList[MAX_KNOWN_STATIONS];
    -
    90 int stationCount = 0;
    +
    68 bool isDHCPEnabled() {return dhcp;};
    +
    69 void setDHCPEnabled(bool val) {dhcp = val;};
    +
    70 StaticIP * getStaticIP() {return &staticIP;};
    +
    71 void setStaticIP(IPAddress ** address, const char * strval);
    +
    72
    +
    73 wl_status_t wifiStatus() {return (accesspoint?ap_status:WiFi.status());};
    +
    74
    +
    75 char * getHTTPUrl(){ return httpURL;};
    +
    76 char * getStreamUrl(){ return streamURL;};
    +
    77 int getPort() {return httpPort;};
    +
    78 void setPort(int port) {httpPort = port;};
    +
    79
    +
    80 char * getApName() {return apName;};
    +
    81 void setApName(const char * str) {snprintf(apName, sizeof(apName), str);};
    +
    82 void setApPass(const char * str) {snprintf(apPass, sizeof(apPass), str);};
    +
    83
    +
    84 bool isAccessPoint() {return accesspoint;};
    +
    85 void setAccessPoint(bool val) {accesspoint = val;};
    +
    86 bool getAPDHCP() {return ap_dhcp;};
    +
    87 void setAPDHCP(bool val) {ap_dhcp = val;};
    +
    88 StaticIP * getAPIP() {return &apIP;};
    +
    89 int getAPChannel() {return ap_channel;};
    +
    90 void setAPChannel(int channel) {ap_channel = channel;};
    91
    -
    92 // Static IP structure
    -
    93 StaticIP staticIP;
    -
    94
    -
    95 char mdnsName[20];
    -
    96
    -
    97 bool accesspoint = false;
    -
    98 char apName[20];
    -
    99 char apPass[20];
    -
    100 int ap_channel=1;
    -
    101 StaticIP apIP;
    -
    102 bool ap_dhcp=true;
    -
    103 wl_status_t ap_status = WL_DISCONNECTED;
    -
    104
    -
    105 // DNS server
    -
    106 const byte DNS_PORT = 53;
    -
    107 DNSServer dnsServer;
    -
    108 bool captivePortal = false;
    -
    109
    -
    110 // HOST_NAME
    -
    111 char hostName[64]="";
    -
    112
    -
    113 // The app and stream URLs (initialized during WiFi setup)
    -
    114 char httpURL[64];
    -
    115 char streamURL[64];
    +
    92 bool isCaptivePortal() {return captivePortal;};
    +
    93
    +
    94 char * getLocalTimeStr();
    +
    95 char * getUpTimeStr();
    +
    96 void printLocalTime(bool extraData=false);
    +
    97
    +
    98
    +
    99 private:
    +
    100 int getSSIDIndex();
    +
    101 void calcURLs();
    +
    102 void readIPFromJSON(jparse_ctx_t * context, IPAddress ** ip_address, char * token);
    +
    103
    +
    104 // Known networks structure. Max number of known stations limited for memory considerations
    +
    105 Station *stationList[MAX_KNOWN_STATIONS];
    +
    106 // number of known stations
    +
    107 int stationCount = 0;
    +
    108
    +
    109 // Static IP structure
    +
    110 StaticIP staticIP;
    +
    111
    +
    112 bool dhcp=false;
    +
    113
    +
    114 char ssid[64];
    +
    115 char password[64];
    116
    -
    117 // HTTP Port. Can be overriden during IP setup
    -
    118 int httpPort = 80;
    -
    119
    -
    120 // OTA parameters
    -
    121 bool otaEnabled = false;
    -
    122 char otaPassword[20] = "";
    -
    123
    -
    124 // NTP parameters
    -
    125 char ntpServer[20] = NTPSERVER;
    -
    126 long gmtOffset_sec = NTP_GMT_OFFSET;
    -
    127 int daylightOffset_sec = NTP_DST_OFFSET;
    -
    128
    -
    129};
    -
    130
    -
    131extern CLAppConn AppConn;
    -
    132
    -
    133#endif
    +
    117 char mdnsName[20];
    +
    118
    +
    119 bool accesspoint = false;
    +
    120 char apName[20];
    +
    121 char apPass[20];
    +
    122 int ap_channel=1;
    +
    123 StaticIP apIP;
    +
    124 bool ap_dhcp=true;
    +
    125 wl_status_t ap_status = WL_DISCONNECTED;
    +
    126
    +
    127 // DNS server
    +
    128 const byte DNS_PORT = 53;
    +
    129 DNSServer dnsServer;
    +
    130 bool captivePortal = false;
    +
    131
    +
    132 // HOST_NAME
    +
    133 char hostName[64]="";
    +
    134
    +
    135 // The app and stream URLs (initialized during WiFi setup)
    +
    136 char httpURL[64];
    +
    137 char streamURL[64];
    +
    138
    +
    139 // HTTP Port. Can be overriden during IP setup
    +
    140 int httpPort = 80;
    +
    141
    +
    142 // OTA parameters
    +
    143 bool otaEnabled = false;
    +
    144 char otaPassword[20] = "";
    +
    145
    +
    146 // NTP parameters
    +
    147 char ntpServer[20];
    +
    148 long gmtOffset_sec;
    +
    149 int daylightOffset_sec;
    +
    150
    +
    151};
    +
    152
    +
    153extern CLAppConn AppConn;
    +
    154
    +
    155#endif
    -
    #define NTP_GMT_OFFSET
    Definition: app_conn.h:27
    -
    #define NTP_DST_OFFSET
    Definition: app_conn.h:28
    -
    CLAppConn AppConn
    Definition: app_conn.cpp:385
    -
    #define NTPSERVER
    Definition: app_conn.h:26
    +
    CLAppConn AppConn
    Definition: app_conn.cpp:488
    #define MAX_KNOWN_STATIONS
    Definition: app_conn.h:15
    +
    StaticIPField
    Definition: app_conn.h:29
    +
    @ IP
    Definition: app_conn.h:29
    +
    @ NETMASK
    Definition: app_conn.h:29
    +
    @ DNS1
    Definition: app_conn.h:29
    +
    @ DNS2
    Definition: app_conn.h:29
    +
    @ GATEWAY
    Definition: app_conn.h:29
    Abstract root class for the appication components.
    Definition: app_component.h:14
    -
    Connection Manager This class manages everything related to connectivity of the application: WiFi,...
    Definition: app_conn.h:47
    -
    char * getUpTimeStr()
    Definition: app_conn.cpp:374
    -
    char * getNTPServer()
    Definition: app_conn.h:64
    -
    void configNTP()
    Definition: app_conn.cpp:352
    -
    void handleOTA()
    Definition: app_conn.h:57
    -
    char * getApName()
    Definition: app_conn.h:76
    -
    char * getStreamUrl()
    Definition: app_conn.h:73
    +
    Connection Manager This class manages everything related to connectivity of the application: WiFi,...
    Definition: app_conn.h:36
    +
    char * getUpTimeStr()
    Definition: app_conn.cpp:467
    +
    void setPort(int port)
    Definition: app_conn.h:78
    +
    char * getNTPServer()
    Definition: app_conn.h:57
    +
    void setApPass(const char *str)
    Definition: app_conn.h:82
    +
    void configNTP()
    Definition: app_conn.cpp:445
    +
    void setAccessPoint(bool val)
    Definition: app_conn.h:85
    +
    void setDHCPEnabled(bool val)
    Definition: app_conn.h:69
    +
    void handleOTA()
    Definition: app_conn.h:46
    +
    char * getApName()
    Definition: app_conn.h:80
    +
    void setApName(const char *str)
    Definition: app_conn.h:81
    +
    char * getStreamUrl()
    Definition: app_conn.h:76
    CLAppConn()
    Definition: app_conn.cpp:3
    -
    void enableOTA(bool enable=true)
    Definition: app_conn.cpp:276
    -
    int getPort()
    Definition: app_conn.h:74
    +
    void setStaticIP(IPAddress **address, const char *strval)
    Definition: app_conn.cpp:273
    +
    void setOTAPassword(const char *str)
    Definition: app_conn.h:49
    +
    char * getMDNSname()
    Definition: app_conn.h:53
    +
    int getAPChannel()
    Definition: app_conn.h:89
    +
    int getPort()
    Definition: app_conn.h:77
    +
    char * getSSID()
    Definition: app_conn.h:64
    int start()
    Definition: app_conn.cpp:7
    -
    wl_status_t wifiStatus()
    Definition: app_conn.h:70
    -
    bool isAccessPoint()
    Definition: app_conn.h:78
    -
    void handleDNSRequest()
    Definition: app_conn.h:60
    -
    void printLocalTime(bool extraData=false)
    Definition: app_conn.cpp:356
    -
    long getGmtOffset_sec()
    Definition: app_conn.h:65
    -
    bool stop()
    Definition: app_conn.h:54
    -
    void configMDNS()
    Definition: app_conn.cpp:338
    -
    bool isCaptivePortal()
    Definition: app_conn.h:79
    -
    int savePrefs()
    Definition: app_conn.cpp:271
    -
    char * getLocalTimeStr()
    Definition: app_conn.cpp:364
    -
    char * getHTTPUrl()
    Definition: app_conn.h:72
    -
    int loadPrefs()
    Definition: app_conn.cpp:179
    -
    int getDaylightOffset_sec()
    Definition: app_conn.h:66
    -
    bool isOTAEnabled()
    Definition: app_conn.h:68
    +
    wl_status_t wifiStatus()
    Definition: app_conn.h:73
    +
    bool isAccessPoint()
    Definition: app_conn.h:84
    +
    void setAPDHCP(bool val)
    Definition: app_conn.h:87
    +
    void handleDNSRequest()
    Definition: app_conn.h:52
    +
    StaticIP * getStaticIP()
    Definition: app_conn.h:70
    +
    void startOTA()
    Definition: app_conn.cpp:371
    +
    StaticIP * getAPIP()
    Definition: app_conn.h:88
    +
    bool isDHCPEnabled()
    Definition: app_conn.h:68
    +
    void printLocalTime(bool extraData=false)
    Definition: app_conn.cpp:449
    +
    long getGmtOffset_sec()
    Definition: app_conn.h:59
    +
    void setSSID(const char *str)
    Definition: app_conn.h:65
    +
    bool stop()
    Definition: app_conn.h:43
    +
    void configMDNS()
    Definition: app_conn.cpp:431
    +
    void setPassword(const char *str)
    Definition: app_conn.h:66
    +
    void setAPChannel(int channel)
    Definition: app_conn.h:90
    +
    void setMDNSName(const char *str)
    Definition: app_conn.h:54
    +
    bool isCaptivePortal()
    Definition: app_conn.h:92
    +
    int savePrefs()
    Definition: app_conn.cpp:287
    +
    char * getLocalTimeStr()
    Definition: app_conn.cpp:457
    +
    char * getHTTPUrl()
    Definition: app_conn.h:75
    +
    int loadPrefs()
    Definition: app_conn.cpp:185
    +
    void setNTPServer(const char *str)
    Definition: app_conn.h:58
    +
    void setDaylightOffset_sec(int sec)
    Definition: app_conn.h:62
    +
    void setOTAEnabled(bool val)
    Definition: app_conn.h:48
    +
    int getDaylightOffset_sec()
    Definition: app_conn.h:61
    +
    bool getAPDHCP()
    Definition: app_conn.h:86
    +
    bool isOTAEnabled()
    Definition: app_conn.h:47
    +
    void setGmtOffset_sec(long sec)
    Definition: app_conn.h:60
    -
    Static IP strcuture for configuring AP and WiFi parameters.
    Definition: app_conn.h:40
    -
    IPAddress * ip
    Definition: app_conn.h:40
    -
    IPAddress * dns2
    Definition: app_conn.h:40
    -
    IPAddress * dns1
    Definition: app_conn.h:40
    -
    IPAddress * gateway
    Definition: app_conn.h:40
    -
    IPAddress * netmask
    Definition: app_conn.h:40
    -
    WiFi connectivity details (SSID/password).
    Definition: app_conn.h:34
    -
    bool dhcp
    Definition: app_conn.h:34
    -
    char ssid[64]
    Definition: app_conn.h:34
    -
    char password[64]
    Definition: app_conn.h:34
    +
    Static IP strcuture for configuring AP and WiFi parameters.
    Definition: app_conn.h:27
    +
    IPAddress * ip
    Definition: app_conn.h:27
    +
    IPAddress * dns2
    Definition: app_conn.h:27
    +
    IPAddress * dns1
    Definition: app_conn.h:27
    +
    IPAddress * gateway
    Definition: app_conn.h:27
    +
    IPAddress * netmask
    Definition: app_conn.h:27
    +
    WiFi connectivity details (SSID/password).
    Definition: app_conn.h:21
    +
    char ssid[64]
    Definition: app_conn.h:21
    +
    char password[64]
    Definition: app_conn.h:21