Changes for page End Device AT Commands and Downlink Command
Last modified by kai on 2024/09/06 10:00
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 2 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,9 +1,8 @@ 1 - **Contents:**1 +Contens 2 2 3 3 {{toc/}} 4 4 5 5 6 - 7 7 = 1. Introduction = 8 8 9 9 Dragino LoRaWAN End Node support two types of AT Commands and Downlink Commands: ... ... @@ -11,91 +11,33 @@ 11 11 * **Common Commands:** They should be available for each sensor, such as: change uplink interval, reset device. 12 12 * **Sensor Related Commands:** Only for special sensor, such as control relay, poll RS485 device. 13 13 14 -((( 15 15 **This page shows the common commands since Dragino LoRaWAN stack DR-LWS-005. Make sure the end node support stack higher than DR-LWS-005 before checking this page.** 16 16 17 -))) 18 18 19 19 = 2. How to use AT Commands or Downlink command = 20 20 21 21 * For AT Command , See Devices User Manual for Device. The user manual can be found in each product page of [[Dragino Official Website>>url:http://www.dragino.com/]] 22 22 * For LoRaWAN Downlink: The gateway transfer downlink command in HEX format. This page shows the HEX format downlink code for each command. but some servers use base64 as downlink code. Below are reference for how to use downlink command: 23 -** Use HEX format to send a downlink: [[TTN v3>>doc :Main.Notes.WebHome]]24 -** Use Base64 format to send a downlink: [[Chirpstack>>doc :Main.Notes.WebHome]].25 -** See use note for more serves [[Servers Note>>doc :Main.WebHome]](IoT LoRaWANServer)20 +** Use HEX format to send a downlink: [[TTN v3>>url:https://wiki.dragino.com/index.php/Notes_for_TTN#Send_Downlink_message]] 21 +** Use Base64 format to send a downlink: [[Chirpstack>>url:https://wiki.dragino.com/index.php/Notes_for_ChirpStack#Downlink]]. 22 +** See use note for more serves [[Servers Note>>url:https://wiki.dragino.com/index.php/Main_Page#Use_Note_for_Server]] 26 26 27 27 = 3. Support End Node and firmware version = 28 28 29 -(% border="1" style="background-color:#ffffcc; color:green; width:966px" %) 30 -|=(% colspan="3" style="width: 963px;" %)((( 31 -Dragino STM32 base hardware Firmware / LoRaWAN stack list 32 -))) 33 -|(% style="width:187px" %)((( 34 -**Model** 35 -)))|(% style="width:330px" %)((( 36 -**Description** 37 -)))|(% style="width:445px" %)((( 38 -**Firmware Version <~-~-> Stack Version** 39 -))) 40 -|(% style="width:187px" %)((( 41 -[[LSN50-v1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/128-lsn50.html]], [[LSN50-V2>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/155-lsn50-v2.html]], 42 -)))|(% style="width:330px" %)((( 43 -Open Source Generic LoRaWAN Sensor Node 44 -)))|(% style="width:445px" %)((( 45 -((( 46 -LSN50 v1.6.0 <~-~-> DR-LWS-003; 47 -))) 48 - 49 -((( 50 -((( 26 +(% style="background-color:#ffffcc; color:green; width:995.222px" %) 27 +|=(% colspan="3" style="width: 992px;" %)Dragino STM32 base hardware Firmware / LoRaWAN stack list 28 +|(% style="width:187px" %)**Model**|(% style="width:349px" %)**Description**|(% style="width:453px" %)**Firmware Version <~-~-> Stack Version** 29 +|(% style="width:187px" %)[[LSN50-v1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/128-lsn50.html]], [[LSN50-V2>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/155-lsn50-v2.html]],|(% style="width:349px" %)Open Source Generic LoRaWAN Sensor Node|(% style="width:453px" %)LSN50 v1.6.0 <~-~-> DR-LWS-003;((( 51 51 LSN50 v1.7.0 <~-~-> DR-LWS-005; ~-~-> Support since this version 52 52 ))) 53 -))) 54 -))) 55 -|(% style="width:187px" %)((( 56 -[[LGT92>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/142-lgt-92.html]], 57 -)))|(% style="width:330px" %)((( 58 -LoRaWAN GPS Tracker 59 -)))|(% style="width:445px" %)((( 60 -((( 61 -LGT92 v1.6.3 <~-~-> DR-LWS-003; 62 -))) 63 - 64 -((( 65 -((( 32 +|(% style="width:187px" %)[[LGT92>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/142-lgt-92.html]],|(% style="width:349px" %)LoRaWAN GPS Tracker|(% style="width:453px" %)LGT92 v1.6.3 <~-~-> DR-LWS-003;((( 66 66 LGT92 v1.6.4 <~-~-> DR-LWS-005;~-~-> Support since this version 67 67 ))) 68 -))) 69 -))) 70 -|(% style="width:187px" %)((( 71 -[[LBT1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/165-lbt1.html]], 72 -)))|(% style="width:330px" %)((( 73 -LoRaWAN BLE Indoor Tracker 74 -)))|(% style="width:445px" %)((( 75 -LBT1 v1.0 <~-~-> DR-LWS-005; 76 -))) 77 -|(% style="width:187px" %)((( 78 -[[RS485-LN>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/154-rs485-ln.html]], 79 -)))|(% style="width:330px" %)((( 80 -LoRaWAN RS485 Modbus Converter 81 -)))|(% style="width:445px" %)((( 82 -RS485-LN v1.3 <~-~-> DR-LWS-005; 83 -))) 84 -|(% style="width:187px" %)((( 85 -[[LHT65>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/151-lht65.html]], 86 -)))|(% style="width:330px" %)((( 87 -LoRaWAN Temperature & Humidity Sensor 88 -)))|(% style="width:445px" %)((( 89 -((( 90 -LHT65 v1.7 <~-~-> DR-LWS-003; 91 -))) 92 - 93 -((( 94 -((( 35 +|(% style="width:187px" %)[[LBT1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/165-lbt1.html]],|(% style="width:349px" %)LoRaWAN BLE Indoor Tracker|(% style="width:453px" %)LBT1 v1.0 <~-~-> DR-LWS-005; 36 +|(% style="width:187px" %)[[RS485-LN>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/154-rs485-ln.html]],|(% style="width:349px" %)LoRaWAN RS485 Modbus Converter|(% style="width:453px" %)RS485-LN v1.3 <~-~-> DR-LWS-005; 37 +|(% style="width:187px" %)[[LHT65>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/151-lht65.html]],|(% style="width:349px" %)LoRaWAN Temperature & Humidity Sensor|(% style="width:453px" %)LHT65 v1.7 <~-~-> DR-LWS-003;((( 95 95 LHT65 v1.8.0 <~-~-> DR-LWS-005;~-~-> Support since this version 96 96 ))) 97 -))) 98 -))) 99 99 100 100 = 4. System Management Commands = 101 101 ... ... @@ -108,7 +108,7 @@ 108 108 **AT Command: AT+TDC** 109 109 ))) 110 110 111 -(% border="1"style="background-color:#ffffcc; color:green; width:727.222px" %)52 +(% style="background-color:#ffffcc; color:green; width:727.222px" %) 112 112 |=(% colspan="3" style="width: 724px;" %)AT+TDC 113 113 |(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response** 114 114 |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000((( ... ... @@ -124,13 +124,9 @@ 124 124 **Downlink Command: 0x01** 125 125 {{/info}} 126 126 127 -((( 128 128 Format: Command Code (0x01) followed by 3 bytes time value. 129 -))) 130 130 131 -((( 132 132 If the downlink payload=0100003C, it means set the END Node’s Transmit Interval to 0x00003C=60(S), while type code is 01. 133 -))) 134 134 135 135 * **Example 1**: Downlink Payload:** 0100001E** ~/~/ Set Transmit Interval (TDC) = 30 seconds 136 136 * **Example 2**: Downlink Payload:** 0100003C** ~/~/ Set Transmit Interval (TDC) = 60 seconds ... ... @@ -143,7 +143,7 @@ 143 143 **AT Command: ATZ** 144 144 {{/info}} 145 145 146 -(% border=" 1" style="background-color:#ffffcc; color:green; width:727.222px" %)83 +(% border="0" style="background-color:#ffffcc; color:green; width:727.222px" %) 147 147 |=(% colspan="3" %)ATZ: Trig a reset of the MCU 148 148 |**Command Example**|**Function**|**Response** 149 149 |ATZ|Reset MCU|((( ... ... @@ -164,16 +164,10 @@ 164 164 **Downlink Command: 0x04** 165 165 {{/info}} 166 166 167 -((( 168 168 Format: Command Code (0x04) followed by FF. 169 -))) 170 170 171 -((( 172 172 If the downlink payload=**04FF**, the end node will reboot. 173 173 174 - 175 -))) 176 - 177 177 == 4.3 Reset to factory Default == 178 178 179 179 Feature: Reset the parameters to Factory Default, factory default value depends on the firmware settings, the OTAA and ABP keys will reserve after this command. ... ... @@ -182,7 +182,7 @@ 182 182 **AT Command: AT+FDR** 183 183 {{/info}} 184 184 185 -(% border="1"style="background-color:#ffffcc; color:green; width:831.222px" %)116 +(% style="background-color:#ffffcc; color:green; width:831.222px" %) 186 186 |=(% colspan="3" style="width: 828px;" %)Reset to factory default 187 187 |(% style="width:181px" %)**Command Example**|(% style="width:181px" %)**Function**|(% style="width:465px" %)**Response** 188 188 |(% style="width:181px" %)AT+FDR|(% style="width:181px" %)Reset to factory default|(% style="width:465px" %)((( ... ... @@ -203,13 +203,9 @@ 203 203 **Downlink Command: 0x04** 204 204 {{/info}} 205 205 206 -((( 207 207 Format: Command Code (0x04) followed by FE. 208 -))) 209 209 210 -((( 211 211 If the downlink payload=**04FE**, Reset Parameters to Factory Default, Keys Reserve. 212 -))) 213 213 214 214 215 215 == 4.4 Show Firmware Version == ... ... @@ -220,10 +220,10 @@ 220 220 **AT Command: AT+VER** 221 221 {{/info}} 222 222 223 -(% border="1"style="background-color:#ffffcc; color:green; width:586px" %)224 -|=(% colspan="3" style="width: 583px;"%)AT+VER: Image Version and Frequency Band225 -| (% style="width:170px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:113px" %)**Response**226 -| (% style="width:170px" %)AT+VER=?|(% style="width:300px" %)Show Image version and Frequency Band|(% style="width:113px" %)(((150 +(% style="background-color:#ffffcc; color:green" %) 151 +|=(% colspan="3" %)AT+VER: Image Version and Frequency Band 152 +|**Command Example**|**Function**|**Response** 153 +|AT+VER=?|Show Image version and Frequency Band|((( 227 227 1.3 EU868 228 228 229 229 OK ... ... @@ -233,25 +233,17 @@ 233 233 **Downlink Command: 0x26 (Valid in 006 stack)** 234 234 {{/info}} 235 235 236 -((( 237 237 Downlink Format: 0x26 238 -))) 239 239 240 -((( 241 241 Device will reply with firmware version info, device info. frequency band info. detail please check device user manual. Total 5 bytes Example: If device is of firmware version 1.1.0 Upload: xx ~-~- yy ~-~- zz ~-~- 110 total 5 bytes 242 -))) 243 243 244 -((( 245 245 **xx: Software Type:** 246 -))) 247 247 248 248 * 0x00 01: LGT92 Version 249 249 * 0x00 02: LBT1 250 250 * 0x00 03: LSE01/LDDS75/LDDS20/LSPH01/LLMS01/LSNPK01 251 251 252 -((( 253 253 **yy: Frequency Band:** 254 -))) 255 255 256 256 * 0x01: EU868 257 257 * 0x02: US915 ... ... @@ -264,9 +264,7 @@ 264 264 * 0x09: AS923-2 265 265 * 0xa0: AS923-3 266 266 267 -((( 268 268 **zz: Subband** 269 -))) 270 270 271 271 firmware version: v1.1.0 ~-~-> 110 272 272 ... ... @@ -279,7 +279,7 @@ 279 279 **AT Command: AT+CFG** 280 280 {{/info}} 281 281 282 -(% border="1"style="background-color:#ffffcc; color:green; width:599.222px" %)199 +(% style="background-color:#ffffcc; color:green; width:599.222px" %) 283 283 |=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations 284 284 |(% style="width:160px" %)**Command Example**|(% style="width:154px" %)**Function**|(% style="width:280px" %)**Response** 285 285 |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)((( ... ... @@ -306,7 +306,7 @@ 306 306 **AT Command: AT+APPEUI** 307 307 {{/info}} 308 308 309 -(% border="1"style="background-color:#ffffcc; color:green; width:686.222px" %)226 +(% style="background-color:#ffffcc; color:green; width:686.222px" %) 310 310 |=(% colspan="3" style="width: 683px;" %)AT+APPEUI 311 311 |(% style="width:305px" %)**Command Example**|(% style="width:186px" %)**Function**|(% style="width:191px" %)**Response** 312 312 |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00((( ... ... @@ -322,7 +322,7 @@ 322 322 **AT Command: AT+APPKEY** 323 323 {{/info}} 324 324 325 -(% border="1"style="background-color:#ffffcc; color:green; width:976.222px" %)242 +(% style="background-color:#ffffcc; color:green; width:976.222px" %) 326 326 |=(% colspan="3" style="width: 973px;" %)AT+APPKEY 327 327 |(% style="width:441px" %)**Command Example**|(% style="width:180px" %)**Function**|(% style="width:350px" %)**Response** 328 328 |(% style="width:441px" %)AT+APPKEY=?|(% style="width:180px" %)Get the Application Key|(% style="width:350px" %)00 35 55 55 22 23 55 53 43 24 23 42 34 35 35 35((( ... ... @@ -338,7 +338,7 @@ 338 338 **AT Command: AT+APPSKEY** 339 339 {{/info}} 340 340 341 -(% border="1"style="background-color:#ffffcc; color:green; width:1040.22px" %)258 +(% style="background-color:#ffffcc; color:green; width:1040.22px" %) 342 342 |=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY 343 343 |(% style="width:451px" %)**Command Example**|(% style="width:231px" %)**Function**|(% style="width:354px" %)**Response** 344 344 |(% style="width:451px" %)AT+APPSKEY=?|(% style="width:231px" %)Get the Application Session Key|(% style="width:354px" %)00 7d dc 73 33 d3 eb 9e 14 38 d5 a4 3e 62 5b e2((( ... ... @@ -356,7 +356,7 @@ 356 356 **AT Command: AT+DADDR** 357 357 {{/info}} 358 358 359 -(% border="1"style="background-color:#ffffcc; color:green; width:795.222px" %)276 +(% style="background-color:#ffffcc; color:green; width:795.222px" %) 360 360 |=(% colspan="3" style="width: 792px;" %)AT+DADDR 361 361 |(% style="width:192px" %)**Command Example**|(% style="width:241px" %)**Function**|(% style="width:359px" %)**Response** 362 362 |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)((( ... ... @@ -374,7 +374,7 @@ 374 374 **AT Command: AT+DEUI** 375 375 {{/info}} 376 376 377 -(% border="1"style="background-color:#ffffcc; color:green; width:1035.22px" %)294 +(% style="background-color:#ffffcc; color:green; width:1035.22px" %) 378 378 |=(% colspan="3" style="width: 1032px;" %)AT+DEUI 379 379 |(% style="width:250px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:634px" %)**Response** 380 380 |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55((( ... ... @@ -384,7 +384,6 @@ 384 384 OK 385 385 ))) 386 386 387 - 388 388 == 5.6 Network ID == 389 389 390 390 Feature: Get or Set the Network ID.(You can enter this command change only after successful network connection) ... ... @@ -393,7 +393,7 @@ 393 393 **AT Command: AT+NWKID** 394 394 {{/info}} 395 395 396 -(% border="1"style="background-color:#ffffcc; color:green; width:448.222px" %)312 +(% style="background-color:#ffffcc; color:green; width:448.222px" %) 397 397 |=(% colspan="3" style="width: 445px;" %)AT+NWKID 398 398 |(% style="width:191px" %)**Command Example**|(% style="width:153px" %)**Function**|(% style="width:101px" %)**Response** 399 399 |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff((( ... ... @@ -401,7 +401,6 @@ 401 401 ))) 402 402 |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK 403 403 404 - 405 405 == 5.7 Network Session Key == 406 406 407 407 Feature: Get or Set the Network Session Key ... ... @@ -410,7 +410,7 @@ 410 410 **AT Command: AT+NWKSKEY** 411 411 {{/info}} 412 412 413 -(% border="1"style="background-color:#ffffcc; color:green; width:1017.22px" %)328 +(% style="background-color:#ffffcc; color:green; width:1017.22px" %) 414 414 |=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY 415 415 |(% style="width:455px" %)**Command Example**|(% style="width:215px" %)**Function**|(% style="width:343px" %)**Response** 416 416 |(% style="width:455px" %)AT+NWKSKEY=?|(% style="width:215px" %)Get the Network Session Key.|(% style="width:343px" %)00 4f 19 25 52 ce 97 09 d7 fa 84 71 db 51 02 92((( ... ... @@ -418,8 +418,6 @@ 418 418 ))) 419 419 |(% style="width:455px" %)AT+NWKSKEY=A8 40 41 FF FF 12 34 56 00 01 02 04 05 06 06 07|(% style="width:215px" %)Set the Network Session Key.|(% style="width:343px" %)OK 420 420 421 - 422 - 423 423 = 6. Joining and sending date on LoRaWAN network = 424 424 425 425 == 6.1 Confirm Mode == ... ... @@ -430,7 +430,7 @@ 430 430 **AT Command: AT+CFM** 431 431 {{/info}} 432 432 433 -(% border="1"style="background-color:#ffffcc; color:green; width:710.222px" %)346 +(% style="background-color:#ffffcc; color:green; width:710.222px" %) 434 434 |=(% colspan="3" style="width: 707px;" %)AT+CFM 435 435 |(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response** 436 436 |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0((( ... ... @@ -456,7 +456,7 @@ 456 456 **AT Command: AT+CFS** 457 457 {{/info}} 458 458 459 -(% border="1"style="background-color:#ffffcc; color:green; width:534.222px" %)372 +(% style="background-color:#ffffcc; color:green; width:534.222px" %) 460 460 |=(% colspan="3" style="width: 531px;" %)AT+CFS 461 461 |(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response** 462 462 |(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:178px" %)0((( ... ... @@ -471,7 +471,7 @@ 471 471 **AT Command: AT+JOIN** 472 472 {{/info}} 473 473 474 -(% border="1"style="background-color:#ffffcc; color:green; width:647.222px" %)387 +(% style="background-color:#ffffcc; color:green; width:647.222px" %) 475 475 |=(% colspan="3" style="width: 644px;" %)AT+JOIN 476 476 |(% style="width:163px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:334px" %)**Response** 477 477 |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network((( ... ... @@ -488,7 +488,7 @@ 488 488 **AT Command: AT+NJM** 489 489 {{/info}} 490 490 491 -(% border="1"style="background-color:#ffffcc; color:green; width:753.222px" %)404 +(% style="background-color:#ffffcc; color:green; width:753.222px" %) 492 492 |=(% colspan="3" style="width: 750px;" %)AT+NJM 493 493 |(% style="width:162px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:361px" %)**Response** 494 494 |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1((( ... ... @@ -516,7 +516,7 @@ 516 516 **AT Command: AT+NJS** 517 517 {{/info}} 518 518 519 -(% border="1"style="background-color:#ffffcc; color:green; width:498.222px" %)432 +(% style="background-color:#ffffcc; color:green; width:498.222px" %) 520 520 |=(% colspan="3" style="width: 495px;" %)AT+NJS 521 521 |(% style="width:169px" %)**Command Example**|(% style="width:164px" %)**Function**|(% style="width:161px" %)**Response** 522 522 |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0((( ... ... @@ -531,7 +531,7 @@ 531 531 **AT Command: AT+RECV** 532 532 {{/info}} 533 533 534 -(% border="1"style="background-color:#ffffcc; color:green; width:587.222px" %)447 +(% style="background-color:#ffffcc; color:green; width:587.222px" %) 535 535 |=(% colspan="3" style="width: 584px;" %)AT+RECV 536 536 |(% style="width:161px" %)**Command Example**|(% style="width:272px" %)**Function**|(% style="width:150px" %)**Response** 537 537 |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:((( ... ... @@ -546,7 +546,7 @@ 546 546 **AT Command: AT+RECVB** 547 547 {{/info}} 548 548 549 -(% border="1"style="background-color:#ffffcc; color:green; width:793.222px" %)462 +(% style="background-color:#ffffcc; color:green; width:793.222px" %) 550 550 |=(% colspan="3" style="width: 790px;" %)AT+RECVB 551 551 |(% style="width:173px" %)**Command Example**|(% style="width:497px" %)**Function**|(% style="width:120px" %)**Response** 552 552 |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010((( ... ... @@ -561,7 +561,7 @@ 561 561 **AT Command: AT+SEND** 562 562 {{/info}} 563 563 564 -(% border="1"style="background-color:#ffffcc; color:green; width:991.222px" %)477 +(% style="background-color:#ffffcc; color:green; width:991.222px" %) 565 565 |=(% colspan="3" style="width: 988px;" %)AT+SEND 566 566 |(% style="width:201px" %)**Command Example**|(% style="width:340px" %)**Function**|(% style="width:446px" %)**Response** 567 567 |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK((( ... ... @@ -580,7 +580,7 @@ 580 580 **AT Command: AT+SENDB** 581 581 {{/info}} 582 582 583 -(% border="1"style="background-color:#ffffcc; color:green; width:1120.22px" %)496 +(% style="background-color:#ffffcc; color:green; width:1120.22px" %) 584 584 |=(% colspan="3" style="width: 1117px;" %)AT+SENDB 585 585 |(% style="width:257px" %)**Command Example**|(% style="width:406px" %)**Function**|(% style="width:453px" %)**Response** 586 586 |(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)OK ... ... @@ -600,7 +600,7 @@ 600 600 **AT Command: AT+ADR** 601 601 {{/info}} 602 602 603 -(% border="1"style="background-color:#ffffcc; color:green; width:683.222px" %)516 +(% style="background-color:#ffffcc; color:green; width:683.222px" %) 604 604 |=(% colspan="3" style="width: 680px;" %)AT+ADR 605 605 |(% style="width:162px" %)**Command Example**|(% style="width:266px" %)**Function**|(% style="width:250px" %)**Response** 606 606 |(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1((( ... ... @@ -629,7 +629,7 @@ 629 629 **AT Command:AT+CLASS** 630 630 {{/info}} 631 631 632 -(% border="1"style="background-color:#ffffcc; color:green; width:507.222px" %)545 +(% style="background-color:#ffffcc; color:green; width:507.222px" %) 633 633 |=(% colspan="3" style="width: 504px;" %)AT+CLASS 634 634 |(% style="width:163px" %)**Command Example**|(% style="width:166px" %)**Function**|(% style="width:175px" %)**Response** 635 635 |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A((( ... ... @@ -647,7 +647,7 @@ 647 647 **AT Command:AT+DCS** 648 648 {{/info}} 649 649 650 -(% border="1"style="background-color:#ffffcc; color:green; width:515.222px" %)563 +(% style="background-color:#ffffcc; color:green; width:515.222px" %) 651 651 |=(% colspan="3" style="width: 512px;" %)AT+DCS 652 652 |(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response** 653 653 |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1((( ... ... @@ -665,7 +665,7 @@ 665 665 **AT Command: AT+DR** 666 666 {{/info}} 667 667 668 -(% border="1"style="background-color:#ffffcc; color:green; width:466.222px" %)581 +(% style="background-color:#ffffcc; color:green; width:466.222px" %) 669 669 |=(% colspan="3" style="width: 463px;" %)AT+DR 670 670 |(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response** 671 671 |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5((( ... ... @@ -693,7 +693,7 @@ 693 693 **AT Command:AT+FCD** 694 694 {{/info}} 695 695 696 -(% border="1"style="background-color:#ffffcc; color:green; width:693.222px" %)609 +(% style="background-color:#ffffcc; color:green; width:693.222px" %) 697 697 |=(% colspan="3" style="width: 690px;" %)AT+FCD 698 698 |(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response** 699 699 |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0((( ... ... @@ -713,7 +713,7 @@ 713 713 **AT Command:AT+FCU** 714 714 {{/info}} 715 715 716 -(% border="1"style="background-color:#ffffcc; color:green; width:534.222px" %)629 +(% style="background-color:#ffffcc; color:green; width:534.222px" %) 717 717 |=(% colspan="3" style="width: 531px;" %)AT+FCU 718 718 |(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response** 719 719 |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0((( ... ... @@ -731,7 +731,7 @@ 731 731 **AT Command:AT+JN1DL** 732 732 {{/info}} 733 733 734 -(% border="1"style="background-color:#ffffcc; color:green; width:537.222px" %)647 +(% style="background-color:#ffffcc; color:green; width:537.222px" %) 735 735 |=(% colspan="3" style="width: 534px;" %)AT+JN1DL 736 736 |(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response** 737 737 |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000((( ... ... @@ -749,7 +749,7 @@ 749 749 **AT Command:AT+JN2DL** 750 750 {{/info}} 751 751 752 -(% border="1"style="background-color:#ffffcc; color:green; width:538.222px" %)665 +(% style="background-color:#ffffcc; color:green; width:538.222px" %) 753 753 |=(% colspan="3" style="width: 535px;" %)AT+JN2DL 754 754 |(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response** 755 755 |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000((( ... ... @@ -767,7 +767,7 @@ 767 767 **AT Command:AT+PNM** 768 768 {{/info}} 769 769 770 -(% border="1"style="background-color:#ffffcc; color:green; width:667.222px" %)683 +(% style="background-color:#ffffcc; color:green; width:667.222px" %) 771 771 |=(% colspan="3" style="width: 664px;" %)AT+PNM 772 772 |(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response** 773 773 |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1((( ... ... @@ -787,7 +787,7 @@ 787 787 **AT Command:AT+RX1DL** 788 788 {{/info}} 789 789 790 -(% border="1"style="background-color:#ffffcc; color:green; width:408.222px" %)703 +(% style="background-color:#ffffcc; color:green; width:408.222px" %) 791 791 |=(% colspan="3" style="width: 405px;" %)AT+RX1DL 792 792 |(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response** 793 793 |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000((( ... ... @@ -797,7 +797,7 @@ 797 797 798 798 ))) 799 799 800 -== 7.11 713 +== 7.11Receive Delay2 == 801 801 802 802 Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms 803 803 ... ... @@ -805,7 +805,7 @@ 805 805 **AT Command:AT+RX2DL** 806 806 {{/info}} 807 807 808 -(% border="1"style="background-color:#ffffcc; color:green; width:481.222px" %)721 +(% style="background-color:#ffffcc; color:green; width:481.222px" %) 809 809 |=(% colspan="3" style="width: 478px;" %)AT+RX2DL 810 810 |(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response** 811 811 |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000((( ... ... @@ -823,7 +823,7 @@ 823 823 **AT Command:AT+RX2DR** 824 824 {{/info}} 825 825 826 -(% border="1"style="background-color:#ffffcc; color:green; width:525.222px" %)739 +(% style="background-color:#ffffcc; color:green; width:525.222px" %) 827 827 |=(% colspan="3" style="width: 522px;" %)AT+RX2DR 828 828 |(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response** 829 829 |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2((( ... ... @@ -841,7 +841,7 @@ 841 841 **AT Command:AT+RX2FQ** 842 842 {{/info}} 843 843 844 -(% border="1"style="background-color:#ffffcc; color:green; width:587.222px" %)757 +(% style="background-color:#ffffcc; color:green; width:587.222px" %) 845 845 |=(% colspan="3" style="width: 584px;" %)AT+RX2FQ 846 846 |(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response** 847 847 |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000((( ... ... @@ -859,7 +859,7 @@ 859 859 **AT Command:AT+TXP** 860 860 {{/info}} 861 861 862 -(% border="1"style="background-color:#ffffcc; color:green; width:465.222px" %)775 +(% style="background-color:#ffffcc; color:green; width:465.222px" %) 863 863 |=(% colspan="3" style="width: 462px;" %)AT+TXP 864 864 |(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response** 865 865 |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0((( ... ... @@ -884,7 +884,7 @@ 884 884 **AT Command:AT+RSSI** 885 885 {{/info}} 886 886 887 -(% border="1"style="background-color:#ffffcc; color:green; width:557.222px" %)800 +(% style="background-color:#ffffcc; color:green; width:557.222px" %) 888 888 |=(% colspan="3" style="width: 554px;" %)AT+RSSI 889 889 |(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response** 890 890 |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0((( ... ... @@ -899,7 +899,7 @@ 899 899 **AT Command:AT+SNR** 900 900 {{/info}} 901 901 902 -(% border="1"style="background-color:#ffffcc; color:green; width:571.222px" %)815 +(% style="background-color:#ffffcc; color:green; width:571.222px" %) 903 903 |=(% colspan="3" style="width: 568px;" %)AT+SNR 904 904 |(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response** 905 905 |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0((( ... ... @@ -914,7 +914,7 @@ 914 914 **AT Command: AT+PORT** 915 915 {{/info}} 916 916 917 -(% border="1"style="background-color:#ffffcc; color:green; width:500.222px" %)830 +(% style="background-color:#ffffcc; color:green; width:500.222px" %) 918 918 |=(% colspan="3" style="width: 497px;" %)AT+PORT 919 919 |(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response** 920 920 |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21((( ... ... @@ -941,7 +941,7 @@ 941 941 **AT Command: AT+CHS** 942 942 {{/info}} 943 943 944 -(% border="1"style="background-color:#ffffcc; color:green; width:603.222px" %)857 +(% style="background-color:#ffffcc; color:green; width:603.222px" %) 945 945 |=(% colspan="3" style="width: 600px;" %)AT+CHS 946 946 |(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response** 947 947 |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0((( ... ... @@ -957,7 +957,7 @@ 957 957 **AT Command: AT+CHE** 958 958 {{/info}} 959 959 960 -(% border="1"style="background-color:#ffffcc; color:green; width:710.222px" %)873 +(% style="background-color:#ffffcc; color:green; width:710.222px" %) 961 961 |=(% colspan="3" style="width: 707px;" %)AT+CHE 962 962 |(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response** 963 963 |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1((( ... ... @@ -986,7 +986,7 @@ 986 986 **AT Command: AT+RX1WTO** 987 987 {{/info}} 988 988 989 -(% border="1"style="background-color:#ffffcc; color:green; width:460.222px" %)902 +(% style="background-color:#ffffcc; color:green; width:460.222px" %) 990 990 |=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO 991 991 |(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response** 992 992 |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14((( ... ... @@ -994,60 +994,46 @@ 994 994 ))) 995 995 |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK 996 996 997 -((( 998 -**AT+RX1TWO** is theRxSingle timeout value of receive window 1. If it is not set, then the queriedvalue is the default value. If it is set, then the queried value is the setvalue. AT+RX2TWO is thesame as above. The definitionof RxSingle timeout is as described in the following paragraph. 999 -))) 910 +AT+RX1TWO is theRxSingle timeout value of receive window 1. If it is not set, then the queriedvalue is the default value. If it is set, then the queried value is the setvalue. AT+RX2TWO is thesame as above. The definitionof RxSingle timeout is as described in the following paragraph. 1000 1000 1001 -[[image:image -20220526162535-1.png]]912 +[[~[~[image:https://wiki.dragino.com/images/thumb/5/51/RX1WTO.JPG/600px-RX1WTO.JPG~|~|alt="RX1WTO.JPG" height="239" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:RX1WTO.JPG]] 1002 1002 1003 -((( 1004 1004 Increasing thisvalue is equal to extending the time that the receiving window is opened, butthe corresponding power consumption will also increase. Properly increasingthis value can increase the success rate of the downlink. 1005 1005 1006 - 1007 -))) 1008 - 1009 1009 == 7.21 Get or Set RXwindows2 timeout == 1010 1010 1011 1011 Feature:Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255). 1012 1012 1013 -{{info}} 1014 -**AT Command: AT+RX2WTO** 1015 -{{/info}} 920 +AT Command: AT+RX2WTO 1016 1016 1017 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1018 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO 1019 -|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response** 1020 -|(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7((( 922 +|=(% colspan="3" %)AT+ RX2WTO 923 +|**Command Example**|**Function**|**Response** 924 +|AT+RX2WTO=?|Get RXwindows2 timeout|7((( 1021 1021 OK 1022 1022 ))) 1023 -| (% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK927 +|AT+RX2WTO=20|Set RXwindows2 timeout|OK 1024 1024 1025 1025 == 7.22 Setting up uplinkdwelltime (as923, au915) == 1026 1026 1027 1027 Feature: Get or Set uplinkdwelltime 1028 1028 1029 -{{info}} 1030 -**AT Command: AT+DWELLT** 1031 -{{/info}} 933 +AT Command: AT+DWELLT 1032 1032 1033 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1034 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT 1035 -|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response** 1036 -|(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1((( 935 +|=(% colspan="3" %)AT+DWELLT 936 +|**Command Example**|**Function**|**Response** 937 +|AT+DWELLT=?|Get uplinkdwelltime|1((( 1037 1037 OK 1038 1038 ))) 1039 -| (% style="width:183px" %)AT+DWELLT=0|(% style="width:179px" %)Set uplinkdwelltime|(% style="width:131px" %)OK940 +|AT+DWELLT=0|Set uplinkdwelltime|OK 1040 1040 1041 -{{info}} 1042 -**Downlink Command: 0x25** 1043 -{{/info}} 942 +Downlink Command: 0x25 1044 1044 1045 1045 Format: Command Code (0x25) followed by 1 bytes state value. 1046 1046 1047 1047 If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25. 1048 1048 1049 -* **Example 1**: Downlink Payload:**2501**~/~/ set uplinkdwelltime to 11050 -* **Example 2**: Downlink Payload:**2500**~/~/ set uplinkdwelltime to 0948 +* Example 1: Downlink Payload: 2501 ~/~/ set uplinkdwelltime to 1 949 +* Example 2: Downlink Payload: 2500 ~/~/ set uplinkdwelltime to 0 1051 1051 1052 1052 == 7.23 Set Packet Receiving Response Level == 1053 1053 ... ... @@ -1055,11 +1055,11 @@ 1055 1055 1056 1056 RPL value: 1057 1057 1058 -* **AT+RPL=0:**Device won't immediately reply any downlink commands from platform.1059 -* **AT+RPL=1:**Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00.1060 -* **AT+RPL=2:**Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command.1061 -* **AT+RPL=3:**Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command.1062 -* **AT+RPL=4:**Device will immediately reply message to Confirmed Data Down & MAC Command. Payload is 0x00 and requied response header for these two commands.957 +* AT+RPL=0: Device won't immediately reply any downlink commands from platform. 958 +* AT+RPL=1: Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00. 959 +* AT+RPL=2: Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command. 960 +* AT+RPL=3: Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command. 961 +* AT+RPL=4: Device will immediately reply message to Confirmed Data Down & MAC Command. Payload is 0x00 and requied response header for these two commands. 1063 1063 1064 1064 Case Analyes: 1065 1065 ... ... @@ -1067,44 +1067,37 @@ 1067 1067 * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command. 1068 1068 * For Class C devices used in TTI, need to set AT+RPL=4 because TTI require immediately reply message to Confirmed Data Down & MAC Command. 1069 1069 1070 -{{info}} 1071 -**AT Command: AT+RPL** 1072 -{{/info}} 969 +AT Command: AT+RPL 1073 1073 1074 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %) 1075 -|=(% colspan="3" style="width: 533px;" %)AT+RPL 1076 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response** 1077 -|(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1((( 971 +|=(% colspan="3" %)AT+RPL 972 +|**Command Example**|**Function**|**Response** 973 +|AT+RPL=?|Get packet receiving response level|1((( 1078 1078 OK 1079 1079 ))) 1080 -| (% style="width:160px" %)AT+RPL=0|(% style="width:263px" %)Set packet receiving response level|(% style="width:109px" %)OK976 +|AT+RPL=0|Set packet receiving response level|OK 1081 1081 1082 -{{info}} 1083 -**Downlink Command: 0x21** 1084 -{{/info}} 978 +Downlink Command: 0x21 1085 1085 1086 1086 Format: Command Code (0x21) followed by 1 bytes level value. 1087 1087 1088 1088 If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21. 1089 1089 1090 -* **Example 1**: Downlink Payload:**2101**~/~/ set packet receiving response level to 11091 -* **Example 2**: Downlink Payload:**2102**~/~/ set packet receiving response level to 2984 +* Example 1: Downlink Payload: 2101 ~/~/ set packet receiving response level to 1 985 +* Example 2: Downlink Payload: 2102 ~/~/ set packet receiving response level to 2 1092 1092 1093 1093 = 8. AT Commands Combination = 1094 1094 1095 1095 == 8.1 Set a fix RX2DR for downlink window == 1096 1096 1097 -* **AT+ADR=0**~-~-> Disable ADR first1098 -* **AT+RX2DR=xxxx**~-~-> Set xxxx to your wanted DataRate991 +* AT+ADR=0 ~-~-> Disable ADR first 992 +* AT+RX2DR=xxxx ~-~-> Set xxxx to your wanted DataRate 1099 1099 1100 1100 == 8.2 Use Downlink Command to set a fix uplink DR == 1101 1101 1102 -{{info}} 1103 -**Downlink Command: 0x22000500** 1104 -{{/info}} 996 +Downlink Command: 0x22000500 1105 1105 1106 1106 Same as: 1107 1107 1108 -* AT+ADR=0 ||anchor="H7.1AdaptiveDataRate"]]1109 -* AT+DR=5 ||anchor="H7.4DataRate"]]1110 -* AT+TXP=0 ||anchor="H7.14TransmitPower"]]1000 +* AT+ADR=0 [[Reference>>url:https://wiki.dragino.com/index.php/End_Device_Downlink_Command#Adaptive_Data_Rate]] 1001 +* AT+DR=5 [[Reference>>url:https://wiki.dragino.com/index.php/End_Device_Downlink_Command#Data_Rate]] 1002 +* AT+TXP=0 [[Reference>>url:https://wiki.dragino.com/index.php/End_Device_Downlink_Command#Transmit_Power]]
- image-20220511120050-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -136.3 KB - Content
- image-20220526162535-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Xiaoling - Size
-
... ... @@ -1,1 +1,0 @@ 1 -149.4 KB - Content