Changes for page 01 Lua Functions

Last modified by Theodore Xu on 2023/10/26 10:51

From version 2.1
edited by Leo Wei
on 2022/06/16 16:07
Change comment: Renamed from xwiki:V-BOX.V-Net.1\.User Manual.04\.Lua script function and operation.01\.Lua script function.WebHome
To version 5.11
edited by Stone Wu
on 2022/07/12 09:35
Change comment: (Autosaved)

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -01 Lua script function
1 +01 Lua Functions
Parent
... ... @@ -1,1 +1,1 @@
1 -V-BOX.V-Net.1\.User Manual.04\.Lua script function and operation.WebHome
1 +V-BOX.V-Net.1\.User Manual.04 Lua Script.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +XWiki.Stone
Content
... ... @@ -1,70 +1,66 @@
1 -= **1 Interface Description** =
1 += **1 Interface description** =
2 2  
3 -== **1.1 Data type definition** ==
3 +== **Data type definition** ==
4 4  
5 -(% class="table-bordered" style="width:749.989px" %)
6 -|(% style="width:375px" %)**Type**|(% style="width:372px" %)**Description**
7 -|(% style="width:375px" %)nil|(% style="width:372px" %)Null
8 -|(% style="width:375px" %)boolean|(% style="width:372px" %)Boolean, the value is true or false
9 -|(% style="width:375px" %)number|(% style="width:372px" %)Integer or floating point, signed or unsigned
10 -|(% style="width:375px" %)string|(% style="width:372px" %)String
11 -|(% style="width:375px" %)table|(% style="width:372px" %)Table
12 -|(% style="width:375px" %)function|(% style="width:372px" %)Functions
5 +|=**Type**|=**Description**
6 +|=nil|Null
7 +|=boolean|Boolean (the value is true or false)
8 +|=number|Integer or floating point (signed or unsigned)
9 +|=string|String
10 +|=table|Table
11 +|=function|Functions
13 13  
14 -== **1.2 Built-in function library clipping** ==
13 +== **Built-in function library clipping** ==
15 15  
16 16  Full features supported: coroutine/debug/ math/ package/ string/ table/ utf8
17 17  
18 -//,,Some features supported (available in []):** **os[clock/ date/ difftime/ time],,//
17 +//Some features supported (available in []):** **os[clock/ date/ difftime/ time]//
19 19  
20 -//,,Not supported: io/ file,,//
19 +//Not supported: io/ file//
21 21  
22 -== **1.3 Return value description** ==
21 +== **Return value description** ==
23 23  
24 24  The function return type multi means multiple return values (at least 2), usually:
25 25  
26 -//,,1st: nil;,,//
25 +//1st: nil//
27 27  
28 -//,,2nd: the error message;,,//
27 +//2nd: the error message//
29 29  
30 30  (((
31 -== **1.4 Function parameter description** ==
30 +== **Function parameter description** ==
32 32  )))
33 33  
34 -**Assume the function prototype:**
33 +Suppose a function prototype is defined:
35 35  
36 -|(((
37 -//student(string name, number age[, number class])//
35 +{{code language="LUA"}}
36 +student(string name, number age[, number class])
38 38  
39 -**Function:**
38 +Function:
40 40  
41 41  Register a student
42 42  
43 -**Parameters:**
42 +Parameters:
44 44  
45 -//name//: student name
44 +name: student name
46 46  
47 -//age//: student age
46 +age: student age
48 48  
49 -//[class=1]//: Student class
48 +[class=1]: Student class
50 50  
51 -**Return:**
50 +Return:
52 52  
53 53  Succeed: true
54 54  
55 55  Failed: multi
56 -)))
55 +{{/code}}
57 57  
58 -**Comment**
57 +**Explanation**
59 59  
60 -1.string name indicates that the first parameter name is a string
59 +1. string name indicates that the first parameter name is a string
60 +1. number age indicates that the second parameter age is numeric
61 +1. [, number class] indicates that the third parameter class is a numeric value, and it is optional. Specify the default class in class 1 in the parameter description.
62 +1. **Any parameter in the [] is considered to be an optional parameter, and may not be transmitted when called. The default value will be given in the parameter description.**
61 61  
62 -2.number age indicates that the second parameter age is numeric
63 -
64 -3. [, number class] indicates that the third parameter class is a numeric value, and it is optional. Specify the default class in class 1 in the parameter description.
65 -
66 -{{id name="OLE_LINK4"/}}{{id name="OLE_LINK5"/}}4. Any parameter in the brackets of [] is considered to be an optional parameter, and may not be transmitted when called. The default value will be given in the parameter description.
67 -
68 68  **Call example**
69 69  
70 70  |(((
... ... @@ -93,75 +93,66 @@
93 93  
94 94  **Comment**
95 95  
96 -1.From the print result, the second line of the first line is successfully called and returns true; the third line fails the call, the error message is translated as: the bar student has been registered, and there is indeed an error in the code.
92 +1. From the print result, the first line and the second line are successfully called and returns true; the third line fails the call, the error message is translated as: the bar student has been registered, and there is indeed an error in the code.
93 +1. The fourth line of code uses two variables to receive the return value. The call failed, the first variable stat is nil, and the second variable err stores the error message. Then print it out using print, which is the output of the third line. This example shows how to capture and view the error message.
97 97  
98 -2.The fourth line of code uses two variables to receive the return value. The call failed, the first variable stat is nil, and the second variable err stores the error message. Then print it out using print, which is the output of the third line. This example shows how to capture and view the error message.
95 +== **Modification of print function** ==
99 99  
100 -== **1.5 Modification of the Print Function** ==
97 +For the convenience of remote development, the print data is sent to the front end (web page) by means of network transmission, and the user can see the result of the debug output, because it consumes certain data and occupies the bandwidth of the server (or occupies server resources). So the following restrictions are made.
101 101  
102 -For the convenience of remote development, the print data is sent to the front end (web page) by means of network transmission, and the user can see the result of the debug output, because it consumes certain data and occupies the bandwidth of the server (or occupies server resources). So make the following restrictions:
99 +1. **Interval limit: **When debugging, transfer once every 2~~3 seconds;
100 +1. **Data limit: **The transfer data cannot be larger than 1.5KB in a single transmission, otherwise the extra part will be ignored;
101 +1. **Transmission limit: **The data transmission will be stopped automatically after the debugging windows is not closed normally. Only when it is in the debugging window and the switch is on, there is data transmission;
103 103  
104 -**1.Interval limit: **When debugging, transfer once every 2~~3 seconds;
105 -
106 -**2.Data limit: **The transfer data cannot be larger than 1.5KB, and the extra part will be ignored;
107 -
108 -**3.Transmission limit: **The data transmission will be stopped automatically after the debugging windows is not closed normally. Only when it is in the debugging window and the switch is on, there is data transmission;
109 -
110 110  Users should pay attention to avoid printing a lot of useless information, should minimize the debug output
111 111  
112 112  In addition, please refer to the front-end documentation for how to use view debugging.
113 113  
114 114  (((
115 -= **2 Address Operation** =
116 -
117 -**~ Form 2.1**
108 += **2 Address operation** =
118 118  )))
119 119  
120 -(% class="table-bordered" style="width:982px" %)
121 -|(% style="width:167px" %) 16-bit data formal|(% style="width:142px" %) HLword|(% style="width:194px" %) 32-bit data formal|(% style="width:177px" %) HLword|(% style="width:147px" %) 64-bit data formal|(% style="width:152px" %) HLword
122 -|(% style="width:167px" %) 12(Default)|(% style="width:142px" %) 0|(% style="width:194px" %) 1234(Default)|(% style="width:177px" %) 0|(% style="width:147px" %)(((
123 - 12345678(Default)
124 -)))|(% style="width:152px" %)(((
125 - 0
111 +|=16-bit data formal|=HLword|=32-bit data formal|=HLword|= 64-bit data formal|=HLword
112 +|12(Default)|0|1234(Default)|0|(((
113 +12345678(Default)
114 +)))|(((
115 +0
126 126  )))
127 -|(% style="width:167px" %) 21|(% style="width:142px" %) 6|(% style="width:194px" %)(((
128 - 3412(High and low word conversion)
129 -)))|(% style="width:177px" %) 2|(% style="width:147px" %)(((
130 - 34127856  (High and low word conversion)
131 -)))|(% style="width:152px" %) 2
132 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) 2143|(% style="width:177px" %) 3|(% style="width:147px" %)(((
133 - 21436587
134 -)))|(% style="width:152px" %) 3
135 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) 4321|(% style="width:177px" %) 6|(% style="width:147px" %)(((
136 - 87654321
137 -)))|(% style="width:152px" %) 6
138 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) |(% style="width:177px" %) |(% style="width:147px" %)(((
139 - 78563412
140 -)))|(% style="width:152px" %) 7
141 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) |(% style="width:177px" %) |(% style="width:147px" %)(((
142 - 56781234
143 -)))|(% style="width:152px" %) 8
144 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) |(% style="width:177px" %) |(% style="width:147px" %)(((
145 - 65872143
146 -)))|(% style="width:152px" %) 9
147 -|(% style="width:167px" %) |(% style="width:142px" %) |(% style="width:194px" %) |(% style="width:177px" %) |(% style="width:147px" %)(((
148 - 43218765
149 -)))|(% style="width:152px" %) 10
117 +|21|6|(((
118 +3412(High and low word conversion)
119 +)))|2|(((
120 +34127856  (High and low word conversion)
121 +)))|2
122 +| | |2143|3|(((
123 +21436587
124 +)))|3
125 +| | |4321|6|(((
126 +87654321
127 +)))|6
128 +| | | | |(((
129 +78563412
130 +)))|7
131 +| | | | |(((
132 +56781234
133 +)))|8
134 +| | | | |(((
135 +65872143
136 +)))|9
137 +| | | | |(((
138 +43218765
139 +)))|10
150 150  
151 -* If HLword enters any other value, it will be treated as invalid.
141 + Table 2-1
152 152  
153 - Demo:  Reads a 32-bit floating-point number at position D0 of PLC
143 +(% class="box errormessage" %)
144 +(((
145 +**✎Note: **If HLword enters any other value, it will be treated as invalid.
146 +)))
154 154  
148 +== **addr_getshort(string addr[, number type, number hlword])** ==
155 155  
156 -(% style="text-align:center" %)
157 -[[image:企业微信截图_20210506180640.png||class="img-thumbnail" height="301" width="600"]]
150 +**Function:** Read 16-bit signed decimal address
158 158  
159 -== **2.1 addr_getshort(string addr[, number type, number hlword])** ==
160 -
161 -**Function:**
162 -
163 -Read 16-bit signed decimal address
164 -
165 165  **Parameters:**
166 166  
167 167  //addr//: address
... ... @@ -179,13 +179,11 @@
179 179  Failed: multi
180 180  
181 181  (((
182 -== **2.2 addr_setshort(string addr, number num[, number type, number hlword])** ==
169 +== **addr_setshort(string addr, number num[, number type, number hlword])** ==
183 183  )))
184 184  
185 -**Function:**
172 +**Function:** Write 16-bit signed decimal address
186 186  
187 -Write 16-bit signed decimal address
188 -
189 189  **Parameters:**
190 190  
191 191  //addr//: address
... ... @@ -203,13 +203,11 @@
203 203  Failed: multi
204 204  
205 205  (((
206 -== **2.3 addr_getword(string addr[, number type, number hlword])** ==
191 +== **addr_getword(string addr[, number type, number hlword])** ==
207 207  )))
208 208  
209 -**Function:**
194 +**Function:** Read 16-bit unsigned decimal address
210 210  
211 -{{id name="OLE_LINK6"/}}Read 16-bit unsigned decimal address
212 -
213 213  **Parameters:**
214 214  
215 215  //addr//: address
... ... @@ -225,13 +225,11 @@
225 225  Failed: multi
226 226  
227 227  (((
228 -== **2.4 addr_setword(string addr, number num[, number type, number hlword])** ==
211 +== **addr_setword(string addr, number num[, number type, number hlword])** ==
229 229  )))
230 230  
231 -**Function:**
214 +**Function:**Write 16-bit unsigned decimal address
232 232  
233 -Write 16-bit unsigned decimal address
234 -
235 235  **Parameters:**
236 236  
237 237  //addr//: address
... ... @@ -249,13 +249,11 @@
249 249  Failed: multi
250 250  
251 251  (((
252 -== **2.5 addr_getint(string addr[, number type, number hlword])** ==
233 +== **addr_getint(string addr[, number type, number hlword])** ==
253 253  )))
254 254  
255 -**Function:**
236 +**Function:** Read 32-bit signed decimal address
256 256  
257 -Read 32-bit signed decimal address
258 -
259 259  **Parameters:**
260 260  
261 261  //addr//: address
... ... @@ -271,13 +271,11 @@
271 271  Failed: multi
272 272  
273 273  (((
274 -== **2.6 addr_setint(string addr, number num[, number type, number hlword])** ==
253 +== **addr_setint(string addr, number num[, number type, number hlword])** ==
275 275  )))
276 276  
277 -**Function:**
256 +**Function:** Write 32-bit signed decimal address
278 278  
279 -Write 32-bit signed decimal address
280 -
281 281  **Parameters:**
282 282  
283 283  //addr//: address
... ... @@ -295,13 +295,11 @@
295 295  Failed: multi
296 296  
297 297  (((
298 -== **2.7 addr_getdword(string addr[, number type, number hlword])** ==
275 +== **addr_getdword(string addr[, number type, number hlword])** ==
299 299  )))
300 300  
301 -**Function:**
278 +**Function:** Read 32-bit unsigned decimal address
302 302  
303 -{{id name="OLE_LINK7"/}}Read 32-bit unsigned decimal address
304 -
305 305  **Parameters:**
306 306  
307 307  //addr//: address
... ... @@ -317,13 +317,11 @@
317 317  Failed: multi
318 318  
319 319  (((
320 -== **2.8 addr_setdword(string addr, number num[, number type, number hlword])** ==
295 +== **addr_setdword(string addr, number num[, number type, number hlword])** ==
321 321  )))
322 322  
323 -**Function:**
298 +**Function:** Write 32-bit unsigned decimal address
324 324  
325 -Write 32-bit unsigned decimal address
326 -
327 327  **Parameters:**
328 328  
329 329  //addr//: address
... ... @@ -341,13 +341,11 @@
341 341  Failed: multi
342 342  
343 343  (((
344 -== **2.9 addr_getbit(string addr[, number type])** ==
317 +== **addr_getbit(string addr[, number type])** ==
345 345  )))
346 346  
347 -**Function:**
320 +**Function:** Read a bit of the register address
348 348  
349 -Read a bit of the register address
350 -
351 351  **Parameters:**
352 352  
353 353  //addr//: address
... ... @@ -363,13 +363,11 @@
363 363  Failed: multi
364 364  
365 365  (((
366 -== **2.10 addr_setbit(string addr, number num[, number type])** ==
337 +== **addr_setbit(string addr, number num[, number type])** ==
367 367  )))
368 368  
369 -**Function:**
340 +**Function:** Write a bit of the register address
370 370  
371 -Write a bit of the register address
372 -
373 373  **Parameters:**
374 374  
375 375  //addr//: address
... ... @@ -376,7 +376,7 @@
376 376  
377 377  //num//: value
378 378  
379 -{{id name="OLE_LINK8"/}}[type = 0]not read through 1: read through
348 +[type = 0]not read through 1: read through
380 380  
381 381  [hlword = 0]  Don't convert,See Form 2.1
382 382  
... ... @@ -387,13 +387,11 @@
387 387  Failed: multi
388 388  
389 389  (((
390 -== **2.11 addr_getfloat(string addr[, number type, number hlword])** ==
359 +== **addr_getfloat(string addr[, number type, number hlword])** ==
391 391  )))
392 392  
393 -**Function:**
362 +**Function:** Read 32-bit floating address
394 394  
395 -Read 32-bit floating address
396 -
397 397  **Parameters:**
398 398  
399 399  //addr//: address
... ... @@ -409,13 +409,11 @@
409 409  Failed: multi
410 410  
411 411  (((
412 -== **2.12 addr_setfloat(string addr, number num[, number type, number hlword])** ==
379 +== **addr_setfloat(string addr, number num[, number type, number hlword])** ==
413 413  )))
414 414  
415 -**Function:**
382 +**Function:** Write 32-bit floating address
416 416  
417 -Write 32-bit floating address
418 -
419 419  **Parameters:**
420 420  
421 421  //addr//: address
... ... @@ -433,13 +433,11 @@
433 433  Failed: multi
434 434  
435 435  (((
436 -== **2.13 addr_getdouble(string addr[, number type, number hlword])** ==
401 +== **addr_getdouble(string addr[, number type, number hlword])** ==
437 437  )))
438 438  
439 -**Function:**
404 +**Function:** Read 64-bit floating address
440 440  
441 -Read 64-bit floating address
442 -
443 443  **Parameters:**
444 444  
445 445  //addr//: address
... ... @@ -455,13 +455,11 @@
455 455  Failed: multi
456 456  
457 457  (((
458 -== **2.14 addr_setdouble(string addr, number num[, number type, number hlword])** ==
421 +== **addr_setdouble(string addr, number num[, number type, number hlword])** ==
459 459  )))
460 460  
461 -**Function:**
424 +**Function:** Write 64-bit floating address
462 462  
463 -Write 64-bit floating address
464 -
465 465  **Parameters:**
466 466  
467 467  addr: address
... ... @@ -479,13 +479,11 @@
479 479  Failed: multi
480 480  
481 481  (((
482 -== **2.15 addr_getstring(string addr, number length[, number type, number hlbyte])** ==
443 +== **addr_getstring(string addr, number length[, number type, number hlbyte])** ==
483 483  )))
484 484  
485 -**Function:**
446 +**Function:** Read the specified length string from address
486 486  
487 -Read the specified length string from address
488 -
489 489  **Parameters:**
490 490  
491 491  //addr//: address
... ... @@ -503,13 +503,11 @@
503 503  Failed: multi
504 504  
505 505  (((
506 -== **2.16 addr_setstring(string addr, string str[, number type, number hlbyte])** ==
465 +== **addr_setstring(string addr, string str[, number type, number hlbyte])** ==
507 507  )))
508 508  
509 -**Function:**
468 +**Function:** Write the specified length string to address
510 510  
511 -Write the specified length string to address
512 -
513 513  **Parameters:**
514 514  
515 515  //addr//: address
... ... @@ -527,13 +527,11 @@
527 527  Failed: multi
528 528  
529 529  (((
530 -== **2.17 addr_bmov(string dst, string src, number length)** ==
487 +== **addr_bmov(string dst, string src, number length)** ==
531 531  )))
532 532  
533 -**Function:**
490 +**Function:** Copy data from source address to destination address
534 534  
535 -Copy data from source address to destination address
536 -
537 537  **Parameters:**
538 538  
539 539  //dst//: destination address
... ... @@ -549,13 +549,11 @@
549 549  **Failed: multi**
550 550  
551 551  (((
552 -== **2.18 addr_fill(string addr, number num, number length)** ==
507 +== **addr_fill(string addr, number num, number length)** ==
553 553  )))
554 554  
555 -**Function:**
510 +**Function:** Write the same value to consecutive addresses
556 556  
557 -Write the same value to consecutive addresses
558 -
559 559  **Parameters:**
560 560  
561 561  //addr//: address
... ... @@ -571,13 +571,11 @@
571 571  Failed: multi
572 572  
573 573  (((
574 -== **2.19 addr_newnoaddr(string addr, number offset)** ==
527 +== **addr_newnoaddr(string addr, number offset)** ==
575 575  )))
576 576  
577 -**Function:**
530 +**Function:** Offset address value relative to //addr//
578 578  
579 -Offset address value relative to //addr//
580 -
581 581  **Parameters:**
582 582  
583 583  //addr//: address
... ... @@ -591,13 +591,11 @@
591 591  Failed: multi
592 592  
593 593  (((
594 -== **2.20 addr_newstataddr(string addr, number offset)** ==
545 +== **addr_newstataddr(string addr, number offset)** ==
595 595  )))
596 596  
597 -**Function:**
548 +**Function:** Offset station number relative to //addr //station number
598 598  
599 -Offset station number relative to //addr //station number
600 -
601 601  **Parameters:**
602 602  
603 603  //addr//: address
... ... @@ -610,12 +610,10 @@
610 610  
611 611  Failed: multi
612 612  
613 -== **2.21 addr_gethex64(string addr[, number type, number hlword])** ==
562 +== **addr_gethex64(string addr[, number type, number hlword])** ==
614 614  
615 -**Function:**
564 +**Function:** Read 64-bit hexadecimal numbers
616 616  
617 -Read 64-bit hexadecimal numbers
618 -
619 619  **Parameters:**
620 620  
621 621  //addr//: address
... ... @@ -630,12 +630,10 @@
630 630  
631 631  Failed: multi
632 632  
633 -== **2.22 addr_sethex64(string addr, number num[, number type, number hlword])** ==
580 +== **addr_sethex64(string addr, number num[, number type, number hlword])** ==
634 634  
635 -**Function:**
582 +**Function:** Write 64-bit hexadecimal addresses
636 636  
637 -Write 64-bit hexadecimal addresses
638 -
639 639  **Parameters:**
640 640  
641 641  //addr//: address
... ... @@ -656,11 +656,11 @@
656 656  
657 657  Operations on the serial port such as read, write, etc. must use ':' for full mode calls, ie operations on an open serial object.
658 658  
659 -**Serial port name and mode:**
604 +**Serial port name and mode**
660 660  
661 661  The serial port configured in the communication configuration window cannot be configured again using the script. RS232 and RS458 (or RS422) can be used simultaneously, but RS422 and RS485 are mutually exclusive.For example, when the communication port is configured with COM1-485, the script can only open COM1-232, but not COM1-485/422. Similarly, when the communication port is configured with COM2-485, the script can only open COM2-232, but not COM2-485.
662 662  
663 -Attempting to use a script to open a serial port in an unsupported mode will result in an error directly, as below
608 +Attempting to use a script to open a serial port in an unsupported mode will result in an error directly, as below.
664 664  
665 665  |(((
666 666  local setup = {
... ... @@ -682,13 +682,11 @@
682 682  1. When the data bit is 8, the maximum value of data transmission is 255 (0xFF), which supports the transmission of any character.
683 683  
684 684  (((
685 -== **3.1 serial.open(table setup)** ==
630 +== **serial.open(table setup)** ==
686 686  )))
687 687  
688 -**Function:**
633 +**Function:** Enable one serial port
689 689  
690 -Enable one serial port
691 -
692 692  **Parameters:**
693 693  
694 694  //Setup// is a Lua table; it needs to contain the following fields
... ... @@ -722,17 +722,13 @@
722 722  Failed: multi
723 723  
724 724  (((
725 -== **3.2 serial.close(serial obj)** ==
668 +== **serial.close(serial obj)** ==
726 726  )))
727 727  
728 -**Function:**
671 +**Function:** Disable the serial port
729 729  
730 -Disable the serial port
673 +**Parameters: **//Obj //is the object returned by serial.open
731 731  
732 -**Parameters:**
733 -
734 -//Obj //is the object returned by serial.open
735 -
736 736  **Return:**
737 737  
738 738  Succeed: true
... ... @@ -740,13 +740,11 @@
740 740  Failed: multi
741 741  
742 742  (((
743 -== **3.3 serial:read(number bytes[, number timeout])** ==
682 +== **serial:read(number bytes[, number timeout])** ==
744 744  )))
745 745  
746 -**Function:**
685 +**Function:** Read the specified byte length serial port data
747 747  
748 -Read the specified byte length serial port data
749 -
750 750  **Parameters:**
751 751  
752 752  //bytes//: number of bytes
... ... @@ -760,15 +760,13 @@
760 760  Failed: multi
761 761  
762 762  (((
763 -== **3.4 serial:write(string data)** ==
700 +== **serial:write(string data)** ==
764 764  )))
765 765  
766 -**Function:**
703 +**Function:** Write the specified byte length to serial port data
767 767  
768 -Write the specified byte length to serial port data
705 +**Parameters: **
769 769  
770 -**Parameters:**
771 -
772 772  //data//: serial port data
773 773  
774 774  **Return:**
... ... @@ -778,13 +778,11 @@
778 778  Failed: multi
779 779  
780 780  (((
781 -== **3.5 serial:flush([number flag])** ==
716 +== **serial:flush([number flag])** ==
782 782  )))
783 783  
784 -**Function:**
719 +**Function:** Clear the serial port buffer
785 785  
786 -Clear the serial port buffer
787 -
788 788  **Parameters:**
789 789  
790 790  //[flag=2]// clear option: 0: read, 1: write, 2: read-write
... ... @@ -796,17 +796,13 @@
796 796  Failed: multi
797 797  
798 798  (((
799 -== **3.6 serial:close()** ==
732 +== **serial:close()** ==
800 800  )))
801 801  
802 -**Function:**
735 +**Function:** Close the serial port object
803 803  
804 -Close the serial port object
737 +**Parameters:** None
805 805  
806 -**Parameters:**
807 -
808 -None
809 -
810 810  **Return:**
811 811  
812 812  Succeed: true
... ... @@ -823,12 +823,10 @@
823 823  
824 824  **QoS value:**
825 825  
826 -0: Only push messages once, messages may be lost or duplicated. It can be used for environmental sensor data, it doesn't matter if lose a record, because there will be a second push message soon. This method is mainly used for normal APP push, but if the user smart device is not connected when the message is pushed, the message will be discarded, and the smart device will not be received when it is networked again.
755 +* 0: Only push messages once, messages may be lost or duplicated. It can be used for environmental sensor data, it doesn't matter if lose a record, because there will be a second push message soon. This method is mainly used for normal APP push, but if the user smart device is not connected when the message is pushed, the message will be discarded, and the smart device will not be received when it is networked again.
756 +* 1: The message is delivered at least once, but the message may be delivered repeatedly.
757 +* 2: The message was delivered exactly once. This level can be used in a billing system. In a billing system, repeated or missing messages can lead to incorrect results. This highest quality message push service can also be used for instant messaging APP pushes, ensuring that users only receive messages once.
827 827  
828 -1: The message is delivered at least once, but the message may be delivered repeatedly.
829 -
830 -2: The message was delivered exactly once. This level can be used in a billing system. In a billing system, repeated or missing messages can lead to incorrect results. This highest quality message push service can also be used for instant messaging APP pushes, ensuring that users only receive messages once.
831 -
832 832  **Retain flag:**
833 833  
834 834  0: not reserved;
... ... @@ -836,13 +836,11 @@
836 836  1: reserved
837 837  
838 838  (((
839 -== **4.1 mqtt.create(string serverurl, string clientid)** ==
766 +== **mqtt.create(string serverurl, string clientid)** ==
840 840  )))
841 841  
842 -**Function:**
769 +**Function:** Create an MQTT object
843 843  
844 -Create an MQTT object
845 -
846 846  **Parameters:**
847 847  
848 848  //serverurl //Server url
... ... @@ -864,17 +864,13 @@
864 864  Failed: multi
865 865  
866 866  (((
867 -== **4.2 mqtt.close(mqtt obj)** ==
792 +== **mqtt.close(mqtt obj)** ==
868 868  )))
869 869  
870 -**Function:**
795 +**Function:** Close the specified MQTT object (if the connected server will be disconnected automatically)
871 871  
872 -Close the specified MQTT object (if the connected server will be disconnected automatically)
797 +**Parameters: **//Obj //ithe objeced returned by mqtt.create
873 873  
874 -**Parameters:**
875 -
876 -//Obj //is the objeced returned by mqtt.create
877 -
878 878  **Return:**
879 879  
880 880  Succeed: true
... ... @@ -882,32 +882,25 @@
882 882  Failed: multi
883 883  
884 884  (((
885 -== **4.3 mqtt:connect(table conn[, table lwt, table cart])** ==
806 +== **mqtt:connect(table conn[, table lwt, table cart])** ==
886 886  )))
887 887  
888 -**Function:**
809 +**Function:**Establish a connection to the server
889 889  
890 -Establish a connection to the server
891 -
892 892  **Parameters:**
893 893  
894 894  //conn //is a Lua table and needs to contain the following fields
895 895  
896 -//string conn.username//, user name
815 +* //string conn.username//, user name
816 +* //string conn.password//, password
817 +* //number [conn.netway=0]//, networking method, if set error number will use Ethernet method
818 +** 0: Ethernet
819 +** 1: WIFI
820 +** 2: 4G
821 +** 3: 2G
822 +* //number [conn.keepalive=60]//, keep connected heartbeat interval, in seconds
823 +* //number [conn.cleansession=1]//, empty the session as described below:
897 897  
898 -//string conn.password//, password
899 -
900 -//number [conn.netway=0]//, networking method, if set error number will use Ethernet method
901 -
902 -* 0: Ethernet
903 -* 1: WIFI
904 -* 2: 4G
905 -* 3: 2G
906 -
907 -//number [conn.keepalive=60]//, keep connected heartbeat interval, in seconds
908 -
909 -//number [conn.cleansession=1]//, empty the session as described below:
910 -
911 911  This function is used to control the behavior when connecting and disconnecting, and the client and server will retain the session information. This information is used to guarantee "at least once" and "accurately once" delivery, as well as the subject of the client subscription, the user can choose to keep or ignore the session message, set as follows:
912 912  
913 913  * 1 (Empty): If a session exists and is 1, the previous session messages on the client and server are emptied.
... ... @@ -915,14 +915,11 @@
915 915  
916 916  //lwt// (Last Will and Testament) is a Lua table and needs to contain the following fields
917 917  
918 -//string lwt.topic//, topic
832 +* //string lwt.topic//, topic
833 +* //string lwt.message//, message
834 +* //number [lwt.qos=0]//, qos value
835 +* //number [lwt.retain=0]//, retain flag
919 919  
920 -//string lwt.message//, message
921 -
922 -//number [lwt.qos=0]//, qos value
923 -
924 -//number [lwt.retain=0]//, retain flag
925 -
926 926  **Return:**
927 927  
928 928  Succeed: true
... ... @@ -930,17 +930,13 @@
930 930  Failed: multi
931 931  
932 932  (((
933 -== **4.4 mqtt:disconnect([number timeout])** ==
844 +== **mqtt:disconnect([number timeout])** ==
934 934  )))
935 935  
936 -**Function:**
847 +**Function:** Disconnect from the MQTT server
937 937  
938 -Disconnect from the MQTT server
849 +**Parameters: **//[timeout=10000] //Disconnect waiting timeout, in milliseconds
939 939  
940 -**Parameters:**
941 -
942 -//[timeout=10000] //Disconnect waiting timeout, in milliseconds
943 -
944 944  **Return:**
945 945  
946 946  Succeed: true
... ... @@ -948,17 +948,13 @@
948 948  Failed: multi
949 949  
950 950  (((
951 -== **4.5 mqtt:isconnected()** ==
858 +== **mqtt:isconnected()** ==
952 952  )))
953 953  
954 -**Function:**
861 +**Function:** Test whether or not a client is currently connected to the MQTT server
955 955  
956 -Test whether or not a client is currently connected to the MQTT server
863 +**Parameters:** None
957 957  
958 -**Parameters:**
959 -
960 -None
961 -
962 962  **Return:**
963 963  
964 964  Succeed: true ~-~-Connected
... ... @@ -966,13 +966,11 @@
966 966  Failed: false ~-~- Unconnected and other unknowns
967 967  
968 968  (((
969 -== **4.6 mqtt:subscribe(string topic, number qos)** ==
872 +== **mqtt:subscribe(string topic, number qos)** ==
970 970  )))
971 971  
972 -**Function:**
875 +**Function: **Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server)
973 973  
974 -Subscribe to the topic (before the subscription, the user must first call the connect method to connect to the server)
975 -
976 976  **Parameters:**
977 977  
978 978  //topic//, topic name
... ... @@ -986,13 +986,11 @@
986 986  Failed: multi
987 987  
988 988  (((
989 -== **4.7 mqtt:unsubscribe(string topic)** ==
890 +== **mqtt:unsubscribe(string topic)** ==
990 990  )))
991 991  
992 -**Function:**
893 +**Function:** Unsubscribe topic
993 993  
994 -Unsubscribe topic
995 -
996 996  **Parameters:**
997 997  
998 998  //topic//, topic name
... ... @@ -1004,13 +1004,11 @@
1004 1004  Failed: multi
1005 1005  
1006 1006  (((
1007 -== **4.8 mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** ==
906 +== **mqtt:publish(string topic, string message, number qos, number retain[, number timeout])** ==
1008 1008  )))
1009 1009  
1010 -**Function:**
909 +**Function:** Publish message
1011 1011  
1012 -Publish message
1013 -
1014 1014  **Parameters:**
1015 1015  
1016 1016  //topic//, topic name
... ... @@ -1030,17 +1030,13 @@
1030 1030  Failed: multi
1031 1031  
1032 1032  (((
1033 -== **4.9 mqtt:close()** ==
930 +== **mqtt:close()** ==
1034 1034  )))
1035 1035  
1036 -**Function:**
933 +**Function:** Close the mqtt object (the connection to the server will be automatically disconnected)
1037 1037  
1038 -Close the mqtt object (the connection to the server will be automatically disconnected)
935 +**Parameters:** None
1039 1039  
1040 -**Parameters:**
1041 -
1042 -None
1043 -
1044 1044  **Return:**
1045 1045  
1046 1046  Succeed: true
... ... @@ -1048,13 +1048,11 @@
1048 1048  Failed: multi
1049 1049  
1050 1050  (((
1051 -== **4.10 mqtt:on(string method, function callback)** ==
944 +== **mqtt:on(string method, function callback)** ==
1052 1052  )))
1053 1053  
1054 -**Function:**
947 +**Function:** Register event callback function
1055 1055  
1056 -Register event callback function
1057 -
1058 1058  **Parameters:**
1059 1059  
1060 1060  //method//, It can be message/arrived/offline, these 3 types of events
... ... @@ -1067,20 +1067,17 @@
1067 1067  
1068 1068  Parameter:
1069 1069  
1070 -//Topic//, topic name
961 +* //Topic//, topic name
962 +* //Message//, content
1071 1071  
1072 -//Message//, content
964 +**2."arrived" is published by publish, this function will be called after the publication arrives**
1073 1073  
1074 -**2.**"arrived" is published by publish, this function will be called after the publication arrives
1075 -
1076 1076  //Callback// prototype~:// function ()//
1077 1077  
1078 -Parameter:
968 +Parameter: None
1079 1079  
1080 -None
970 +**3.This function will be called after the "offline" connection is lost**
1081 1081  
1082 -**3.**This function will be called after the "offline" connection is lost
1083 -
1084 1084  //Callback// prototype~:// function (string cause)//
1085 1085  
1086 1086  Parameter:
... ... @@ -1094,17 +1094,13 @@
1094 1094  Failed: multi
1095 1095  
1096 1096  (((
1097 -== **4.11 mqtt:setup_cfg()** ==
985 +== **mqtt:setup_cfg()** ==
1098 1098  )))
1099 1099  
1100 -**Function:**
988 +**Function:** Cloud mode interface, to obtain MQTT information configured by the cloud platform
1101 1101  
1102 -Cloud mode interface, to obtain MQTT information configured by the cloud platform
990 +**Parameters:** None
1103 1103  
1104 -**Parameters:**
1105 -
1106 -None
1107 -
1108 1108  **Return:**
1109 1109  
1110 1110  //serverurl, clientid, conn, lwt, cart //(5 returns, respectively, server address, client ID, connection table, last word table, certificate table)
... ... @@ -1122,39 +1122,27 @@
1122 1122  Lua only has a table data structure, so all arrays and key-value objects of json will be returned as a table.
1123 1123  
1124 1124  (((
1125 -== **5.1 json.encode( lua_object )** ==
1009 +== **json.encode( lua_object )** ==
1126 1126  )))
1127 1127  
1128 -**Function:**
1012 +**Function: **Convert lua data type to json string
1129 1129  
1130 -Convert lua data type to json string
1014 +**Parameters: **Lua data type (including boolean, number, string, table)
1131 1131  
1132 -**Parameters:**
1016 +**Return:** Json format string
1133 1133  
1134 -Lua data type (including boolean, number, string, table)
1135 -
1136 -**Return:**
1137 -
1138 -Json format string
1139 -
1140 1140  (((
1141 -== **5.2 json.decode(string json_string)** ==
1019 +== **json.decode(string json_string)** ==
1142 1142  )))
1143 1143  
1144 -**Function:**
1022 +**Function:** Convert json string to lua data type
1145 1145  
1146 -Convert json string to lua data type
1024 +**Parameters: **//json_string//, string of json data structure
1147 1147  
1148 -**Parameters:**
1026 +**Return: **Lua data type
1149 1149  
1150 -//json_string//, string of json data structure
1151 -
1152 -**Return:**
1153 -
1154 -Lua data type
1155 -
1156 1156  (((
1157 -== **5.3 json.null** ==
1029 +== **json.null** ==
1158 1158  )))
1159 1159  
1160 1160  **Function:**
... ... @@ -1161,32 +1161,24 @@
1161 1161  
1162 1162  This method is used when assembling json data, which is equivalent to null in json. If the user directly uses json.null() to return the address of the function, it must be valid with the use of encode.
1163 1163  
1164 -**Parameters:**
1036 +**Parameters:** None
1165 1165  
1166 -None
1038 +**Return: **None
1167 1167  
1168 -**Return:**
1169 -
1170 -None
1171 -
1172 1172  = **6 Cloud mode** =
1173 1173  
1174 1174  The cloud interface is only used in cloud mode, and V-NET mode is not available.
1175 1175  
1176 1176  (((
1177 -== **6.1 bns_get_alldata()** ==
1045 +== **bns_get_alldata()** ==
1178 1178  )))
1179 1179  
1180 -**Function:**
1048 +**Function:** Obtain all monitoring points (point table) data configured by the end user
1181 1181  
1182 -Obtain all monitoring points (point table) data configured by the end user
1050 +**✎Note: **Assuming there are timing scripts A and B with a period of 1 second, if this function is called in script A, the data will not be obtained if called in script B
1183 1183  
1184 -Note: Assuming there are timing scripts A and B with a period of 1 second, if this function is called in script A, the data will not be obtained if called in script B
1052 +**Parameters:** None
1185 1185  
1186 -**Parameters:**
1187 -
1188 -None
1189 -
1190 1190  **Return:**
1191 1191  
1192 1192  Succeed: table two-dimensional array, the structure is as follows
... ... @@ -1216,13 +1216,11 @@
1216 1216  Failed: //table// empty table
1217 1217  
1218 1218  (((
1219 -== **6.2 bns_get_config(string from)** ==
1083 +== **bns_get_config(string from)** ==
1220 1220  )))
1221 1221  
1222 -**Function:**
1086 +**Function:** Obtain custom configuration parameters with the specified from type
1223 1223  
1224 -Obtain custom configuration parameters with the specified from type
1225 -
1226 1226  **parameter:**
1227 1227  
1228 1228  from type, there are the following two categories, the string must be all lowercase
... ... @@ -1240,13 +1240,11 @@
1240 1240  Failed~:// table// empty table
1241 1241  
1242 1242  (((
1243 -== **6.3 bns_get_data(string name, string data)** ==
1105 +== **bns_get_data(string name, string data)** ==
1244 1244  )))
1245 1245  
1246 -**Function:**
1108 +**Function:**write data to the name of the monitoring point
1247 1247  
1248 -write data to the name of the monitoring point
1249 -
1250 1250  **parameter:**
1251 1251  
1252 1252  //name //The name of the monitoring point
... ... @@ -1260,7 +1260,7 @@
1260 1260  Failed: nil
1261 1261  
1262 1262  (((
1263 -== **6.4 bns_get_data(string name)** ==
1123 +== **bns_get_data(string name)** ==
1264 1264  )))
1265 1265  
1266 1266  **Function:**
... ... @@ -1278,17 +1278,13 @@
1278 1278  Failed: nil
1279 1279  
1280 1280  (((
1281 -== **6.5 bns_get_datadesc()** ==
1141 +== **bns_get_datadesc()** ==
1282 1282  )))
1283 1283  
1284 -**Function:**
1144 +**Function: **Obtain all configured communication ports and monitoring point information
1285 1285  
1286 -Obtain all configured communication ports and monitoring point information
1146 +**Parameters:** None
1287 1287  
1288 -**Parameters:**
1289 -
1290 -None
1291 -
1292 1292  **Return:**
1293 1293  
1294 1294  Succeed: table three-dimensional array, the structure is as follows
... ... @@ -1341,17 +1341,13 @@
1341 1341  Failed~:// table// empty table
1342 1342  
1343 1343  (((
1344 -== **6.6 bns_get_machineinfo()** ==
1200 +== **bns_get_machineinfo()** ==
1345 1345  )))
1346 1346  
1347 -**Function:**
1203 +**Function:** get machine information
1348 1348  
1349 -get machine information
1205 +**Parameters:** None
1350 1350  
1351 -**Parameters:**
1352 -
1353 -None
1354 -
1355 1355  **Return:**
1356 1356  
1357 1357  Succeed: 3 string type results (model, machine code, software version)
... ... @@ -1359,13 +1359,11 @@
1359 1359  Failed: nil
1360 1360  
1361 1361  (((
1362 -== **6.7 bns_get_groupdata(string name)** ==
1214 +== **bns_get_groupdata(string name)** ==
1363 1363  )))
1364 1364  
1365 -**Function:**
1217 +**Function:** Get all monitoring point data under the specified group name
1366 1366  
1367 -Get all monitoring point data under the specified group name
1368 -
1369 1369  **parameter:**
1370 1370  
1371 1371  //Name  // group name
... ... @@ -1377,17 +1377,13 @@
1377 1377  Failed: //table// empty table
1378 1378  
1379 1379  (((
1380 -== **6.8 bns_get_groupdesc()** ==
1230 +== **bns_get_groupdesc()** ==
1381 1381  )))
1382 1382  
1383 -**Function:**
1233 +**Function:** Get all group information
1384 1384  
1385 -Get all group information
1235 +**Parameters:** None
1386 1386  
1387 -**Parameters:**
1388 -
1389 -None
1390 -
1391 1391  **Return:**
1392 1392  
1393 1393  Succeed: //table// two-dimensional array, the structure is as follows
... ... @@ -1401,17 +1401,13 @@
1401 1401  Failed: //table  // empty table
1402 1402  
1403 1403  (((
1404 -== **6.9 bns_get_onecache(string msg)** ==
1250 +== **bns_get_onecache(string msg)** ==
1405 1405  )))
1406 1406  
1407 -**Function:**
1253 +**Function:** Save a message to the cache file, which can be stored after power failure. Store up to 2000 items, delete the old and save the new in a rolling manner when it is full.
1408 1408  
1409 -Save a message to the cache file, which can be stored after power failure. Store up to 2000 items, delete the old and save the new in a rolling manner when it is full.
1255 +**Parameters: **//msg// String
1410 1410  
1411 -**Parameters:**
1412 -
1413 -//msg// String
1414 -
1415 1415  **Return:**
1416 1416  
1417 1417  Succeed: true
... ... @@ -1419,17 +1419,13 @@
1419 1419  Failed: nil
1420 1420  
1421 1421  (((
1422 -== **6.10 bns_get_allcache()** ==
1264 +== **bns_get_allcache()** ==
1423 1423  )))
1424 1424  
1425 -**Function:**
1267 +**Function:** Get all the cached content (once the internal cache file will be emptied)
1426 1426  
1427 -Get all the cached content (once the internal cache file will be emptied)
1269 +**Parameters:** None
1428 1428  
1429 -**Parameters:**
1430 -
1431 -None
1432 -
1433 1433  **Return:**
1434 1434  
1435 1435  Succeed: //table// one-dimensional array
... ... @@ -1457,11 +1457,55 @@
1457 1457  Network communication includes Http request interface, this document does not provide interface description, please refer to the online document for how to use it.
1458 1458  
1459 1459  (((
1460 -== **7.1 http request** ==
1298 +== **http request** ==
1461 1461  )))
1462 1462  
1463 1463  [[http:~~/~~/w3.impa.br/~~~~diego/software/luasocket/http.html#request>>url:http://w3.impa.br/~~diego/software/luasocket/http.html#request]]
1464 1464  
1303 +== https request ==
1304 +
1305 +Example:
1306 +
1307 +local json = require("json")
1308 +
1309 +local https = require("https")
1310 +
1311 +functions https_demo.main()
1312 +
1313 +local url = "https:~/~/XXXXXXXXXXXXXXXXXXXXXXXXXX"
1314 +
1315 +local body = {}
1316 +
1317 +body["XXXXXX"] = "XXXXX"
1318 +
1319 +body["XXXXXXX"] = "XXXXXXXXXXX"
1320 +
1321 +local bodyJson = json.encode(body)
1322 +
1323 +local header = {}
1324 +
1325 +header["content-type"] = "application/json"
1326 +
1327 +local result_table, code, headers, status = https.request(url,
1328 +
1329 +bodyJson)
1330 +
1331 +if code == 200 then
1332 +
1333 +print("https suc")
1334 +
1335 +return true
1336 +
1337 +else
1338 +
1339 +print("https fail")
1340 +
1341 +return nil
1342 +
1343 +end
1344 +
1345 +end
1346 +
1465 1465  (((
1466 1466  = **8 Internal register** =
1467 1467  )))
... ... @@ -1500,7 +1500,7 @@
1500 1500  
1501 1501  **✎Note: **
1502 1502  
1503 -//{{id name="OLE_LINK1"/}}HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart).
1385 +//HSW// is a system special register, so please refer to the system special register table during use. Do not use addresses that are not mentioned in the table, and use the addresses stated in the table with caution (example: restart ("@W_HSW0") Writing a value of 1 will cause V-BOX to restart).
1504 1504  
1505 1505  //Without any conditions. Direct use ("@W_HSW0") will cause the V-BOX to restart continuously.// When using ("@W_HSW0") address, please add judgment conditions, such as: connection to MQTT fails, there is no network, the value of a PLC address meets the condition or counts to a certain value.
1506 1506  
... ... @@ -1843,7 +1843,7 @@
1843 1843  Faied: multi
1844 1844  
1845 1845  (((
1846 -== **9.7 {{id name="_Toc22969"/}}remote_com_start(string config)** ==
1728 +== **9.7 remote_com_start(string config)** ==
1847 1847  )))
1848 1848  
1849 1849  **Function:**
... ... @@ -1883,7 +1883,7 @@
1883 1883  Failed: multi
1884 1884  
1885 1885  (((
1886 -== **9.9{{id name="_Toc22824"/}} remote_com_state()** ==
1768 +== **9.9 remote_com_state()** ==
1887 1887  )))
1888 1888  
1889 1889  **Function:**
... ... @@ -1897,4 +1897,4 @@
1897 1897  1. number, current pass-through status: 0-none 1,2-starting pass-through 3-penetrating 4,5-finishing pass-through 6-pass-through error
1898 1898  1. string, pass-through server domain name and port number, xxxx (domain name): xxx (port number)
1899 1899  
1900 -{{id name="OLE_LINK9"/}}Failed: multi
1782 +Failed: multi