From ffceccf9c34508ef18737a177381a58d08c8b8bf Mon Sep 17 00:00:00 2001 From: Martin Ger Date: Fri, 17 Nov 2017 16:48:11 +0100 Subject: [PATCH] substr added --- SCRIPTING.md | 10 ++++-- firmware/0x00000.bin | Bin 44608 -> 44608 bytes firmware/0x10000.bin | Bin 300556 -> 301020 bytes firmware/sha1sums | 4 +-- scripts/script.sunset | 69 ++++++++++++++++++++++++++++++++++++++++++ user/lang.c | 58 +++++++++++++++++++++++++++++++++++ 6 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 scripts/script.sunset diff --git a/SCRIPTING.md b/SCRIPTING.md index 6f567d8..eac47aa 100644 --- a/SCRIPTING.md +++ b/SCRIPTING.md @@ -54,8 +54,9 @@ In general, scripts conform to the following BNF: system | - ::= | | () | not () | | - retained_topic() | json_parse (,) + ::= | | () | not () | + retained_topic() | substr(,,) | + json_parse (,) := '=' | '>' | gte | str_ge | str_gte | '+' | '-' | '*' | '|' | div @@ -205,6 +206,11 @@ retained_topic() ``` Interpretes the argument as topic name (incl. wildcards) and searches the first local retained topic that matches this name. The stored value of this topic is returned (empty, if nothing found). Can be used to check the status of the system synchronously without the need to subscribe for that retained topic, wait for status changes and store them in a variable. +``` +substr(,,) +``` +Extracts characters from a string. The two constant numbers give the starting position (first is postion 0) and the length. If the starting position is negative (write it with colons as e.g. "-2"), it counts backwards from the end of the string. + ``` json_parse (,) ``` diff --git a/firmware/0x00000.bin b/firmware/0x00000.bin index 95a7855fb3adbf8968fa39ae39e8f4a727e88512..1ae8df9993d04c5ddcc3fe46145e7fc42369531b 100644 GIT binary patch delta 1312 zcmZwFe@qi+7zgn8UfQMz5+n$2R)pT2Vs!)+2{FWb78sC?Y;_@l{nENo#p24@vWzf+ z)}P94jy$6GM6kFl`{6LX=~ApkE`pL>EKv+Kp7b(bXGRWDYO z{^ESJUffT4mh(`9*uTM(z+DfGPt(18zCmPc?3Q?{E(SAv32CIOBr&GDkO9zjk@sY` zl+uU#0fZo|8&jKq;bXPNpluHi`HeYSUR!0ON+d_MT;x@IR2zfaIZ>??y-ny%UXN&Z z{VLr?W~xyw*@$RMsMC=)_y+erhN25HwFhMym{q7?N};e%rlB^B9gLQSWg6e9(vm}^ zg3nOnnNyiErQPZi=eH#Cjnh7rl&>S&5Hf@f1dxly)vbHE%V*4Ob+pxfCsV~qnI<6p z4?DH1GSPyaeovNZ@}5G@MLXrrC{%Puq2d;-3`^L}GMG-w^e@u(G*+Is)6%p;v(R`& zrc=-kHJ4>7#hee$px%HUcE8CU+hKUO8ch^uvLA9@ql;#FKerdRsFcc>%LWXrw<20H zG97&hHER(ws)s+djPYZ$Q>wWV(RzAuRA3v%vpBZUfJr)%#h8L|0g!kz_n5>hTa1|< zd)7_h%>k%w5owMTNm>*+J0F>(Dq~Cj`+UMIuH}2vxZY}HmGttiR&k@`fJt(R$K^Mz z+__%daNd`AASkZA__9^16N#_LNqjsg@{XpMd8aH6)Nf0$=S z5z*?54}!83Fs=uy+wKKq`WqT?@Uc3UKg2Uu|DPoE6V}{|z4r*TPh?{FKx-ZBTO9}b zS5w5F`3*@!k!r1UD56zBB{-o9Y9MDsrhL%gd3X&@z|U*EgZf;2d=WVSU%~eyV&Qb5 z)K>JXLInTdKaS;kP+>283zKm{j&;&g&26tf@tj3@1H>FN7+z~ZPXT|XO z%nXPBt=IjHKE~Wly8DercWw6eUE5>x9n+6D96s)49)E-PuztkncZ-GovgG9O80Ov) Ijjh@AA0oc*=Kufz delta 1312 zcmZwHZA@EL7zglk52Y!CAS1lE*|E}l?|9in#uUk7cAtfgEoR9YGXqn@ItS7sD;HQI zfofr6Ivt5@mn~*7Sf*KE0;?W0n^{;%{6Lf~P1LEAkbW?eXhmlBVPRYAzoAh+*yNZ0 zbDn#8&dKRbLvuVd$AdH696qcPYY;d2H=MiN;(Tg5H|uVddfY~~rJfJCjdn{{W&oWK zgdyS<%a$^!aw#!>*UYj!Dt-K;o4JrZaQPX=CcieZ0n`Bq!hzcN)|Dfj9#OyMyu?Eu zv7G)l=Mj%s%zU2nr6Xed+U68K_?K}p$IG+4A}{xh#K|iz<+Z0|>t2;4#`FPX5CUFN zw*HKi8AfeuRcQ&yT8*1e+~y0f8kejU{9cp+x56k4hn#$WU)vZNOm+5hP;)LO?YCKK6W4p_FzgKk0+qu1^Tcs?hf-JOKs*)Dn6ASr8=d$Ph#5OP)xf9Ipdg%YYUB-q(cRaSux%MRpLl-lf-@9 z#;uZyHTSU6PcYamvP&~1DIy9tKQKvqjSc1R^ZO}cqTHL!13sgmdWeU7Vyb$FNvac% zc3-#fzH~9=T$FgwFD71i$s)N#+RJh}U+{~v*D_Ois8H;9eN&1#(5sTZ&uI46m@TIj zn(>J*y_-^a^g}VTFKv%b8<1SYAjZ(JvSE92pq5n_JR{$9G9s9I^Y9k diff --git a/firmware/0x10000.bin b/firmware/0x10000.bin index 9f72d6c0f8eeaee8913dc926fe1483cb6f8c2e73..49b71c0ce0a89b481e553d9978e426a258036114 100644 GIT binary patch delta 29276 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 d{rDtbpu5k%?UxM6=vNnnL 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 R>Y(gbMpj?R sizeof(tmp_buffer)) + len = sizeof(tmp_buffer)-1; + + os_strncpy(tmp_buffer, &str[from], len); + tmp_buffer[len] = '\0'; + + *data_len = len; + *data = tmp_buffer; + *data_type = STRING_T; + } + } #ifdef GPIO else if (is_token(next_token, "gpio_in")) { lang_debug("val gpio_in\r\n");