Wiki source code of TCP Connection Instruction
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
1.2 | 1 | Contents: |
![]() |
1.1 | 2 | |
3 | |||
![]() |
1.2 | 4 | = 1. Introduction = |
![]() |
1.1 | 5 | |
![]() |
1.2 | 6 | In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server. |
![]() |
1.1 | 7 | |
8 | |||
![]() |
1.2 | 9 | = 2. LoRaWAN Mode TCP Connection = |
![]() |
1.1 | 10 | |
![]() |
1.2 | 11 | == 2.1 Support Hardware == |
![]() |
1.1 | 12 | |
![]() |
1.2 | 13 | * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]] |
14 | * [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] | ||
![]() |
1.1 | 15 | |
16 | |||
![]() |
1.2 | 17 | == 2.2 Typology & Instruction == |
![]() |
1.1 | 18 | |
![]() |
1.2 | 19 | [[image:https://wiki.dragino.com/images/thumb/7/75/LPS8_TCP_0.png/600px-LPS8_TCP_0.png||height="370" width="600"]] |
![]() |
1.1 | 20 | |
![]() |
1.2 | 21 | Network Structure |
![]() |
1.1 | 22 | |
![]() |
1.2 | 23 | [[Intrudctions>>url:https://wiki.dragino.com/index.php/Communication_with_ABP_End_Node#Example_2:_Communicate_to_TCP_Server]] |
![]() |
1.1 | 24 | |
25 | |||
![]() |
1.2 | 26 | = 3. Raw LoRa Mode TCP Connection = |
![]() |
1.1 | 27 | |
![]() |
1.3 | 28 | == 3.1 Support Hardware == |
![]() |
1.2 | 29 | |
30 | * LG01N, OLG01N | ||
31 | * LG02, OLG02 | ||
32 | |||
33 | |||
![]() |
1.3 | 34 | == 3.2 Typology == |
![]() |
1.2 | 35 | |
36 | The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format. | ||
37 | |||
![]() |
1.3 | 38 | [[image:https://wiki.dragino.com/images/thumb/5/54/TCP_FORWARD_1.png/600px-TCP_FORWARD_1.png||height="380" width="600"]] |
![]() |
1.2 | 39 | |
40 | TCP/IP Forward working topology | ||
41 | |||
42 | |||
![]() |
1.3 | 43 | == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 == |
![]() |
1.2 | 44 | |
![]() |
1.3 | 45 | === 3.3.1 Select TCP-IP Client mode === |
![]() |
1.2 | 46 | |
![]() |
1.3 | 47 | [[image:https://wiki.dragino.com/images/thumb/b/ba/TCP_FORWARD_2.png/600px-TCP_FORWARD_2.png||height="159" width="600"]] |
![]() |
1.2 | 48 | |
49 | Select TCP-IP Client mode | ||
50 | |||
51 | |||
![]() |
1.3 | 52 | === 3.3.2 Configure the Radio channel === |
![]() |
1.2 | 53 | |
![]() |
1.3 | 54 | [[image:https://wiki.dragino.com/images/thumb/0/0e/TCP_FORWARD_3.png/600px-TCP_FORWARD_3.png||height="406" width="600"]] |
![]() |
1.2 | 55 | |
56 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
57 | |||
58 | |||
![]() |
1.3 | 59 | === 3.3.3 Configure TCP Server Info === |
![]() |
1.2 | 60 | |
61 | Note: Gateway may receive many LoRa packets, it will only transfer the packet with the same ID as specify in the channel. | ||
62 | |||
![]() |
1.3 | 63 | [[image:https://wiki.dragino.com/images/thumb/f/fb/TCP_FORWARD_4.png/600px-TCP_FORWARD_4.png||height="330" width="600"]] |
![]() |
1.2 | 64 | |
65 | Configure TCP Server Info | ||
66 | |||
67 | |||
![]() |
1.6 | 68 | === 3.3.4 About uplink data format from End Node === |
![]() |
1.2 | 69 | |
70 | The LoRa end node should upload the data with below format: | ||
71 | |||
![]() |
1.5 | 72 | (% class="box" %) |
73 | ((( | ||
74 | Uplink Format: <Channel_ID>data | ||
75 | For example, if we have configured 2 channels 12345 and 34567. | ||
![]() |
1.2 | 76 | And there is are three LoRa End nodes sending: 12345,34567,78 |
77 | The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78 | ||
![]() |
1.5 | 78 | **Case 1**: |
![]() |
1.2 | 79 | Node 12345 send <12345>field1=0.0&field2=1102.0 |
80 | Node 34567 doesn’t send anyting | ||
![]() |
1.5 | 81 | The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"} |
82 | **Case 2**: | ||
![]() |
1.2 | 83 | Node 12345 send <12345>field1=0.0&field2=1102.0 |
84 | Node 34567 send <34567>temp=34 | ||
![]() |
1.5 | 85 | The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"} |
86 | ))) | ||
![]() |
1.2 | 87 | |
![]() |
1.4 | 88 | [[image:https://wiki.dragino.com/images/thumb/2/22/TCP_FORWARD_5.png/600px-TCP_FORWARD_5.png||height="152" width="600"]] |
![]() |
1.2 | 89 | |
90 | Configure TCP Server Info | ||
91 | |||
92 | {{{LoRa End Device reference source code: . | ||
93 | }}} | ||
94 | |||
95 | |||
![]() |
1.3 | 96 | == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 == |
![]() |
1.2 | 97 | |
![]() |
1.3 | 98 | === 3.4.1 Configure the Radio channel === |
![]() |
1.2 | 99 | |
![]() |
1.4 | 100 | [[image:https://wiki.dragino.com/images/thumb/4/40/TCP_FORWARD_7.png/600px-TCP_FORWARD_7.png||height="280" width="600"]] |
![]() |
1.2 | 101 | |
102 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
103 | |||
104 | |||
![]() |
1.4 | 105 | === 3.4.2 Configure TCP Server Info === |
![]() |
1.2 | 106 | |
107 | Note: Gateway will transfer the packet if they arrive in the right format . | ||
108 | |||
![]() |
1.4 | 109 | [[image:https://wiki.dragino.com/images/thumb/3/36/TCP_FORWARD_6.png/600px-TCP_FORWARD_6.png||height="149" width="600"]] |
![]() |
1.2 | 110 | |
111 | Configure TCP Server Info | ||
112 | |||
113 | |||
![]() |
1.4 | 114 | === 3.4.3 About uplink data format from End Node === |
![]() |
1.2 | 115 | |
116 | The LoRa end node should upload the data with below format: | ||
117 | |||
118 | {{{Uplink Format: <Channel_ID>data | ||
119 | And there is a LoRa End node sending below packets: | ||
120 | *<12345>Hello From Sensor1 | ||
121 | }}} | ||
122 | |||
123 | |||
124 | {{{LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log. | ||
125 | Thu Feb 4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now | ||
126 | Thu Feb 4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345 | ||
127 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update | ||
128 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345 | ||
129 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: | ||
130 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:----- | ||
131 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149 | ||
132 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000 | ||
133 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data | ||
134 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1; | ||
135 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:------ | ||
136 | |||
137 | }}} | ||
138 | |||
139 | and TCP server get: | ||
140 | |||
![]() |
1.5 | 141 | [[image:https://wiki.dragino.com/images/thumb/a/a5/TCP_FORWARD_8.png/600px-TCP_FORWARD_8.png||height="307" width="600"]] |
![]() |
1.2 | 142 | |
143 | TCP Server | ||
144 | |||
145 | {{{LoRa End Device reference source code: . | ||
146 | }}} | ||
147 | |||
![]() |
1.4 | 148 | = 4. Reference = |
![]() |
1.2 | 149 | |
150 | Set up a TCP/IP server use node.js: [[Reference Link>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LG02-OLG02/Firmware/customized_script/&file=node_tcp_server.txt]] |