Last modified by Xiaoling on 2025/04/23 15:57

From version 15.6
edited by Xiaoling
on 2022/05/19 17:59
Change comment: There is no comment for this version
To version 26.2
edited by Xiaoling
on 2022/05/23 10:28
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -397,7 +397,8 @@
397 397  
398 398  **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is:
399 399  
400 -|(((
400 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:501px" %)
401 +|(% style="width:498px" %)(((
401 401  **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m**
402 402  
403 403  **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent**
... ... @@ -411,38 +411,36 @@
411 411  
412 412  **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx.
413 413  
414 -|(((
415 +(% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:580px" %)
416 +|(% style="width:577px" %)(((
415 415  **AT+SEARCHx=aa,xx xx xx xx xx**
416 416  
417 417  * **aa: 1: prefix match mode; 2: prefix and suffix match mode**
418 418  * **xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix**
419 -
420 -
421 421  )))
422 422  
423 -Examples:
423 +**Examples:**
424 424  
425 425  1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
426 426  
427 427  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
428 428  
429 -The valid data will be all bytes after 1E 56 34 , so it is 2e 30 58 5f 36 41 30 31 00 49
429 +The valid data will be all bytes after 1E 56 34 , so it is (% style="background-color:yellow" %)**2e 30 58 5f 36 41 30 31 00 49**
430 430  
431 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]
431 +[[image:1653271044481-711.png]]
432 432  
433 -
434 434  1. For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
435 435  
436 436  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
437 437  
438 -Device will search the bytes between 1E 56 34 and 31 00 49. So it is 2e 30 58 5f 36 41 30
437 +Device will search the bytes between 1E 56 34 and 31 00 49. So it is(% style="background-color:yellow" %) **2e 30 58 5f 36 41 30**
439 439  
440 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]
439 +[[image:1653271276735-972.png]]
441 441  
442 -
443 443  **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes.
444 444  
445 -|(((
443 +(% style="background-color:#4f81bd; color:white; width:729px" %)
444 +|(% style="width:726px" %)(((
446 446  **AT+DATACUTx=a,b,c**
447 447  
448 448  * **a: length for the return of AT+COMMAND**
... ... @@ -454,85 +454,123 @@
454 454  
455 455  * Grab bytes:
456 456  
457 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]
456 +[[image:1653271581490-837.png||height="313" width="722"]]
458 458  
459 459  * Grab a section.
460 460  
461 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]
460 +[[image:1653271648378-342.png||height="326" width="720"]]
462 462  
463 463  * Grab different sections.
464 464  
465 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]
464 +[[image:1653271657255-576.png||height="305" width="730"]]
466 466  
466 +(((
467 +(% style="color:red" %)**Note:**
468 +)))
467 467  
468 -Note:
469 -
470 +(((
470 470  AT+SEARCHx and AT+DATACUTx can be used together, if both commands are set, RS485-BL will first process AT+SEARCHx on the return string and get a temporary string, and then process AT+DATACUTx on this temporary string to get the final payload. In this case, AT+DATACUTx need to set to format AT+DATACUTx=0,xx,xx where the return bytes set to 0.
472 +)))
471 471  
472 -Example:
474 +(((
475 +**Example:**
476 +)))
473 473  
474 -AT+COMMAND1=11 01 1E D0,0
478 +(((
479 +(% style="color:red" %)AT+COMMAND1=11 01 1E D0,0
480 +)))
475 475  
476 -AT+SEARCH1=1,1E 56 34
482 +(((
483 +(% style="color:red" %)AT+SEARCH1=1,1E 56 34
484 +)))
477 477  
478 -AT+DATACUT1=0,2,1~~5
486 +(((
487 +(% style="color:red" %)AT+DATACUT1=0,2,1~~5
488 +)))
479 479  
480 -Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
490 +(((
491 +(% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
492 +)))
481 481  
482 -String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
494 +(((
495 +(% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49
496 +)))
483 483  
484 -Valid payload after DataCUT command: 2e 30 58 5f 36
498 +(((
499 +(% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36
500 +)))
485 485  
486 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]
502 +[[image:1653271763403-806.png]]
487 487  
504 +=== 3.3.4 Compose the uplink payload ===
488 488  
489 -
490 -
491 -1.
492 -11.
493 -111. Compose the uplink payload
494 -
506 +(((
495 495  Through AT+COMMANDx and AT+DATACUTx we got valid value from each RS485 commands, Assume these valid value are RETURN1, RETURN2, .., to RETURNx. The next step is how to compose the LoRa Uplink Payload by these RETURNs. The command is **AT+DATAUP.**
508 +)))
496 496  
510 +(((
511 +(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
512 +)))
497 497  
498 -**Examples: AT+DATAUP=0**
514 +(((
515 +Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**.
516 +)))
499 499  
500 -Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**.
501 -
518 +(((
502 502  Final Payload is
520 +)))
503 503  
504 -Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
522 +(((
523 +(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
524 +)))
505 505  
526 +(((
506 506  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
528 +)))
507 507  
508 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]
530 +[[image:1653272787040-634.png||height="515" width="719"]]
509 509  
532 +(((
533 +(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
534 +)))
510 510  
536 +(((
537 +Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**.
538 +)))
511 511  
512 -**Examples: AT+DATAUP=1**
513 -
514 -Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**.
515 -
540 +(((
516 516  Final Payload is
542 +)))
517 517  
518 -Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
544 +(((
545 +(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
546 +)))
519 519  
520 -1. Battery Info (2 bytes): Battery voltage
521 -1. PAYVER (1 byte): Defined by AT+PAYVER
522 -1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
523 -1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
524 -1. DATA: Valid value: max 6 bytes(US915 version here, [[Notice*!>>path:#max_byte]]) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
548 +1. (((
549 +Battery Info (2 bytes): Battery voltage
550 +)))
551 +1. (((
552 +PAYVER (1 byte): Defined by AT+PAYVER
553 +)))
554 +1. (((
555 +PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
556 +)))
557 +1. (((
558 +PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
559 +)))
560 +1. (((
561 +DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
562 +)))
525 525  
526 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]
564 +[[image:1653272817147-600.png||height="437" width="717"]]
527 527  
528 -
529 529  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
530 530  
531 -DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41
568 +DATA1=RETURN1 Valid Value = ~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%)20 20 0a 33 90 41
532 532  
533 -DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= 02 aa 05 81 0a 20
570 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= ~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%)02 aa 05 81 0a 20
534 534  
535 -DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 = 20 20 20 2d 30
572 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%) 20 20 20 2d 30
536 536  
537 537  
538 538  
1652954654347-831.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +138.7 KB
Content
1653271044481-711.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +27.8 KB
Content
1653271276735-972.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +26.6 KB
Content
1653271581490-837.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +138.7 KB
Content
1653271648378-342.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +131.4 KB
Content
1653271657255-576.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +142.6 KB
Content
1653271763403-806.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +27.7 KB
Content
1653272787040-634.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +294.0 KB
Content
1653272817147-600.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +143.3 KB
Content