Wiki source code of 05 Lua Script

Last modified by Jett on 2025/06/07 17:34

Show last authors
1 = **1 **Arithmetic operations =
2
3 The example shows how to do the Addition, Subtraction, Multiplication and Division for HMI internal address.
4
5 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Arithmetic%20operations%20by%20Lua%20V1.0.zip]]
6
7 = **2 MQTT Client** =
8
9 The example shows how to connect to the MQTT server.(Test on MaQiaTTo)
10
11 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Lua%20MQTT%20Client.zip]]
12
13 = **3 Timer** =
14
15 The example shows how to use the Lua Timer function.
16
17 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/LuaTimer.zip]]
18
19 = **4 Trigger** =
20
21 The example shows how to use the Lua Trigger function.
22
23 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/LuaTrigger.zip]]
24
25 = **5 User Free Protocol** =
26
27 The example shows the simple write and read of User Free protocol
28
29 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Lua%20User%20Free%20Protocol.zip]]
30
31 = **6 Arabic Keypad** =
32
33 The example shows how to use the Lua to achieve the Arabic keypad. Also available for other non-English language like Cyrillic.
34
35 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/ArabicKeyboard.zip]]
36
37 = **7 FTP Client** =
38
39 The example shows how  to establish the FTP server at WIN10 OS and make V2.0 HMI as FTP client.
40
41 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/FTP%20ClientV2.zip]]
42
43 (% class="box infomessage" %)
44 (((
45 Note: The above demo can work normal in OS V2.0. But if HMI OS  is V3.0, please change "r+" to "r" in the script.
46 )))
47
48 (% style="text-align:center" %)
49 [[image:dZyxVCtWDz.png]]
50
51 ~1. About how to set up the FTP server in Windows PC: **[[Build an FTP Site on IIS>>https://docs.microsoft.com/en-us/iis/publish/using-the-ftp-service/scenario-build-an-ftp-site-on-iis]] **,** [[How to set up and manage an FTP server on Windows 10>>https://www.windowscentral.com/how-set-and-manage-ftp-server-windows-10]]**
52
53 2. Enter PC (FTP Server) IP address and port number (Default 21).
54
55 (% style="text-align:center" %)
56 [[image:LuaFTPDemoIP&Port.png]]
57
58 3. Change the filename of the file that needs to be uploaded. If run on as Offline Simulator, the simulate upload path of "udisk:1.png" will be "C:\WECON\USB\1.png" on the PC.
59
60 (% style="text-align:center" %)
61 [[image:LuaFTPDemoUpload.png]]
62
63 4. Change drive letter of file save path according to drop-down list (There are three option available: Flash, UDisk and SDCard).
64
65 (% style="text-align:center" %)
66 [[image:LuaFTPDemoDropBox.png]]
67
68 5. Change the filename of the file that needs to be downloaded from PC(Server).
69
70 (% style="text-align:center" %)
71 [[image:LuaFTPDemoDownload.png]]
72
73 6. Set the default configuration in file "Script_BG.lua"
74
75 (% style="text-align:center" %)
76 [[image:LuaFTPDemoInitial.png]]
77
78 (% class="box infomessage" %)
79 (((
80 ✎Note: If want to confirm whether it is downloaded successfully, please add a File list object to check in HMI project. If saved path is root path (same to the all three drive), please set the folder as "~/~/".
81 )))
82
83 (% style="text-align:center" %)
84 [[image:LuaFTPDemoFilelist.png]]
85
86 **Common error:**
87
88 In the demo project, if there are some errors in HMI for testing, please check the following steps.
89
90 Error 1: 550 Access is denied
91
92 Open Windows Settings → Update & Security→ Windows Security→ Firewall & network protection→ Advanced setting→ Inbound Rules→ New Rules→ Next → choose "This program path"→ input "C:\Windows\System32\svchost.exe"→ Click "NEXT" continuously
93
94 (% style="text-align:center" %)
95 [[image:qCzqnKTUhp.png]]
96
97 (% style="text-align:center" %)
98 [[image:vfrt3NElMX.png]]
99
100 (% style="text-align:center" %)
101 [[image:dAuz25bdvM.png]]
102
103 (% style="text-align:center" %)
104 [[image:rxQIJkX8ll.png]]
105
106 (% style="text-align:center" %)
107 [[image:vmG8WGu5P2.png]]
108
109
110 Error 2: No route to host
111
112 The previous steps are the same as Error 1 → Port → specific local ports→ input port number "21"→ Click "NEXT" continuously
113
114 (% style="text-align:center" %)
115 [[image:fdsxie8WHc.png]]
116
117 (% style="text-align:center" %)
118 [[image:4ALQq7niTV.png]]
119
120 = **8 Telegram Notification** =
121
122 The example shows how to use Bot API to push the notification to channel or group of Telegram. Please change the Token and Chat id to users' own one.
123
124 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Telegram.zip]]
125
126 = 9** LINE Notify(Not available now)** =
127
128 This example shows how to use the LINE Notify to send message into LINE group. When monitoring bit "@B_HDX0.0" changes, it will trigger and send the message. Please replace with your own Token.
129
130 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/line.zip]]
131
132
133 = 10** How to parse value from subscribing MQTT topic** =
134
135 (% class="box infomessage" %)
136 (((
137 **Only ig series can use this function.**
138 )))
139
140 This example shows how to parse value from subscribing MQTT topic. Get the value and calculate the average value for group F1, F2, F3 and F4. The testing topic name is "testtopic/test/no1/123456".
141
142 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/MQTT%20JSON%20parse.zip]]
143
144 And the subscribed content is like following:
145
146 {{code language="json"}}
147 {
148 "Cluster_ID": "2",
149 "timestamp": "07:01:45-18.02.2022",
150 "Cust_id": "TAM-1",
151 "Platform_id": "Pro44ead8a8dc3345ACC",
152 "version": "1.5",
153 "Line_active": "true",
154 "Total_sensor": "5",
155 "F1": [
156 {
157 "Counter": "0",
158 "Value": "11"
159 },
160 {
161 "Counter": "1",
162 "Value": "21.1"
163 },
164 {
165 "Counter": "2",
166 "Value": "9"
167 },
168 {
169 "Counter": "3",
170 "Value": "0.06"
171 },
172 {
173 "Counter": "4",
174 "Value": "9"
175 },
176 {
177 "Counter": "5",
178 "Value": "19"
179 },
180 {
181 "Counter": "6",
182 "Value": "9"
183 },
184 {
185 "Counter": "7",
186 "Value": "19"
187 },
188 {
189 "Counter": "8",
190 "Value": "22.89"
191 }
192 ],
193 "F2": [
194 {
195 "Counter": "0",
196 "Value": "1.1"
197 },
198 {
199 "Counter": "1",
200 "Value": "21.21"
201 },
202 {
203 "Counter": "2",
204 "Value": "19"
205 },
206 {
207 "Counter": "3",
208 "Value": "0.6"
209 },
210 {
211 "Counter": "4",
212 "Value": "8"
213 },
214 {
215 "Counter": "5",
216 "Value": "19.1"
217 },
218 {
219 "Counter": "6",
220 "Value": "5.1"
221 }
222 ],
223 "F4": [
224 {
225 "Counter": "0",
226 "Value": "11"
227 },
228 {
229 "Counter": "1",
230 "Value": "21.1"
231 },
232 {
233 "Counter": "2",
234 "Value": "9"
235 },
236 {
237 "Counter": "3",
238 "Value": "0.06"
239 },
240 {
241 "Counter": "4",
242 "Value": "9"
243 },
244 {
245 "Counter": "5",
246 "Value": "19"
247 },
248 {
249 "Counter": "6",
250 "Value": "9"
251 },
252 {
253 "Counter": "7",
254 "Value": "12.1"
255 },
256 {
257 "Counter": "8",
258 "Value": "18.1"
259 }
260 ]
261 }
262 {{/code}}
263
264 So we decode this json into lua object, and then assign the values from "Value" field into table (addresses HDW1~~HDW101, HDW112~~HDW202, HDW213~~HDW313, HDW324~~HDW424).
265
266 (% style="text-align:center" %)
267 [[image:MQTTScreen.png]]
268
269 Due to the MQTT code is not able to running on the simulator from PC, following picture is the testing result from actual HMI screen:
270
271 (% style="text-align:center" %)
272 [[image:MQTTactualtestingresult.png]]
273
274 The JSON parser function is located on mqttAction.lua, called mqtt_msg_callback.
275
276 (% style="text-align:center" %)
277 [[image:MQTTJSONparsefunction.png]]
278
279 = **11 High-Low Byte Switch** =
280
281 The example shows how to convert high bytes and low bytes for one 16bit address. Main function is like following:
282
283 {{code language="lua"}}
284 local lowByte = val & 0x00ff
285 local shiftHigh = lowByte << 8
286 local highByte = val & 0xff00
287 local shiftLow = highByte >> 8
288 local newVal = shiftHigh|shiftLow
289 {{/code}}
290
291 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/byteswitch.zip]]
292
293 = **12 Week time setting** =
294
295 The example shows how to use day time to control functions:
296
297 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/week%20time.zip]]
298
299 = **13 MQTT Multi-link** =
300
301 (% class="box infomessage" %)
302 (((
303 **Only ig series can support this function.**
304 )))
305
306 The example shows use mqtt realize multi-machine function:
307
308 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/MQTT%20Multi-link.zip]]
309
310 = **14 CSV File Generation** =
311
312 The example shows convert the custom lua table data into csv string, then output as a file:
313
314 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/csvGenerate.zip]]
315
316 The following steps take HMI simulator as example:
317
318 ~1. Click button "Create Table" to draw lua table in screen.
319
320 (% style="text-align:center" %)
321 [[image:csvGenerateSteps.png]]
322
323 2. Click button "Save as csv" to save the file into HMI storage path. On the HMI simulator, user can enter the simulation path of U disk to check the file whether create successfully.
324
325 (% style="text-align:center" %)
326 [[image:csvGenerateSimulationPath.png]]
327
328 3. Click button "upload" to upload csv file into server side. In this case, we can check the upload path for PC.
329
330 (% style="text-align:center" %)
331 [[image:csvGenerateServerPath.png]]
332
333 The csv file generation is mainly using the following function to implement, the customized data is argument tab, and csv file storage path in HMI is "udisk:weather1.csv":
334
335 (% style="text-align:center" %)
336 [[image:csvGenerateLuaCode.png]]
337
338 The table drawing is mainly using the following function to implement:
339
340 (% style="text-align:center" %)
341 [[image:csvLuaTableDrawing.png]]
342
343 = 15 **String customized length word-wrapped** =
344
345 The example shows automatically line break for long string content according to user input length.
346
347 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/CRLF.zip]]
348
349 The following are some demonstrated strings from offline simulator:
350
351 (% style="text-align:center" %)
352 [[image:WordWrapDisplayResult.png]]
353
354 = 16 Weather forecast HTTP API request =
355
356 The example shows how to parse value from HTTP response body, and display into HMI internal address. The test forecast official website is [[https:~~/~~/www.weatherapi.com/>>url:https://www.weatherapi.com/]]
357
358 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/luahttp.zip]]
359
360 From the API explorer of weatherapi, the one day forecast response would be like the follows(Because the original data of JSON is very long, there we just show the part of it):
361
362 {{code language="JSON"}}
363 {
364 "location": {
365 "name": "London",
366 "region": "City of London, Greater London",
367 "country": "United Kingdom",
368 "lat": 51.52,
369 "lon": -0.11,
370 "tz_id": "Europe/London",
371 "localtime_epoch": 1688961236,
372 "localtime": "2023-07-10 4:53"
373 },
374 "current": {
375 "last_updated_epoch": 1688960700,
376 "last_updated": "2023-07-10 04:45",
377 "temp_c": 14.0,
378 "temp_f": 57.2,
379 "is_day": 0,
380 "condition": {
381 "text": "Partly cloudy",
382 "icon": "//cdn.weatherapi.com/weather/64x64/night/116.png",
383 "code": 1003
384 },
385 "wind_mph": 4.3,
386 "wind_kph": 6.8,
387 "wind_degree": 220,
388 "wind_dir": "SW",
389 "pressure_mb": 1020.0,
390 "pressure_in": 30.12,
391 "precip_mm": 0.0,
392 "precip_in": 0.0,
393 "humidity": 88,
394 "cloud": 50,
395 "feelslike_c": 13.3,
396 "feelslike_f": 56.0,
397 "vis_km": 10.0,
398 "vis_miles": 6.0,
399 "uv": 1.0,
400 "gust_mph": 10.5,
401 "gust_kph": 16.9
402 },
403 "forecast": {
404 "forecastday": [
405 {
406 "date": "2023-07-10",
407 "date_epoch": 1688947200,
408 "day": {
409 "maxtemp_c": 24.4,
410 "maxtemp_f": 75.9,
411 "mintemp_c": 14.1,
412 "mintemp_f": 57.4,
413 "avgtemp_c": 19.6,
414 "avgtemp_f": 67.2,
415 "maxwind_mph": 15.4,
416 "maxwind_kph": 24.8,
417 "totalprecip_mm": 0.0,
418 "totalprecip_in": 0.0,
419 "totalsnow_cm": 0.0,
420 "avgvis_km": 10.0,
421 "avgvis_miles": 6.0,
422 "avghumidity": 60.0,
423 "daily_will_it_rain": 0,
424 "daily_chance_of_rain": 0,
425 "daily_will_it_snow": 0,
426 "daily_chance_of_snow": 0,
427 "condition": {
428 "text": "Partly cloudy",
429 "icon": "//cdn.weatherapi.com/weather/64x64/day/116.png",
430 "code": 1003
431 },
432 "uv": 5.0
433 },
434 "astro": {
435 "sunrise": "04:55 AM",
436 "sunset": "09:16 PM",
437 "moonrise": "12:26 AM",
438 "moonset": "02:01 PM",
439 "moon_phase": "Last Quarter",
440 "moon_illumination": "51",
441 "is_moon_up": 1,
442 "is_sun_up": 0
443 },
444 "hour": [
445 {
446 "time_epoch": 1688943600,
447 "time": "2023-07-10 00:00",
448 "temp_c": 16.2,
449 "temp_f": 61.2,
450 "is_day": 0,
451 "condition": {
452 "text": "Clear",
453 "icon": "//cdn.weatherapi.com/weather/64x64/night/113.png",
454 "code": 1000
455 },
456 "wind_mph": 7.2,
457 "wind_kph": 11.5,
458 "wind_degree": 223,
459 "wind_dir": "SW",
460 "pressure_mb": 1021.0,
461 "pressure_in": 30.14,
462 "precip_mm": 0.0,
463 "precip_in": 0.0,
464 "humidity": 74,
465 "cloud": 6,
466 "feelslike_c": 16.2,
467 "feelslike_f": 61.2,
468 "windchill_c": 16.2,
469 "windchill_f": 61.2,
470 "heatindex_c": 16.2,
471 "heatindex_f": 61.2,
472 "dewpoint_c": 11.6,
473 "dewpoint_f": 52.9,
474 "will_it_rain": 0,
475 "chance_of_rain": 0,
476 "will_it_snow": 0,
477 "chance_of_snow": 0,
478 "vis_km": 10.0,
479 "vis_miles": 6.0,
480 "gust_mph": 10.7,
481 "gust_kph": 17.3,
482 "uv": 1.0
483 },
484 {
485 "time_epoch": 1688947200,
486 "time": "2023-07-10 01:00",
487 "temp_c": 15.7,
488 "temp_f": 60.3,
489 "is_day": 0,
490 "condition": {
491 "text": "Overcast",
492 "icon": "//cdn.weatherapi.com/weather/64x64/night/122.png",
493 "code": 1009
494 },
495 "wind_mph": 7.2,
496 "wind_kph": 11.5,
497 "wind_degree": 232,
498 "wind_dir": "SW",
499 "pressure_mb": 1021.0,
500 "pressure_in": 30.14,
501 "precip_mm": 0.0,
502 "precip_in": 0.0,
503 "humidity": 75,
504 "cloud": 100,
505 "feelslike_c": 15.7,
506 "feelslike_f": 60.3,
507 "windchill_c": 15.7,
508 "windchill_f": 60.3,
509 "heatindex_c": 15.7,
510 "heatindex_f": 60.3,
511 "dewpoint_c": 11.3,
512 "dewpoint_f": 52.3,
513 "will_it_rain": 0,
514 "chance_of_rain": 0,
515 "will_it_snow": 0,
516 "chance_of_snow": 0,
517 "vis_km": 10.0,
518 "vis_miles": 6.0,
519 "gust_mph": 10.5,
520 "gust_kph": 16.9,
521 "uv": 1.0
522 },
523 ...
524 {
525 "time_epoch": 1689026400,
526 "time": "2023-07-10 23:00",
527 "temp_c": 19.0,
528 "temp_f": 66.2,
529 "is_day": 0,
530 "condition": {
531 "text": "Overcast",
532 "icon": "//cdn.weatherapi.com/weather/64x64/night/122.png",
533 "code": 1009
534 },
535 "wind_mph": 9.4,
536 "wind_kph": 15.1,
537 "wind_degree": 192,
538 "wind_dir": "SSW",
539 "pressure_mb": 1015.0,
540 "pressure_in": 29.96,
541 "precip_mm": 0.0,
542 "precip_in": 0.0,
543 "humidity": 66,
544 "cloud": 100,
545 "feelslike_c": 19.0,
546 "feelslike_f": 66.2,
547 "windchill_c": 19.0,
548 "windchill_f": 66.2,
549 "heatindex_c": 19.0,
550 "heatindex_f": 66.2,
551 "dewpoint_c": 12.4,
552 "dewpoint_f": 54.3,
553 "will_it_rain": 0,
554 "chance_of_rain": 0,
555 "will_it_snow": 0,
556 "chance_of_snow": 0,
557 "vis_km": 10.0,
558 "vis_miles": 6.0,
559 "gust_mph": 13.0,
560 "gust_kph": 20.9,
561 "uv": 1.0
562 }
563 ]
564 }
565 ]
566 }
567 }
568 {{/code}}
569
570 The core code is from file API_WEATHER.lua, and function name is get7DayWeatherapiByCityname.
571
572 (% style="text-align:center" %)
573 [[image:WeatherHTTPAPI.png]]
574
575 The HMI offline simulator result:
576
577 (% style="text-align:center" %)
578 [[image:WeatherHTTPtestdisplay.png]]
579
580 = 17 **CSV File Reading** =
581
582 The example shows how to read the csv file into HMI, and then display as table.
583
584 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/csvRead.zip]]
585
586 The core code is from file readcsv.lua:
587
588 1) The file path is set as Sheet_2023_06_13_15_29_45.csv at the root path for USB;
589
590 2) Remember to change csv separator in the second parameter from function csv_csvToTable according to user's need, this demo is using **semicolon** as separator;
591
592 (% style="text-align:center" %)
593 [[image:CSVreadwithsemicolon.png]]
594
595 3) The reading content is a two-dimensional table, can use the table index to locate the specify data cell;
596
597 For example, want to read the 2nd row C column from the table, the table index will be like table[2][3].
598
599 (% style="text-align:center" %)
600 [[image:celllocation.png]]
601
602 = 18 How to convert a number to a string =
603
604 The example shows how to convert a number to a string using the "tostring()" function.
605
606 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Number%20to%20string.zip]]
607
608 Note:This demo converts a 64-bit floating to a string,you can change the data format of "@W_HDW0" depand on requirements
609
610 The core code is from file convert.lua:
611
612 (% style="text-align:center" %)
613 [[image:convert.lua.png]]
614
615 The HMI offline simulator result:
616
617 (% style="text-align:center" %)
618 [[image:Converttestdisplay.png]]
619
620 = 19 HUAWEI CLOUD & OpenCloud =
621
622 About the details, please check the powerpoint or video of Lua MQTT & OpenCloud [[Jump To>>doc:PIStudio.Download.1 Manual.WebHome]]
623
624 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/HuaweiMQ%281%29.zip]]
625
626 = 20 UDP Multicast =
627
628 The example shows how to use UDP multicast feature to send and receive data.
629
630 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/UDP%20Multicast.zip]]
631
632 About the details, please check the [[UDP module>>https://docs.we-con.com.cn/bin/view/PIStudio/09%20Lua%20Editor/Lua%20Script/#HUDPmodule-1]]
633
634 = 21 ATC module **send SMS** =
635
636 The example shows how to use HMI to customize communication with the ATC SMS module via Lua script to send SMS.
637
638 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/SMS.zip]]
639
640 = 22 TCP Client =
641
642 The example shows how to use the Lua Socket TCP module to connect with a TCP server.
643
644 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/TCP%20ClientV1.1.zip]]
645
646 ~1. Set the initial values of Server IP and port number.
647
648 (% style="text-align:center" %)
649 [[image:vcbt6CE6EL.png]]
650
651 2. Set the actual receive length of TCP message according to the actual needs.
652
653 (% style="text-align:center" %)
654 [[image:tPN1mbz7ny.png]]
655
656 = 23 Lua SMS =
657
658 The example shows how to use HMI built-in 4G module to send SMS via Lua script. This demo requires the HMI model name with (G) or (AG).
659
660 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/Lua%20SMS%20Library.zip]]
661
662 = 24 ATC module Calling =
663
664 The example shows how to use HMI to customize communication with the ATC-3101 module via Lua script to make phone call.
665
666 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/lua%20ATC%20calling.rar]]
667
668 (% class="box infomessage" %)
669 (((
670 Note:Due to differences in operators, it is recommended to test before use.
671 )))
672
673 = 25 Lua SQLite =
674
675 The example shows how to generate a user customized database and table via Lua script.
676
677 [[Download link>>https://ftp.we-con.com.cn/Download/WIKI/PI%20HMI/Demo/Lua%20Script/SQL%20demo.zip]]
678
679 ~1. Choose the designate storage path of db file, here we choose the U disk;
680
681 (% style="text-align:center" %)
682 [[image:lgvAY47My2.png]]
683
684 2. Create the database a.db and create the table filer;
685
686 (% style="text-align:center" %)
687 [[image:SbfZ7qC2qr.png]]
688
689 3. Write the data of HDW10, then click Add data to insert new record into the table filer;
690
691 (% style="text-align:center" %)
692 [[image:sMi8nKsDCy.png]]
693
694 4. Export the file a.db to PC, and using the DB Browser to view the created data(Because it is not standard data record file, not able to be recognized correctly by DataLogTool);
695
696 (% style="text-align:center" %)
697 [[image:xT8f08pfY0.png]]