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

From version 117.1
edited by Xiaoling
on 2023/11/28 13:37
Change comment: Uploaded new attachment "image-20231128133704-1.png", version {1}
To version 171.1
edited by Mengting Qiu
on 2023/12/12 11:11
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Xiaoling
1 +XWiki.ting
Content
... ... @@ -8,7 +8,7 @@
8 8  
9 9  
10 10  
11 -**Table of Contents**
11 +**Table of Contents:(% style="display:none" %) (%%)**
12 12  
13 13  {{toc/}}
14 14  
... ... @@ -49,7 +49,6 @@
49 49  
50 50  == 1.3 Specification ==
51 51  
52 -
53 53  (% style="color:#037691" %)**LiDAR Sensor:**
54 54  
55 55  * Operation Temperature: -40 ~~ 80 °C
... ... @@ -60,14 +60,12 @@
60 60  * ToF FoV: ±9°, Total 18°
61 61  * Light source: VCSEL
62 62  
63 -
64 -
65 65  == 1.4 Power Consumption ==
66 66  
67 67  
68 68  (% style="color:#037691" %)**Battery Power Mode:**
69 69  
70 -* Idle: 0.003 mA @ 3.3v
67 +* Idle: 3uA @ 3.3v
71 71  * Max : 360 mA
72 72  
73 73  (% style="color:#037691" %)**Continuously mode**:
... ... @@ -75,8 +75,21 @@
75 75  * Idle: 21 mA @ 3.3v
76 76  * Max : 360 mA
77 77  
75 +== 1.5 Use Case ==
78 78  
77 +(% class="mark" %)**Regular Distance Detect**
79 79  
79 +[[image:image-20231211220922-1.png||height="352" width="605"]]
80 +
81 +
82 +(% class="mark" %)**Counting / Alarm**
83 +
84 +[[image:image-20231211221253-2.png]]
85 +
86 +
87 +[[image:image-20231211221436-3.png]]
88 +
89 +
80 80  = 2. Configure DS20L to connect to LoRaWAN network =
81 81  
82 82  == 2.1 How it works ==
... ... @@ -95,7 +95,7 @@
95 95  
96 96  [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
97 97  
98 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
108 +=== Step 1: Create a device in TTN with the OTAA keys from DS20L. ===
99 99  
100 100  Each DS20L is shipped with a sticker with the default device EUI as below:
101 101  
... ... @@ -102,40 +102,36 @@
102 102  [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
103 103  
104 104  
105 -You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
115 +You can enter this key in the LoRaWAN Server portal. Below is TTN V3 screenshot:
106 106  
107 107  
108 108  (% style="color:blue" %)**Register the device**
109 109  
110 -[[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"]]
120 +[[image:image-20231207144600-2.png||height="703" width="756"]]
111 111  
112 112  
113 -(% style="color:blue" %)**Add APP EUI and DEV EUI**
123 +(% style="color:blue" %)**Add DevEUI and AppKey**
114 114  
115 -[[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"]]
125 +[[image:image-20231207145121-5.png||height="540" width="756"]]
116 116  
117 117  
118 -(% style="color:blue" %)**Add APP EUI in the application**
119 119  
129 +=== Step 2: Activate DS20L ===
120 120  
121 -[[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"]]
131 +[[image:image-20231128133704-1.png||height="189" width="441"]]
122 122  
133 +Press the button for 5 seconds to activate the DS20L.
123 123  
124 -(% style="color:blue" %)**Add APP KEY**
135 +The switch is switched to (% style="color:blue" %)**E** (%%)and the external power supply is used.
125 125  
126 -[[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"]]
137 +The switch is switched to (% style="color:blue" %)**I** (%%)and DS20L will be power by the built-in battery.
127 127  
128 -
129 -(% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
130 -
131 -
132 -Press the button for 5 seconds to activate the DS20L.
133 -
134 134  (% 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.
135 135  
136 136  After join success, it will start to upload messages to TTN and you can see the messages in the panel.
137 137  
138 138  
144 +
139 139  == 2.3 ​Uplink Payload ==
140 140  
141 141  === 2.3.1 Device Status, FPORT~=5 ===
... ... @@ -153,9 +153,9 @@
153 153  
154 154  Example parse in TTNv3
155 155  
156 -[[image:image-20230805103904-1.png||height="131" width="711"]]
162 +[[image:image-20231206151412-3.png||height="179" width="1070"]]
157 157  
158 -(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
164 +(% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
159 159  
160 160  (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
161 161  
... ... @@ -209,340 +209,342 @@
209 209  === 2.3.2 Uplink Payload, FPORT~=2 ===
210 210  
211 211  
212 -(((
213 -DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
218 +==== (% style="color:red" %)**AT+MOD~=1**(%%) ====
214 214  
215 -periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
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.
216 216  
217 -Uplink Payload totals 11 bytes.
218 -)))
222 +**Uplink Payload totals 10 bytes.**
219 219  
220 220  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
221 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
222 -**Size(bytes)**
223 -)))|=(% 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**
224 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
225 -[[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
226 -)))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
227 -[[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
228 -)))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
229 -[[Message Type>>||anchor="HMessageType"]]
230 -)))
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
231 231  
232 -[[image:image-20230805104104-2.png||height="136" width="754"]]
228 +**MOD+ Alarm+ Interrupt:**
233 233  
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
234 234  
235 -==== (% style="color:blue" %)**Battery Info**(%%) ====
236 +0: No Alarm;
236 236  
238 +1: Alarm
239 +)))
237 237  
238 -Check the battery voltage for DS20L.
241 +Example parse in TTNv3
239 239  
240 -Ex1: 0x0B45 = 2885mV
243 +[[image:image-20231209152917-1.png||height="300" width="1172"]]
241 241  
242 -Ex2: 0x0B49 = 2889mV
245 +(% style="color:blue" %)**Battery Info:**
243 243  
247 +Check the battery voltage for DS20L
244 244  
245 -==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
249 +Ex1: 0x0E10 = 3600mV
246 246  
247 247  
248 -This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
252 +(% style="color:blue" %)**MOD & Alarm & Interrupt:**
249 249  
254 +(% style="color:red" %)**MOD:**
250 250  
251 -**Example**:
256 +**Example: ** (0x60>>6) & 0x3f =1
252 252  
253 -If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
258 +**0x01:**  Regularly detect distance and report.
259 +**0x02: ** Uninterrupted measurement (external power supply).
254 254  
255 -If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
261 +(% style="color:red" %)**Alarm:**
256 256  
263 +When the detection distance exceeds the limit, the alarm flag is set to 1.
257 257  
258 -==== (% style="color:blue" %)**Distance**(%%) ====
265 +(% style="color:red" %)**Interrupt:**
259 259  
267 +Whether it is an external interrupt.
260 260  
261 -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.
262 262  
270 +(% style="color:blue" %)**Distance info:**
263 263  
264 264  **Example**:
265 265  
266 -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.
274 +If payload is: 0708H: distance = 0708H = 1800 mm
267 267  
268 268  
269 -==== (% style="color:blue" %)**Distance signal strength**(%%) ====
277 +(% style="color:blue" %)**Sensor State:**
270 270  
279 +Ex1: 0x00: Normal collection distance
271 271  
272 -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.
281 +Ex2: 0x0x: Distance collection is wrong
273 273  
274 274  
275 -**Example**:
284 +(% style="color:blue" %)**Interrupt Count:**
276 276  
277 -If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
286 +If payload is:000007D0H: count = 07D0H =2000
278 278  
279 -Customers can judge whether they need to adjust the environment based on the signal strength.
280 280  
281 281  
282 -**1) When the sensor detects valid data:**
290 +==== (% style="color:red" %)**AT+MOD~=2**(%%)** ** ====
283 283  
284 -[[image:image-20230805155335-1.png||height="145" width="724"]]
285 285  
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.)
286 286  
287 -**2) When the sensor detects invalid data:**
295 +[[image:image-20231128133704-1.png||height="189" width="441"]]
288 288  
289 -[[image:image-20230805155428-2.png||height="139" width="726"]]
290 290  
298 +* **Set over-limit alarm mode: AT+DOL=3,500,244,**(% style="color:red" %)0(%%)**,120**
291 291  
292 -**3) When the sensor is not connected:**
300 +(% class="wikigeneratedid" id="HUninterruptedmeasurement.Whenthedistanceexceedsthelimit2CtheoutputIOissethighandreportsarereportedeveryfiveminutes.Thetimecanbesetandpoweredbyanexternalpowersupply.UplinkPayloadtotals11bytes." %)
301 +Uninterrupted measurement. When the distance exceeds the limit, the output IO high, instant alarm.
293 293  
294 -[[image:image-20230805155515-3.png||height="143" width="725"]]
303 +(% class="wikigeneratedid" %)
304 +**Uplink Payload totals 9 bytes.**
295 295  
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
296 296  
297 -==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
310 +**MOD+DO+ Alarm+ Do flag+ Limit flag:**
298 298  
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 +)))
299 299  
300 -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.
319 +(((
320 +0:Within limit
301 301  
302 -Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
322 +1:Out of limit
323 +)))
324 +)))|(% style="width:73px" %)(((
325 +Alarm
303 303  
304 -**Example:**
327 +0: No Alarm;
305 305  
306 -If byte[0]&0x01=0x00 : Normal uplink packet.
329 +1: Alarm
330 +)))|(% style="width:150px" %)(((
331 +DO flag
307 307  
308 -If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
333 +0:the over-limit alarm mode
309 309  
335 +1:the person or object count mode
336 +)))|(% style="width:103px" %)Limit flag
337 +(0~~3)
310 310  
311 -==== (% style="color:blue" %)**LiDAR temp**(%%) ====
339 +Example parse in TTNv3
312 312  
341 +[[image:image-20231209171127-3.png||height="374" width="1209"]]
313 313  
314 -Characterize the internal temperature value of the sensor.
343 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
315 315  
316 -**Example: **
317 -If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
318 -If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
345 +(% style="color:red" %)**MOD:**
319 319  
347 +**Example: ** (0x60>>6) & 0x3f =1
320 320  
321 -==== (% style="color:blue" %)**Message Type**(%%) ====
349 +**0x01:**  Regularly detect distance and report.
350 +**0x02: ** Uninterrupted measurement (external power supply).
322 322  
352 +(% style="color:red" %)**Alarm:**
323 323  
324 -(((
325 -For a normal uplink payload, the message type is always 0x01.
326 -)))
354 +When the detection distance exceeds the limit, the alarm flag is set to 1.
327 327  
328 -(((
329 -Valid Message Type:
330 -)))
356 +(% style="color:red" %)**DO:**
331 331  
332 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
333 -|=(% 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**
334 -|(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
335 -|(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
358 +When the distance exceeds the set threshold, pull the Do pin high.
336 336  
337 -[[image:image-20230805150315-4.png||height="233" width="723"]]
360 +(% style="color:red" %)**Limit flag:**
338 338  
362 +Mode for setting threshold: **0~~3**
339 339  
340 -=== 2.3.3 Historical measuring distance, FPORT~=3 ===
364 +**0:** does not use upper and lower limits
341 341  
366 +**1:** Use upper and lower limits
342 342  
343 -DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
368 +**2:** Less than the upper limit
344 344  
345 -The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
370 +**3: **Greater than the lower limit
346 346  
347 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
348 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
349 -**Size(bytes)**
350 -)))|=(% 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
351 -|(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
352 -Reserve(0xFF)
353 -)))|Distance|Distance signal strength|(% style="width:88px" %)(((
354 -LiDAR temp
355 -)))|(% style="width:85px" %)Unix TimeStamp
356 356  
357 -**Interrupt flag & Interrupt level:**
373 +(% style="color:blue" %)**Distance:**
358 358  
359 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
360 -|=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
361 -**Size(bit)**
362 -)))|=(% 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**
363 -|(% 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" %)(((
364 -Interrupt flag
365 -)))
375 + Actual sampling distance values.
366 366  
367 -* (((
368 -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.
369 -)))
377 +**Example:**
370 370  
371 -For example, in the US915 band, the max payload for different DR is:
379 +**AT+DOL=1,500,244,**(% style="color:red" %)0(%%)**,120  **
372 372  
373 -**a) DR0:** max is 11 bytes so one entry of data
381 +The distance is detected every 120ms.
374 374  
375 -**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
383 +When the actual detection value is within the range of [244mm,500mm], the data is uploaded in the normal TDC time.
376 376  
377 -**c) DR2:** total payload includes 11 entries of data
385 +When the actual detection value is outside the range of [244mm,500mm], the uplink data will be immediately alerted.
378 378  
379 -**d) DR3:** total payload includes 22 entries of data.
387 +If payload is: 0708H: distance = 0708H = 1800 mm
380 380  
381 -If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
382 382  
390 +(% style="color:blue" %)**Upper limit:**
383 383  
384 -**Downlink:**
392 +The upper limit of the threshold cannot exceed 2000mm.
385 385  
386 -0x31 64 CC 68 0C 64 CC 69 74 05
387 387  
388 -[[image:image-20230805144936-2.png||height="113" width="746"]]
395 +(% style="color:blue" %)**Lower limit:**
389 389  
390 -**Uplink:**
397 +The lower limit of the threshold cannot be less than 3mm.
391 391  
392 -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
393 393  
400 +* **Set the person or object count mode: AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120**
394 394  
395 -**Parsed Value:**
402 +Continuous measurement, detect and count people or things passing by in distance limit mode.
396 396  
397 -[DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
404 +**Uplink Payload totals 11 bytes.**
398 398  
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
399 399  
400 -[360,176,30,High,True,2023-08-04 02:53:00],
410 +**MOD+DO+ Alarm+ Do flag+ Limit flag:**
401 401  
402 -[355,168,30,Low,False,2023-08-04 02:53:29],
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 +)))
403 403  
404 -[245,211,30,Low,False,2023-08-04 02:54:29],
419 +(((
420 +0:Within limit
405 405  
406 -[57,700,30,Low,False,2023-08-04 02:55:29],
422 +1:Out of limit
423 +)))
424 +)))|(% style="width:73px" %)(((
425 +Alarm
407 407  
408 -[361,164,30,Low,True,2023-08-04 02:56:00],
427 +0: No Alarm;
409 409  
410 -[337,184,30,Low,False,2023-08-04 02:56:40],
429 +1: Alarm
430 +)))|(% style="width:150px" %)(((
431 +DO flag
411 411  
412 -[20,4458,30,Low,False,2023-08-04 02:57:40],
433 +0:the over-limit alarm mode
413 413  
414 -[362,173,30,Low,False,2023-08-04 02:58:53],
435 +1:the person or object count mode
436 +)))|(% style="width:103px" %)Limit flag
437 +(0~~3)
415 415  
439 +Example parse in TTNv3
416 416  
417 -**History read from serial port:**
441 +[[image:image-20231209173457-5.png||height="277" width="1098"]]
418 418  
419 -[[image:image-20230805145056-3.png]]
443 +(% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
420 420  
445 +(% style="color:red" %)**MOD:**
421 421  
422 -=== 2.3.4 Decode payload in The Things Network ===
447 +**Example: ** (0x60>>6) & 0x3f =1
423 423  
449 +**0x01:**  Regularly detect distance and report.
450 +**0x02: ** Uninterrupted measurement (external power supply).
424 424  
425 -While using TTN network, you can add the payload format to decode the payload.
452 +(% style="color:red" %)**Alarm:**
426 426  
427 -[[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"]]
454 +When the detection distance exceeds the limit, the alarm flag is set to 1.
428 428  
456 +(% style="color:red" %)**Do:**
429 429  
430 -(((
431 -The payload decoder function for TTN is here:
432 -)))
458 +When the distance exceeds the set threshold, pull the Do pin high.
433 433  
434 -(((
435 -DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
436 -)))
460 +(% style="color:red" %)**Limit flag:**
437 437  
462 +Mode for setting threshold: **0~~3**
438 438  
439 -== 2.4 ​Show Data in DataCake IoT Server ==
464 +**0:** does not use upper and lower limits
440 440  
466 +**1:** Use upper and lower limits
441 441  
442 -(((
443 -[[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:
444 -)))
468 +**2:** Less than the upper limit
445 445  
470 +**3: **Greater than the lower limit
446 446  
447 -(((
448 -(% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
449 -)))
450 450  
451 -(((
452 -(% 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:**
453 -)))
473 +(% style="color:blue" %)**Distance limit alarm count:**
454 454  
475 +People or objects are collected and counted within a limited distance.
455 455  
456 -[[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"]]
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.
457 457  
479 +**Example:**
458 458  
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/1654592800389-571.png?rev=1.1||alt="1654592800389-571.png"]]
481 +**AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120   **
460 460  
483 +People or objects passing within the distance range of [244mm,500mm] are detected and counted every 120ms.
461 461  
462 -(% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
485 +If payload is: 0x56H, interrupt count =0x56H =86
463 463  
464 -(% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
465 465  
466 -[[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"]]
488 +(% style="color:blue" %)**Upper limit:**
467 467  
490 +The upper limit of the threshold cannot exceed 2000mm.
468 468  
469 -After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
470 470  
471 -[[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"]]
493 +(% style="color:blue" %)**Lower limit:**
472 472  
495 +The lower limit of the threshold cannot be less than 3mm.
473 473  
474 -== 2.5 Datalog Feature ==
475 475  
498 +== 2.4 Decode payload in The Things Network ==
476 476  
477 -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.
478 478  
501 +While using TTN network, you can add the payload format to decode the payload.
479 479  
480 -=== 2.5.1 Ways to get datalog via LoRaWAN ===
503 +[[image:image-20231206143515-1.png||height="534" width="759"]]
481 481  
482 482  
483 -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.
506 +(((
507 +The payload decoder function for TTN is here:
508 +)))
484 484  
485 -* (((
486 -a) DS20L will do an ACK check for data records sending to make sure every data arrive server.
510 +(((
511 +DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
487 487  )))
488 -* (((
489 -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.
490 -)))
491 491  
492 -=== 2.5.2 Unix TimeStamp ===
493 493  
515 +== 2.5 ​Show Data in DataCake IoT Server ==
494 494  
495 -DS20L uses Unix TimeStamp format based on
496 496  
497 -[[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"]]
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 +)))
498 498  
499 -User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
500 500  
501 -Below is the converter example
523 +(((
524 +(% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
525 +)))
502 502  
503 -[[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"]]
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 +)))
504 504  
505 505  
506 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
532 +[[image:image-20231207153532-6.png||height="562" width="861"]]
507 507  
508 508  
509 -=== 2.5.3 Set Device Time ===
535 +[[image:image-20231207155940-8.png]]
510 510  
537 +For more detailed instructions, refer to the following instructions: [[Welcome - Datacake Docs>>url:https://docs.datacake.de/]]
511 511  
512 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
539 +[[image:image-20231207160733-11.png||height="429" width="759"]]
513 513  
514 -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).
515 515  
516 -(% 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.**
542 +(% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
517 517  
544 +(% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
518 518  
519 -=== 2.5.4 Poll sensor value ===
546 +[[image:image-20231207160343-10.png||height="665" width="705"]]
520 520  
521 521  
522 -Users can poll sensor values based on timestamps. Below is the downlink command.
549 +After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
523 523  
524 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
525 -|(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
526 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
527 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
551 +[[image:image-20231129100454-2.png||height="501" width="928"]]
528 528  
529 -(((
530 -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.
531 -)))
532 532  
533 -(((
534 -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"]]
535 -)))
536 -
537 -(((
538 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
539 -)))
540 -
541 -(((
542 -Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s.
543 -)))
544 -
545 -
546 546  == 2.6 Frequency Plans ==
547 547  
548 548  
... ... @@ -551,7 +551,7 @@
551 551  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
552 552  
553 553  
554 -3. Configure DS20L
562 += 3. Configure DS20L =
555 555  
556 556  == 3.1 Configure Methods ==
557 557  
... ... @@ -581,7 +581,7 @@
581 581  == 3.3 Commands special design for DS20L ==
582 582  
583 583  
584 -These commands only valid for DS20L, as below:
592 +Below commands only valid for DS20L, as below:
585 585  
586 586  
587 587  === 3.3.1 Set Transmit Interval Time ===
... ... @@ -623,7 +623,7 @@
623 623  Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
624 624  )))
625 625  * (((
626 -Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
634 +Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
627 627  
628 628  
629 629  
... ... @@ -646,7 +646,7 @@
646 646  the mode is 0 =Disable Interrupt
647 647  )))
648 648  |(% style="width:154px" %)(((
649 -AT+INTMOD=2
657 +AT+INTMOD=3
650 650  
651 651  (default)
652 652  )))|(% style="width:196px" %)(((
... ... @@ -667,6 +667,117 @@
667 667  
668 668  * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
669 669  
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 +
670 670  = 4. Battery & Power Consumption =
671 671  
672 672  
... ... @@ -703,6 +703,33 @@
703 703  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"]]
704 704  
705 705  
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 +
706 706  = 7. Trouble Shooting =
707 707  
708 708  == 7.1 AT Command input doesn't work ==
1701149922873-259.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +24.5 KB
Content
1701152902759-553.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +52.2 KB
Content
1701152946067-561.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +52.2 KB
Content
1701155076393-719.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +54.6 KB
Content
1701155150328-206.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +54.6 KB
Content
1701155390576-216.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +293.9 KB
Content
image-20231128151132-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +281.2 KB
Content
image-20231129085201-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +70.6 KB
Content
image-20231129100454-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +70.1 KB
Content
image-20231206143515-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +89.5 KB
Content
image-20231206144950-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +41.0 KB
Content
image-20231206151412-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +58.8 KB
Content
image-20231206154621-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +71.2 KB
Content
image-20231206194804-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +53.7 KB
Content
image-20231206195704-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +64.1 KB
Content
image-20231207142208-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +27.2 KB
Content
image-20231207144600-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +55.4 KB
Content
image-20231207144837-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +31.1 KB
Content
image-20231207144856-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +31.1 KB
Content
image-20231207145121-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +33.3 KB
Content
image-20231207153532-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +164.7 KB
Content
image-20231207154046-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +23.0 KB
Content
image-20231207155940-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +41.7 KB
Content
image-20231207160053-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +95.5 KB
Content
image-20231207160343-10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +80.5 KB
Content
image-20231207160733-11.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +136.0 KB
Content
image-20231209152917-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +65.9 KB
Content
image-20231209155616-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +57.1 KB
Content
image-20231209171127-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +80.8 KB
Content
image-20231209171549-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +45.7 KB
Content
image-20231209173457-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +66.3 KB
Content
image-20231211113113-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +64.5 KB
Content
image-20231211113204-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +59.7 KB
Content
image-20231211114932-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.ting
Size
... ... @@ -1,0 +1,1 @@
1 +57.3 KB
Content
image-20231211220922-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +411.2 KB
Content
image-20231211221253-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +90.8 KB
Content
image-20231211221436-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +64.9 KB
Content