From 81a009de8a796d6f815eaf5bc9dbc4683055771b Mon Sep 17 00:00:00 2001 From: Martin Ger Date: Thu, 22 Feb 2018 09:36:42 +0100 Subject: [PATCH] added wifidisconnect --- SCRIPTING.md | 6 +++--- firmware/0x00000.bin | Bin 45376 -> 45360 bytes firmware/0x10000.bin | Bin 304172 -> 304316 bytes firmware/sha1sums | 4 ++-- user/lang.c | 23 ++++++++++++++++++++++- user/lang.h | 3 ++- user/user_main.c | 3 +++ 7 files changed, 32 insertions(+), 7 deletions(-) diff --git a/SCRIPTING.md b/SCRIPTING.md index a38298f..fd8285d 100644 --- a/SCRIPTING.md +++ b/SCRIPTING.md @@ -30,7 +30,7 @@ In general, scripts conform to the following BNF: ::= init | - wificonnect | + wificonnect | wifidisconnect | mqttconnect | timer | alarm | @@ -92,9 +92,9 @@ init This event happens once after restart of the script. All "config" parameters are applied, but typically WiFi is not yet up and no external nodes are connected. This is typically the clause where the initalization of variables and timers as well as subscriptions to topics on the local broker take place. ``` -wificonnect +wificonnect | wifidisconnect ``` -This event happens each time, the esp_uMQTT_broker (re-)connects as client to the WiFi and has received an IP address. +This event happens each time, the esp_uMQTT_broker (re-)connects as client to the WiFi and has received an IP address, resp. if it disconnects (tyically due to link loss). ``` mqttconnect diff --git a/firmware/0x00000.bin b/firmware/0x00000.bin index d90f18d7f3404a29ead222c954b0b47b5cffbeb0..307d6ec819f00e40b13ccac09a7d5480daf8c1cf 100644 GIT binary patch delta 5106 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 delta 5097 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 Hew6$d{eGkP diff --git a/firmware/0x10000.bin b/firmware/0x10000.bin index 3b6c6898d8d0eb3386c562cc8052303e31f08f64..54d380d1dc88b6ea9efc1e691cfe4a1082f12e96 100644 GIT binary patch delta 40862 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 delta 40798 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

!Ma; zLz=JL0QRw)@7TavV<;Zqz{dE0bV_*%kQ1ps^i6l5f_vSD!dWo&6@;Ga`zdSZ``#&~ zrHhpHCJc{+W@Rl9=vsKzr_7(Y@RgsUdtUI8Pq6_yi(mW{i{+`j_EU%&6S&_-78H7A55Q}s` z4AotkmQ9mHNPdW=iG^iaay{+Y%Xsr0;Lcz3*LGk6PvWO{ux_q}pzO79uXFdEEV}jU zZ|6=~E>H`rDty&zmE+WT{`9Jpm3+)jHi1ri!T0Qh3_S7$w<9@CdV!1K%tqZ_@DAUx zC9tcr?K=#(JN&QjuvM_gs(ue5X}J^Y zo@DL32UI`{*7HxS7?!K}eJk5TJM`pj4zRYoWH0ulOd`zRYTC#02uwLu>}SKsN^9!_ z%!FkqpKy>3Yi}8F3y;!&X3n+?LuVIPJ8WvWbg;+y!bxrT@q@tdnRVcgY%jr7#fq{0 z@`lw|%%GIkoewX8WYUo@EkU)~jputxz)0MTTr0({(LL+yrK}l&h@W?u$ppG<|2e|8 z(Z1vOf2}Nlk0@hR82`cL>;|KCiyM4TP)n;6l>*WzI!`{~CXaPj@=Z zk&!msa0WEsGuryg8PrBscKKGAC)ZD-xL6}8R?AuT7j+Fob%Nl!T3^76|N%GX+- zU1t5LYaw#u0lD}E+vVH`fDtMI`y#Hud#Uq8*%e)U;}NA z^*=X2D5Mjga0?5jKK$V=43ZZ-^fvpHoU@kS#vYf`1JJ76(dzLlyG9{Q-us=kq?W-} zr#lRnhxB~npNzv|z3or-j%)HCLB^U|2nO8p7x>aK{`fC;)wK#C_d!Dkte5U$@VQs6 zhozMWd)x}R<<{2s*;b0`AAZ2DQtGzDTJ#ulE-XTgvaz4ZQfqWAdxhwZ-3c;|;NLuf zJbIWrKg9~@J>K~#c!$J4e2QW65xS)Uh#P5bP37LiX$$&%^LpzzCTGf?1?>g-?5Ixn zhEld##7{fRYpJCRf5}B2gcmk^Z-n}{hp~q~4eIBddC1{n)73-ng5AG#4>{EPBec>gI4MDr*5bc_f9xU8 z#c8vPr(A=@oVDIdE)jy#q2{ugK3!;a@|BGQHahyZkQY+_MC*?&nL`1^S7t+~55G0QA&DOvV2t>m`3Vi}>m; zUKjZ-7p{lLo7W@%RNZDiu^j*;@Ye0+bw00&mEGTFk9q=CsExKq*PP?7dU=)`L4^h* zwAD`jmR=5|x>xvTdRcYtg|JY>CGnGbIZ7?dLeZ@-szG5tUW3(1C0sk9mVJ+R<($B6 z%I5NRsvM%5h8(~00jk`u-3oku1h*aT5Zr0Fn{Z?o4E?mVZd2v4B+ZhHVm+Yk80%?X z-cVo?Wl6eWSFl42y>+Y$Hrf+?B;C+|fScC~;GP1w+0sy8$fHO<_)4b1HSvjEQYYE- zoFsL;y}FQ8n0iQf^KW0$w^q7Owr^wXqn1yXmZSi0yMy8xMXk@jGtTSUUw)4(N(6k z=m%wJn%=xL-DiOMDBY8^K8L>3y!xFKYTDau@WA4^($5JqLWld!D%ZVl*W5%N;^|1} z+|RloTE?+a8Goyb+>7k7?&~7Q5%mZNwvp&zp{1<;Z=ER~$#ba%R>I=s>!gqMj8QIuT~GsGYm$#aO@CrP`9#1m zbU-ECMYwXfD{%H=yS*6yN37-q`5W9u=*4Ty@^)PfIqA+Ju8_|eA}^wr68`%T zP{sr6tf6u~qY9><6nVN1dI{4<%O}ZO*6w5EwZdxki3#8;X0A+>zor3Q`TmLWItbP& zljLpS!*!G7{&i@6 zH*!*qL2%fxHeS(*Zz-+DdNWggnUKxak<-CoiOzaxhHOJgzgYLoLeWIW@63@;z;HI- zJy%`>?|^you*itkf)=4QLtI9J%1E6(MhcgD?9wH9wM`h{_0JhqSETdhW%J~CSQ>TC zlA#*Hg=F+wmfRr%`nQ!P-CuU|eY*=;p@b_<2by6E9B2Q~m!auW)M0%=b4z#L qCtDWl`1EYKrJE&cU(;rU^}TGlx`X>F43Ce*#0ytoolzhUclm!Wx4zu~ diff --git a/firmware/sha1sums b/firmware/sha1sums index 9c9f835..a2bb9e1 100644 --- a/firmware/sha1sums +++ b/firmware/sha1sums @@ -1,2 +1,2 @@ -006758f605dad0af543519127a32d340648d0429 0x00000.bin -743f4b2d6048740d41be990bcef8c6cab8aee749 0x10000.bin +98ff2105dd36027e691991d4871d4ee0bb8bfdf8 0x00000.bin +bdedac73a8ac9b70a476213c10993d7b0f2de653 0x10000.bin diff --git a/user/lang.c b/user/lang.c index 74d46ca..0fdc373 100644 --- a/user/lang.c +++ b/user/lang.c @@ -533,6 +533,15 @@ int ICACHE_FLASH_ATTR parse_event(int next_token, bool * happend) { return next_token + 1; } + if (is_token(next_token, "wifidisconnect")) { + lang_debug("event wifidisconnect\r\n"); + + *happend = (interpreter_status == WIFI_DISCONNECT); + if (*happend) + lang_log("on wifidisconnect\r\n"); + return next_token + 1; + } + if (is_token(next_token, "topic")) { char *topic; int topic_len; @@ -646,7 +655,7 @@ int ICACHE_FLASH_ATTR parse_event(int next_token, bool * happend) { return next_token + 1; } #endif - return syntax_error(next_token, "'init', 'mqttconnect', 'topic', 'gpio_interrupt', 'serial', 'alarm', 'http_response', or 'timer' expected"); + return syntax_error(next_token, "event spec (like 'topic') expected"); } int ICACHE_FLASH_ATTR parse_action(int next_token, bool doit) { @@ -1892,6 +1901,18 @@ int ICACHE_FLASH_ATTR interpreter_wifi_connect(void) { return parse_statement(0); } +int ICACHE_FLASH_ATTR interpreter_wifi_disconnect(void) { + if (!script_enabled) + return -1; + + lang_debug("interpreter_wifi_disconnect\r\n"); + + interpreter_status = WIFI_DISCONNECT; + interpreter_topic = interpreter_data = ""; + interpreter_data_len = 0; + return parse_statement(0); +} + int ICACHE_FLASH_ATTR interpreter_mqtt_connect(void) { if (!script_enabled) return -1; diff --git a/user/lang.h b/user/lang.h index 202ac59..36dc991 100644 --- a/user/lang.h +++ b/user/lang.h @@ -3,7 +3,7 @@ #include "mqtt/mqtt_server.h" -typedef enum {SYNTAX_CHECK, CONFIG, INIT, MQTT_CLIENT_CONNECT, WIFI_CONNECT, TOPIC_LOCAL, TOPIC_REMOTE, TIMER, SERIAL_INPUT, GPIO_INT, ALARM, HTTP_RESPONSE} Interpreter_Status; +typedef enum {SYNTAX_CHECK, CONFIG, INIT, MQTT_CLIENT_CONNECT, WIFI_CONNECT, WIFI_DISCONNECT, TOPIC_LOCAL, TOPIC_REMOTE, TIMER, SERIAL_INPUT, GPIO_INT, ALARM, HTTP_RESPONSE} Interpreter_Status; typedef enum {STRING_T, DATA_T} Value_Type; typedef struct _var_entry_t { @@ -41,6 +41,7 @@ int interpreter_config(); int interpreter_init(); int interpreter_mqtt_connect(void); int interpreter_wifi_connect(void); +int interpreter_wifi_disconnect(void); int interpreter_topic_received(const char *topic, const char *data, int data_len, bool local); int interpreter_serial_input(const char *data, int data_len); diff --git a/user/user_main.c b/user/user_main.c index e1cf73f..36674b7 100644 --- a/user/user_main.c +++ b/user/user_main.c @@ -560,6 +560,9 @@ void wifi_handle_event_cb(System_Event_t * evt) { MQTT_server_cleanupClientCons(); +#ifdef SCRIPTED + interpreter_wifi_disconnect(); +#endif #ifdef MQTT_CLIENT if (mqtt_enabled) // Missing test for local