From d42c36ca33df894199db6cc1a63646d0f449b7f9 Mon Sep 17 00:00:00 2001 From: Hieromon Ikasamo Date: Mon, 18 Feb 2019 18:19:29 +0900 Subject: [PATCH] Under the work of v0.9.7 documentation --- mkdocs.yml | 2 +- mkdocs/achandling.md | 63 +++++++++++++++++++ mkdocs/datatips.md | 105 ++++++++++++++++++++++++++++++++ mkdocs/images/aux_fsbrowser.gif | Bin 164821 -> 248651 bytes mkdocs/images/aux_pattern.gif | Bin 0 -> 41374 bytes mkdocs/js/gifffer.min.js | 2 +- mkdocs/menuize.md | 2 +- 7 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 mkdocs/datatips.md create mode 100644 mkdocs/images/aux_pattern.gif diff --git a/mkdocs.yml b/mkdocs.yml index f9ba1d1..14282ee 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -27,7 +27,7 @@ nav: - 'Something extra': apiextra.md - 'Examples' : - 'How to embed': howtoembed.md - - 'Tips for data retrieval': datatips.md + - 'Tips for data conversion': datatips.md - 'Constucting menu': menuize.md - 'FAQ' : faq.md - 'Change log' : changelog.md diff --git a/mkdocs/achandling.md b/mkdocs/achandling.md index de90479..ebad954 100644 --- a/mkdocs/achandling.md +++ b/mkdocs/achandling.md @@ -496,10 +496,67 @@ The [AutoConnectAux::loadElement](apiaux.md#loadelement) function overwrites its ### Check data against on submission +By giving a [pattern](apielements.md#pattern) to [AutoConnectInput](apielements.md#autoconenctinput), you can find errors in data styles while typing in custom Web pages. The pattern is specified by [regular expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions).[^2] If the value during input of AutoConnectInput does not match the regular expression specified in the pattern, its background color changes to pink. The following example shows the behavior when checking the IP address in the AutoConnectInput field. + +[^2]: The pattern of AutoConnectInput conforms to javascript specification. + + + +```json hl_lines="10" +{ + "title" : "Page-1", + "uri" : "/page1", + "menu" : true, + "element" : [ + { + "name" : "Server", + "type" : "ACInput", + "label": "Server address", + "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + } + ] +} +``` + ### Convert data to actually type ## Transitions of the custom Web pages +### Scope & Lifetime of AutoConnectAux + +The lifetime of AutoConnectAux and AutoConnectElements must remain in the period when the custom Web page can be manipulated. The implementation of the custom Web page inherits from requestHandler driven from ESP8266WebServer (WebServer for ESP32), so the instance of AutoConnectAux and AutoConnectElements must exist for the duration of effect of handleClient. The following example is incorrect for manipulating custom Web pages. Its AutoConnectAux instance will be destructed at the exit of the setup(). + +```cpp hl_lines="20" +#include +#include +#include + +static const auxPage[] PROGMEM = R"raw( +{ + "title": "Page-1", + "uri": "/page1", + "menu": true, + "element": [ + { "name":"Server", "type":"ACText", "label":"Server address" } + ] +} +)raw"; + +AutoConnect portal; + +void setup() { + // This declaration is wrong. + AutoConnectAux aux; + aux.load(auxPage); + portal.join(aux); + portal.begin(); +} + +void loop() { + portal.handleClient(); +} +``` + ### The URI of the custom Web pages The transition of the custom Web page follows the URI of the page, but the ESP8266WebServer class does not know the URI of an AutoConnectAux page. (Registering a custom Web page does not use the *ESP8266WebServer::on*/*WebServer::on* function.) Therefore ESP8266WebServer class does not detect its URI access. If you want to detect an http request to AutoConnectAux's custom Web page, you need to register its URI with the [AutoConnectAux::on](apiaux.md#on) function. @@ -528,3 +585,9 @@ The custom Web pages handler has the following restrictions. !!! hint "302 Redirect Alternatives" To transition from a custom Web page to a sketch owned page, execute the link function of JavaScript with the AutoConnectElement element. + + diff --git a/mkdocs/datatips.md b/mkdocs/datatips.md new file mode 100644 index 0000000..dd2e0ea --- /dev/null +++ b/mkdocs/datatips.md @@ -0,0 +1,105 @@ +## Convert AutoConnectElements value to actual data type + +The value of the AutoConnectElements field of the custom Web pages consists of String type for all. Sketches will need to convert them to the actual data type. And then if the data type required for processing in the sketch is not a String type, it is necessary to convert to String type when storing to the AutoConenctElements value. + +AutoConnect library does not provide the data conversion utility, and its function depends on Arduino language functions or functions of the type class. However, commonly used data conversion methods are generally similar. + +Here, represent examples the typical method for the data type conversion for the AutoConnectElements value of custom Web pages. + +### Integer + +Use [int()](https://www.arduino.cc/reference/en/language/variables/conversion/intcast/) or [toInt() of String](https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/toint/). + +```cpp +AutoConnectInput& input = aux.getElement("INPUT"); +int value = input.value.toInt(); +``` + +### Float + +Use [float()](https://www.arduino.cc/reference/en/language/variables/conversion/floatcast/) or [toFloat() of String](https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/tofloat/). + +```cpp +AutoConnectInput& input = aux.getElement("INPUT"); +float value = input.value.toFloat(); +``` + +### Date & Time + +The easiest way is to use the [Arduino Time Library](https://www.pjrc.com/teensy/td_libs_Time.html). Sketches must accommodate differences in date and time formats depending on the time zone. You can absorb the difference in DateTime format by using `sscanf` function.[^1] + +[^1]:It can not be used with the old Arduino core. + +```cpp +#include + +time_t tm; +int Year, Month, Day, Hour, Minute, Second; + +AutoConnectInput& input = aux.getElement("INPUT"); +sscanf(input.value.c_str(), "%d-%d-%d %d:%d:%d", &Year, &Month, &Day, &Hour, &Minute, &Second); +tm.Year = CalendarYrToTm(Year); +tm.Month = Month; +tm.Day = Day; +tm.Hour = Hour; +tm.Minute = Minute; +tm.Second = Second; +``` + +### IP adderss + +To convert a String to an IP address, use **IPAddress::fromString**. To stringize an instance of an IP address, use **IPAddress::toString**. + +```cpp +IPAddress ip; +AutoConnectInput& input aux.getElement("INPUT"); +ip.fromString(input.value); +input.value = ip.toString(); +``` + +## Validation for the value + +In order for data to be correctly converted from a string, the input data must be consistent with the format. How to implement strict validation in sketches depends on various perspectives and the power of tiny devices is not enough to implement a complete lexical analysis. But you can reduce the burden for data verification using the **pattern** of AutoConnectInput. + +By giving a [**pattern**](achandling.md#check-data-against-on-submission) to [AutoConnectInput](apielements.md#pattern), you can find errors in data styles while typing in custom Web pages. The pattern is specified by [**regular expression**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions). If the value during input of AutoConnectInput does not match the regular expression specified in the pattern, its background color changes to pink. Refer to [Handling the custom Web pages](achandling.md#check-data-against-on-submission) section. + +!!! caution "Regular Expressions for JavaScript" + Regular expressions specified in the AutoConnectInput pattern conforms to the [JavaScript specification](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions). + +Here, represent examples the typical regular expression for the input validation. + +### URL + +``` +^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ +``` + +### DNS hostname + +``` +^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$ +``` + +### email address [^1] + +``` +^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$ +``` + +### IP Address + +``` +^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ +``` + +### Date as MM/DD/YYYY [^2] + +``` +^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$ +``` + +!!! caution "Contain with backquote" + If that regular expression contains a backquote it must be escaped by backquote duplication. + +[^1]: This regular expression does not fully support the format of the e-mail address requested in [RFC5322](https://tools.ietf.org/html/rfc5322). +[^2]: This regular expression does not consider semantic constraints. It is not possible to detect errors that do not exist as actual dates. \ No newline at end of file diff --git a/mkdocs/images/aux_fsbrowser.gif b/mkdocs/images/aux_fsbrowser.gif index 30129930bda7834b5a1e18006d728d1c16fec017..c8b4c64c97c58cad716fcc1edf9392fb83a9107a 100644 GIT binary patch literal 248651 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%0D7@b$tWeWcPk{zM`(NyMNHu)qDTo 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