Last modified by Mengting Qiu on 2023/12/14 11:15

From version 171.1
edited by Mengting Qiu
on 2023/12/12 11:11
Change comment: There is no comment for this version
To version 116.4
edited by Xiaoling
on 2023/11/13 10:38
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.ting
1 +XWiki.Xiaoling
Content
... ... @@ -8,7 +8,7 @@
8 8  
9 9  
10 10  
11 -**Table of Contents:(% style="display:none" %) (%%)**
11 +**Table of Contents**
12 12  
13 13  {{toc/}}
14 14  
... ... @@ -47,8 +47,10 @@
47 47  * Firmware upgradable via program port or LoRa protocol
48 48  * Built-in 2400mAh battery or power by external power source
49 49  
50 +
50 50  == 1.3 Specification ==
51 51  
53 +
52 52  (% style="color:#037691" %)**LiDAR Sensor:**
53 53  
54 54  * Operation Temperature: -40 ~~ 80 °C
... ... @@ -59,12 +59,15 @@
59 59  * ToF FoV: ±9°, Total 18°
60 60  * Light source: VCSEL
61 61  
64 +
65 +
66 +
62 62  == 1.4 Power Consumption ==
63 63  
64 64  
65 65  (% style="color:#037691" %)**Battery Power Mode:**
66 66  
67 -* Idle: 3uA @ 3.3v
72 +* Idle: 0.003 mA @ 3.3v
68 68  * Max : 360 mA
69 69  
70 70  (% style="color:#037691" %)**Continuously mode**:
... ... @@ -72,21 +72,9 @@
72 72  * Idle: 21 mA @ 3.3v
73 73  * Max : 360 mA
74 74  
75 -== 1.5 Use Case ==
76 76  
77 -(% class="mark" %)**Regular Distance Detect**
78 78  
79 -[[image:image-20231211220922-1.png||height="352" width="605"]]
80 80  
81 -
82 -(% class="mark" %)**Counting / Alarm**
83 -
84 -[[image:image-20231211221253-2.png]]
85 -
86 -
87 -[[image:image-20231211221436-3.png]]
88 -
89 -
90 90  = 2. Configure DS20L to connect to LoRaWAN network =
91 91  
92 92  == 2.1 How it works ==
... ... @@ -105,7 +105,7 @@
105 105  
106 106  [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
107 107  
108 -=== Step 1: Create a device in TTN with the OTAA keys from DS20L. ===
101 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
109 109  
110 110  Each DS20L is shipped with a sticker with the default device EUI as below:
111 111  
... ... @@ -112,36 +112,40 @@
112 112  [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
113 113  
114 114  
115 -You can enter this key in the LoRaWAN Server portal. Below is TTN V3 screenshot:
108 +You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
116 116  
117 117  
118 118  (% style="color:blue" %)**Register the device**
119 119  
120 -[[image:image-20231207144600-2.png||height="703" width="756"]]
113 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
121 121  
122 122  
123 -(% style="color:blue" %)**Add DevEUI and AppKey**
116 +(% style="color:blue" %)**Add APP EUI and DEV EUI**
124 124  
125 -[[image:image-20231207145121-5.png||height="540" width="756"]]
118 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
126 126  
127 127  
121 +(% style="color:blue" %)**Add APP EUI in the application**
128 128  
129 -=== Step 2: Activate DS20L ===
130 130  
131 -[[image:image-20231128133704-1.png||height="189" width="441"]]
124 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
132 132  
133 -Press the button for 5 seconds to activate the DS20L.
134 134  
135 -The switch is switched to (% style="color:blue" %)**E** (%%)and the external power supply is used.
127 +(% style="color:blue" %)**Add APP KEY**
136 136  
137 -The switch is switched to (% style="color:blue" %)**I** (%%)and DS20L will be power by the built-in battery.
129 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
138 138  
131 +
132 +(% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
133 +
134 +
135 +Press the button for 5 seconds to activate the DS20L.
136 +
139 139  (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
140 140  
141 141  After join success, it will start to upload messages to TTN and you can see the messages in the panel.
142 142  
143 143  
144 -
145 145  == 2.3 ​Uplink Payload ==
146 146  
147 147  === 2.3.1 Device Status, FPORT~=5 ===
... ... @@ -159,9 +159,9 @@
159 159  
160 160  Example parse in TTNv3
161 161  
162 -[[image:image-20231206151412-3.png||height="179" width="1070"]]
159 +[[image:image-20230805103904-1.png||height="131" width="711"]]
163 163  
164 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
161 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
165 165  
166 166  (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
167 167  
... ... @@ -215,342 +215,340 @@
215 215  === 2.3.2 Uplink Payload, FPORT~=2 ===
216 216  
217 217  
218 -==== (% style="color:red" %)**AT+MOD~=1**(%%) ====
215 +(((
216 +DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
219 219  
220 -Regularly detect distance and report. When the distance exceeds the limit, the alarm flag is set to 1, and the report can be triggered by external interrupts.
218 +periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
221 221  
222 -**Uplink Payload totals 10 bytes.**
220 +Uplink Payload totals 11 bytes.
221 +)))
223 223  
224 224  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
225 -|(% style="background-color:#4f81bd; color:White; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:White; width:30px" %)**2**|(% style="background-color:#4f81bd; color:White; width:130px" %)**1**|(% style="background-color:#4f81bd; color:White; width:70px" %)**2**|(% style="background-color:#4f81bd; color:White; width:100px" %)**1**|(% style="background-color:#4f81bd; color:White; width:120px" %)**4**
226 -|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+ Alarm+ Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count
224 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
225 +**Size(bytes)**
226 +)))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 80px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**
227 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
228 +[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
229 +)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
230 +[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
231 +)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
232 +[[Message Type>>||anchor="HMessageType"]]
233 +)))
227 227  
228 -**MOD+ Alarm+ Interrupt:**
235 +[[image:image-20230805104104-2.png||height="136" width="754"]]
229 229  
230 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:400px" %)
231 -|(% style="background-color:#4f81bd; color:White; width:50px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:White; width:60px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:White; width:70px" %)**bit5**|(% style="background-color:#4f81bd; color:White; width:120px" %)**bit4**
232 -|(% style="width:80px" %)Value|(% style="width:80px" %)MOD|(% style="width:89px" %)Digital Interrupt
233 - |(% style="width:167px" %)(((
234 -Distance Alarm
235 235  
236 -0: No Alarm;
238 +==== (% style="color:blue" %)**Battery Info**(%%) ====
237 237  
238 -1: Alarm
239 -)))
240 240  
241 -Example parse in TTNv3
241 +Check the battery voltage for DS20L.
242 242  
243 -[[image:image-20231209152917-1.png||height="300" width="1172"]]
243 +Ex1: 0x0B45 = 2885mV
244 244  
245 -(% style="color:blue" %)**Battery Info:**
245 +Ex2: 0x0B49 = 2889mV
246 246  
247 -Check the battery voltage for DS20L
248 248  
249 -Ex1: 0x0E10 = 3600mV
248 +==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
250 250  
251 251  
252 -(% style="color:blue" %)**MOD & Alarm & Interrupt:**
251 +This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
253 253  
254 -(% style="color:red" %)**MOD:**
255 255  
256 -**Example: ** (0x60>>6) & 0x3f =1
254 +**Example**:
257 257  
258 -**0x01:**  Regularly detect distance and report.
259 -**0x02: ** Uninterrupted measurement (external power supply).
256 +If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
260 260  
261 -(% style="color:red" %)**Alarm:**
258 +If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
262 262  
263 -When the detection distance exceeds the limit, the alarm flag is set to 1.
264 264  
265 -(% style="color:red" %)**Interrupt:**
261 +==== (% style="color:blue" %)**Distance**(%%) ====
266 266  
267 -Whether it is an external interrupt.
268 268  
264 +Represents the distance value of the measurement output, the default unit is cm, and the value range parsed as a decimal number is 0-1200. In actual use, when the signal strength value Strength.
269 269  
270 -(% style="color:blue" %)**Distance info:**
271 271  
272 272  **Example**:
273 273  
274 -If payload is: 0708H: distance = 0708H = 1800 mm
269 +If the data you get from the register is 0x0B 0xEA, the distance between the sensor and the measured object is 0BEA(H) = 3050 (D)/10 = 305cm.
275 275  
276 276  
277 -(% style="color:blue" %)**Sensor State:**
272 +==== (% style="color:blue" %)**Distance signal strength**(%%) ====
278 278  
279 -Ex1: 0x00: Normal collection distance
280 280  
281 -Ex2: 0x0x: Distance collection is wrong
275 +Refers to the signal strength, the default output value will be between 0-65535. When the distance measurement gear is fixed, the farther the distance measurement is, the lower the signal strength; the lower the target reflectivity, the lower the signal strength. When Strength is greater than 100 and not equal to 65535, the measured value of Dist is considered credible.
282 282  
283 283  
284 -(% style="color:blue" %)**Interrupt Count:**
278 +**Example**:
285 285  
286 -If payload is:000007D0H: count = 07D0H =2000
280 +If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
287 287  
282 +Customers can judge whether they need to adjust the environment based on the signal strength.
288 288  
289 289  
290 -==== (% style="color:red" %)**AT+MOD~=2**(%%)** ** ====
285 +**1) When the sensor detects valid data:**
291 291  
287 +[[image:image-20230805155335-1.png||height="145" width="724"]]
292 292  
293 -The power consumption of uninterrupted measurement is high, and the device needs to use external power supply.(The switch is switched to E and the external power supply is used.)
294 294  
295 -[[image:image-20231128133704-1.png||height="189" width="441"]]
290 +**2) When the sensor detects invalid data:**
296 296  
292 +[[image:image-20230805155428-2.png||height="139" width="726"]]
297 297  
298 -* **Set over-limit alarm mode: AT+DOL=3,500,244,**(% style="color:red" %)0(%%)**,120**
299 299  
300 -(% class="wikigeneratedid" id="HUninterruptedmeasurement.Whenthedistanceexceedsthelimit2CtheoutputIOissethighandreportsarereportedeveryfiveminutes.Thetimecanbesetandpoweredbyanexternalpowersupply.UplinkPayloadtotals11bytes." %)
301 -Uninterrupted measurement. When the distance exceeds the limit, the output IO high, instant alarm.
295 +**3) When the sensor is not connected:**
302 302  
303 -(% class="wikigeneratedid" %)
304 -**Uplink Payload totals 9 bytes.**
297 +[[image:image-20230805155515-3.png||height="143" width="725"]]
305 305  
306 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
307 -|(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**
308 -|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:210px" %)MOD+ DO+ Alarm+ DO flag+ Limit flag|(% style="width:74px" %)Distance |(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
309 309  
310 -**MOD+DO+ Alarm+ Do flag+ Limit flag:**
300 +==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
311 311  
312 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
313 -|(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:white; width:60px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit4**|(% style="background-color:#4f81bd; color:white; width:120px" %)**bit3**|(% style="background-color:#4f81bd; color:white; width:100px" %)**[bit2:bit1:bit0]**
314 -|(% style="width:50px" %)Value|(% style="width:60px" %)MOD|(% style="width:89px" %)(((
315 -(((
316 -DO
317 -)))
318 318  
319 -(((
320 -0:Within limit
303 +This data field shows if this packet is generated by interrupt or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]] for the hardware and software set up.
321 321  
322 -1:Out of limit
323 -)))
324 -)))|(% style="width:73px" %)(((
325 -Alarm
305 +Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
326 326  
327 -0: No Alarm;
307 +**Example:**
328 328  
329 -1: Alarm
330 -)))|(% style="width:150px" %)(((
331 -DO flag
309 +If byte[0]&0x01=0x00 : Normal uplink packet.
332 332  
333 -0:the over-limit alarm mode
311 +If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
334 334  
335 -1:the person or object count mode
336 -)))|(% style="width:103px" %)Limit flag
337 -(0~~3)
338 338  
339 -Example parse in TTNv3
314 +==== (% style="color:blue" %)**LiDAR temp**(%%) ====
340 340  
341 -[[image:image-20231209171127-3.png||height="374" width="1209"]]
342 342  
343 -(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
317 +Characterize the internal temperature value of the sensor.
344 344  
345 -(% style="color:red" %)**MOD:**
319 +**Example: **
320 +If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
321 +If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
346 346  
347 -**Example: ** (0x60>>6) & 0x3f =1
348 348  
349 -**0x01:**  Regularly detect distance and report.
350 -**0x02: ** Uninterrupted measurement (external power supply).
324 +==== (% style="color:blue" %)**Message Type**(%%) ====
351 351  
352 -(% style="color:red" %)**Alarm:**
353 353  
354 -When the detection distance exceeds the limit, the alarm flag is set to 1.
327 +(((
328 +For a normal uplink payload, the message type is always 0x01.
329 +)))
355 355  
356 -(% style="color:red" %)**DO:**
331 +(((
332 +Valid Message Type:
333 +)))
357 357  
358 -When the distance exceeds the set threshold, pull the Do pin high.
335 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
336 +|=(% style="width: 161px;background-color:#4F81BD;color:white" %)**Message Type Code**|=(% style="width: 164px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 174px;background-color:#4F81BD;color:white" %)**Payload**
337 +|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
338 +|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
359 359  
360 -(% style="color:red" %)**Limit flag:**
340 +[[image:image-20230805150315-4.png||height="233" width="723"]]
361 361  
362 -Mode for setting threshold: **0~~3**
363 363  
364 -**0:** does not use upper and lower limits
343 +=== 2.3.3 Historical measuring distance, FPORT~=3 ===
365 365  
366 -**1:** Use upper and lower limits
367 367  
368 -**2:** Less than the upper limit
346 +DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
369 369  
370 -**3: **Greater than the lower limit
348 +The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
371 371  
350 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
351 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
352 +**Size(bytes)**
353 +)))|=(% style="width: 80px;background-color:#4F81BD;color:white" %)1|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD; color: white; width: 85px;" %)**1**|=(% style="background-color: #4F81BD; color: white; width: 85px;" %)4
354 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
355 +Reserve(0xFF)
356 +)))|Distance|Distance signal strength|(% style="width:88px" %)(((
357 +LiDAR temp
358 +)))|(% style="width:85px" %)Unix TimeStamp
372 372  
373 -(% style="color:blue" %)**Distance:**
360 +**Interrupt flag & Interrupt level:**
374 374  
375 - Actual sampling distance values.
362 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
363 +|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
364 +**Size(bit)**
365 +)))|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit6**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**[bit5:bit2]**|=(% style="width: 90px; background-color: #4F81BD; color: white;" %)**bit1**|=(% style="background-color: #4F81BD; color: white; width: 90px;" %)**bit0**
366 +|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)No ACK message|(% style="width:62.5px" %)Poll Message Flag|Reserve|(% style="width:91px" %)Interrupt level|(% style="width:88px" %)(((
367 +Interrupt flag
368 +)))
376 376  
377 -**Example:**
370 +* (((
371 +Each data entry is 11 bytes and has the same structure as [[Uplink Payload>>||anchor="H2.3.2UplinkPayload2CFPORT3D2"]], to save airtime and battery, DS20L will send max bytes according to the current DR and Frequency bands.
372 +)))
378 378  
379 -**AT+DOL=1,500,244,**(% style="color:red" %)0(%%)**,120  **
374 +For example, in the US915 band, the max payload for different DR is:
380 380  
381 -The distance is detected every 120ms.
376 +**a) DR0:** max is 11 bytes so one entry of data
382 382  
383 -When the actual detection value is within the range of [244mm,500mm], the data is uploaded in the normal TDC time.
378 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
384 384  
385 -When the actual detection value is outside the range of [244mm,500mm], the uplink data will be immediately alerted.
380 +**c) DR2:** total payload includes 11 entries of data
386 386  
387 -If payload is: 0708H: distance = 0708H = 1800 mm
382 +**d) DR3:** total payload includes 22 entries of data.
388 388  
384 +If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
389 389  
390 -(% style="color:blue" %)**Upper limit:**
391 391  
392 -The upper limit of the threshold cannot exceed 2000mm.
387 +**Downlink:**
393 393  
389 +0x31 64 CC 68 0C 64 CC 69 74 05
394 394  
395 -(% style="color:blue" %)**Lower limit:**
391 +[[image:image-20230805144936-2.png||height="113" width="746"]]
396 396  
397 -The lower limit of the threshold cannot be less than 3mm.
393 +**Uplink:**
398 398  
395 +43 FF 0E 10 00 B0 1E 64 CC 68 0C 40 FF 0D DE 00 A8 1E 64 CC 68 29 40 FF 09 92 00 D3 1E 64 CC 68 65 40 FF 02 3A 02 BC 1E 64 CC 68 A1 41 FF 0E 1A 00 A4 1E 64 CC 68 C0 40 FF 0D 2A 00 B8 1E 64 CC 68 E8 40 FF 00 C8 11 6A 1E 64 CC 69 24 40 FF 0E 24 00 AD 1E 64 CC 69 6D
399 399  
400 -* **Set the person or object count mode: AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120**
401 401  
402 -Continuous measurement, detect and count people or things passing by in distance limit mode.
398 +**Parsed Value:**
403 403  
404 -**Uplink Payload totals 11 bytes.**
400 +[DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
405 405  
406 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
407 -|(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**4**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**
408 -|(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:210px" %)MOD+ DO+ Alarm+ DO flag+ Limit flag|(% style="width:176px" %)Distance limit alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
409 409  
410 -**MOD+DO+ Alarm+ Do flag+ Limit flag:**
403 +[360,176,30,High,True,2023-08-04 02:53:00],
411 411  
412 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
413 -|(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:white; width:60px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit4**|(% style="background-color:#4f81bd; color:white; width:120px" %)**bit3**|(% style="background-color:#4f81bd; color:white; width:100px" %)**[bit2:bit1:bit0]**
414 -|(% style="width:50px" %)Value|(% style="width:60px" %)MOD|(% style="width:89px" %)(((
415 -(((
416 -DO
417 -)))
405 +[355,168,30,Low,False,2023-08-04 02:53:29],
418 418  
419 -(((
420 -0:Within limit
407 +[245,211,30,Low,False,2023-08-04 02:54:29],
421 421  
422 -1:Out of limit
423 -)))
424 -)))|(% style="width:73px" %)(((
425 -Alarm
409 +[57,700,30,Low,False,2023-08-04 02:55:29],
426 426  
427 -0: No Alarm;
411 +[361,164,30,Low,True,2023-08-04 02:56:00],
428 428  
429 -1: Alarm
430 -)))|(% style="width:150px" %)(((
431 -DO flag
413 +[337,184,30,Low,False,2023-08-04 02:56:40],
432 432  
433 -0:the over-limit alarm mode
415 +[20,4458,30,Low,False,2023-08-04 02:57:40],
434 434  
435 -1:the person or object count mode
436 -)))|(% style="width:103px" %)Limit flag
437 -(0~~3)
417 +[362,173,30,Low,False,2023-08-04 02:58:53],
438 438  
439 -Example parse in TTNv3
440 440  
441 -[[image:image-20231209173457-5.png||height="277" width="1098"]]
420 +**History read from serial port:**
442 442  
443 -(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
422 +[[image:image-20230805145056-3.png]]
444 444  
445 -(% style="color:red" %)**MOD:**
446 446  
447 -**Example: ** (0x60>>6) & 0x3f =1
425 +=== 2.3.4 Decode payload in The Things Network ===
448 448  
449 -**0x01:**  Regularly detect distance and report.
450 -**0x02: ** Uninterrupted measurement (external power supply).
451 451  
452 -(% style="color:red" %)**Alarm:**
428 +While using TTN network, you can add the payload format to decode the payload.
453 453  
454 -When the detection distance exceeds the limit, the alarm flag is set to 1.
430 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654592762713-715.png?rev=1.1||alt="1654592762713-715.png"]]
455 455  
456 -(% style="color:red" %)**Do:**
457 457  
458 -When the distance exceeds the set threshold, pull the Do pin high.
433 +(((
434 +The payload decoder function for TTN is here:
435 +)))
459 459  
460 -(% style="color:red" %)**Limit flag:**
437 +(((
438 +DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
439 +)))
461 461  
462 -Mode for setting threshold: **0~~3**
463 463  
464 -**0:** does not use upper and lower limits
442 +== 2.4 ​Show Data in DataCake IoT Server ==
465 465  
466 -**1:** Use upper and lower limits
467 467  
468 -**2:** Less than the upper limit
445 +(((
446 +[[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, once we have data in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
447 +)))
469 469  
470 -**3: **Greater than the lower limit
471 471  
450 +(((
451 +(% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
452 +)))
472 472  
473 -(% style="color:blue" %)**Distance limit alarm count:**
454 +(((
455 +(% style="color:blue" %)**Step 2**(%%)**: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:**
456 +)))
474 474  
475 -People or objects are collected and counted within a limited distance.
476 476  
477 -The detection of a stationary person or object at each sampling time will be repeated three times, and the fourth sampling count will be added by 1.
459 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654592790040-760.png?rev=1.1||alt="1654592790040-760.png"]]
478 478  
479 -**Example:**
480 480  
481 -**AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120   **
462 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654592800389-571.png?rev=1.1||alt="1654592800389-571.png"]]
482 482  
483 -People or objects passing within the distance range of [244mm,500mm] are detected and counted every 120ms.
484 484  
485 -If payload is: 0x56H, interrupt count =0x56H =86
465 +(% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
486 486  
467 +(% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
487 487  
488 -(% style="color:blue" %)**Upper limit:**
469 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654851029373-510.png?rev=1.1||alt="1654851029373-510.png"]]
489 489  
490 -The upper limit of the threshold cannot exceed 2000mm.
491 491  
472 +After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
492 492  
493 -(% style="color:blue" %)**Lower limit:**
474 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20220610165129-11.png?width=1088&height=595&rev=1.1||alt="image-20220610165129-11.png"]]
494 494  
495 -The lower limit of the threshold cannot be less than 3mm.
496 496  
477 +== 2.5 Datalog Feature ==
497 497  
498 -== 2.4 Decode payload in The Things Network ==
499 499  
480 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DS20L will store the reading for future retrieving purposes.
500 500  
501 -While using TTN network, you can add the payload format to decode the payload.
502 502  
503 -[[image:image-20231206143515-1.png||height="534" width="759"]]
483 +=== 2.5.1 Ways to get datalog via LoRaWAN ===
504 504  
505 505  
506 -(((
507 -The payload decoder function for TTN is here:
508 -)))
486 +Set PNACKMD=1, DS20L will wait for ACK for every uplink, when there is no LoRaWAN network, DS20L will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
509 509  
510 -(((
511 -DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
488 +* (((
489 +a) DS20L will do an ACK check for data records sending to make sure every data arrive server.
512 512  )))
491 +* (((
492 +b) DS20L will send data in **CONFIRMED Mode** when PNACKMD=1, but DS20L won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if DS20L gets a ACK, DS20L will consider there is a network connection and resend all NONE-ACK messages.
493 +)))
513 513  
495 +=== 2.5.2 Unix TimeStamp ===
514 514  
515 -== 2.5 ​Show Data in DataCake IoT Server ==
516 516  
498 +DS20L uses Unix TimeStamp format based on
517 517  
518 -(((
519 -[[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, onhuman-friendlya in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
520 -)))
500 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
521 521  
502 +User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
522 522  
523 -(((
524 -(% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
525 -)))
504 +Below is the converter example
526 526  
527 -(((
528 -(% style="color:blue" %)**Step 2**(%%)**: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:**
529 -)))
506 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
530 530  
531 531  
532 -[[image:image-20231207153532-6.png||height="562" width="861"]]
509 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
533 533  
534 534  
535 -[[image:image-20231207155940-8.png]]
512 +=== 2.5.3 Set Device Time ===
536 536  
537 -For more detailed instructions, refer to the following instructions: [[Welcome - Datacake Docs>>url:https://docs.datacake.de/]]
538 538  
539 -[[image:image-20231207160733-11.png||height="429" width="759"]]
515 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
540 540  
517 +Once DS20L Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to DS20L. If DS20L fails to get the time from the server, DS20L will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
541 541  
542 -(% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
519 +(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
543 543  
544 -(% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
545 545  
546 -[[image:image-20231207160343-10.png||height="665" width="705"]]
522 +=== 2.5.4 Poll sensor value ===
547 547  
548 548  
549 -After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
525 +Users can poll sensor values based on timestamps. Below is the downlink command.
550 550  
551 -[[image:image-20231129100454-2.png||height="501" width="928"]]
527 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
528 +|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
529 +|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
530 +|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
552 552  
532 +(((
533 +Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
534 +)))
553 553  
536 +(((
537 +For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]]
538 +)))
539 +
540 +(((
541 +Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
542 +)))
543 +
544 +(((
545 +Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s.
546 +)))
547 +
548 +
554 554  == 2.6 Frequency Plans ==
555 555  
556 556  
... ... @@ -559,7 +559,7 @@
559 559  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
560 560  
561 561  
562 -= 3. Configure DS20L =
557 +3. Configure DS20L
563 563  
564 564  == 3.1 Configure Methods ==
565 565  
... ... @@ -589,7 +589,7 @@
589 589  == 3.3 Commands special design for DS20L ==
590 590  
591 591  
592 -Below commands only valid for DS20L, as below:
587 +These commands only valid for DS20L, as below:
593 593  
594 594  
595 595  === 3.3.1 Set Transmit Interval Time ===
... ... @@ -631,7 +631,7 @@
631 631  Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
632 632  )))
633 633  * (((
634 -Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
629 +Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
635 635  
636 636  
637 637  
... ... @@ -654,7 +654,7 @@
654 654  the mode is 0 =Disable Interrupt
655 655  )))
656 656  |(% style="width:154px" %)(((
657 -AT+INTMOD=3
652 +AT+INTMOD=2
658 658  
659 659  (default)
660 660  )))|(% style="width:196px" %)(((
... ... @@ -675,117 +675,6 @@
675 675  
676 676  * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
677 677  
678 -=== 3.3.3 Set work mode ===
679 -
680 -
681 -Feature: Switch working mode
682 -
683 -(% style="color:blue" %)**AT Command: AT+MOD**
684 -
685 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
686 -|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Response**
687 -|(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
688 -|(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
689 -OK
690 -Attention:Take effect after ATZ
691 -)))
692 -
693 -(% style="color:blue" %)**Downlink Command:**
694 -
695 -* **Example: **0x0A01 ~/~/  Same as AT+MOD=1
696 -
697 -* **Example:** 0x0A02  ~/~/  Same as AT+MOD=2
698 -
699 -=== 3.3.4 Set threshold and threshold mode ===
700 -
701 -
702 -Feature, Set threshold and threshold mode
703 -
704 -When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
705 -
706 -(% style="color:blue" %)**AT Command: AT+DOL**
707 -
708 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
709 -|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:240px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:108px" %)**Response**
710 -|(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
711 -0,0,0,0,400
712 -OK
713 -)))
714 -|(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
715 -
716 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
717 -|=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %) Parameter
718 -|(% rowspan="11" style="color:blue; width:120px" %)(((
719 -
720 -
721 -
722 -
723 -
724 -
725 -
726 -
727 -
728 -
729 -
730 -**AT+DOL=1,1800,3,0,400**
731 -)))|(% rowspan="4" style="width:240px" %)(((
732 -
733 -
734 -
735 -
736 -The first bit sets the limit mode
737 -)))|(% style="width:150px" %)0: Do not use upper and lower limits
738 -|(% style="width:251px" %)1: Use upper and lower limits
739 -|(% style="width:251px" %)2:Less than the upper limit
740 -|(% style="width:251px" %)3: Greater than the lower limit
741 -|(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
742 -|(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
743 -|(% rowspan="2" style="width:226px" %)The fourth bit sets the over-limit alarm or person or object count.|(% style="width:251px" %)0 Over-limit alarm, DO output is high
744 -|(% style="width:251px" %)1 Person or object counting statistics
745 -|(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
746 -100~~10000ms
747 -
748 -
749 -)))
750 -
751 -(% style="color:blue" %)**Downlink Command: 0x07**
752 -
753 -Format: Command Code (0x07) followed by 9 bytes.
754 -
755 -If the downlink payload=**07 01 0708 0064 00 0190**, it means set the END Node's limit mode to 0x01,upper limit value to 0x0708=1800(mm), lower limit value to 0x0064=100(mm), to over-limit alarm(0x00) ,the sampling time to 0x0190=400(ms), while type code is 0x07.
756 -
757 -* Example 0: Downlink Payload: 07 00 0000 0000 00 0190  **~-~-->**  AT+MOD=0,0,0,0,400
758 -
759 -* Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
760 -
761 -* Example 2: Downlink Payload: 070200000064000190  **~-~-->**  AT+MOD=2,1800,100,0,400
762 -
763 -* Example 3: Downlink Payload: 070300000064000190  **~-~-->**  AT+MOD=3,0,100,0,400
764 -
765 -(% style="color:Red" %)**Note: The over-limit alarm is applied to MOD1 and MOD2.**
766 -
767 -**For example:**
768 -
769 -* **AT+MOD=1**
770 -
771 - **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
772 -
773 -Send data according to the normal TDC time. If the mode limit is exceeded, the alarm flag is set to 1:
774 -
775 -[[image:image-20231211113204-2.png||height="292" width="1093"]]
776 -
777 -* **AT+MOD=2  **
778 -
779 - **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
780 -
781 -If the mode limit is exceeded, the data is immediately uplink and the alarm flag is set to 1:
782 -
783 -[[image:image-20231211114932-3.png||height="277" width="1248"]]
784 -
785 -
786 -
787 -
788 -
789 789  = 4. Battery & Power Consumption =
790 790  
791 791  
... ... @@ -822,33 +822,6 @@
822 822  DS20L use the same frequency as other Dragino products. User can see the detail from this link:  [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]]
823 823  
824 824  
825 -== 6.2 DS20L programming line ==
826 -
827 -
828 -缺图 后续补上
829 -
830 -feature:
831 -
832 -for AT commands
833 -
834 -Update the firmware of DS20L
835 -
836 -Support interrupt mode
837 -
838 -
839 -== 6.3 LiDAR probe position ==
840 -
841 -
842 -[[image:1701155390576-216.png||height="285" width="307"]]
843 -
844 -The black oval hole in the picture is the LiDAR probe.
845 -
846 -
847 -== 6.4 Interface definition ==
848 -
849 -[[image:image-20231128151132-2.png||height="305" width="557"]]
850 -
851 -
852 852  = 7. Trouble Shooting =
853 853  
854 854  == 7.1 AT Command input doesn't work ==
1701149922873-259.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -24.5 KB
Content
1701152902759-553.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -52.2 KB
Content
1701152946067-561.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -52.2 KB
Content
1701155076393-719.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -54.6 KB
Content
1701155150328-206.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -54.6 KB
Content
1701155390576-216.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -293.9 KB
Content
image-20231128133704-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -190.6 KB
Content
image-20231128151132-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -281.2 KB
Content
image-20231129085201-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -70.6 KB
Content
image-20231129100454-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -70.1 KB
Content
image-20231206143515-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -89.5 KB
Content
image-20231206144950-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -41.0 KB
Content
image-20231206151412-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -58.8 KB
Content
image-20231206154621-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -71.2 KB
Content
image-20231206194804-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -53.7 KB
Content
image-20231206195704-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -64.1 KB
Content
image-20231207142208-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -27.2 KB
Content
image-20231207144600-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -55.4 KB
Content
image-20231207144837-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -31.1 KB
Content
image-20231207144856-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -31.1 KB
Content
image-20231207145121-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -33.3 KB
Content
image-20231207153532-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -164.7 KB
Content
image-20231207154046-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -23.0 KB
Content
image-20231207155940-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -41.7 KB
Content
image-20231207160053-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -95.5 KB
Content
image-20231207160343-10.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -80.5 KB
Content
image-20231207160733-11.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -136.0 KB
Content
image-20231209152917-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -65.9 KB
Content
image-20231209155616-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -57.1 KB
Content
image-20231209171127-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -80.8 KB
Content
image-20231209171549-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -45.7 KB
Content
image-20231209173457-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -66.3 KB
Content
image-20231211113113-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -64.5 KB
Content
image-20231211113204-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -59.7 KB
Content
image-20231211114932-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.ting
Size
... ... @@ -1,1 +1,0 @@
1 -57.3 KB
Content
image-20231211220922-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -411.2 KB
Content
image-20231211221253-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -90.8 KB
Content
image-20231211221436-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -64.9 KB
Content