This guide will guide you through the steps on how to open a TCP/IP connection to a remote server with AT commands. The aim is to establish a non secure connection to our TCP Test Server with a BG96. The TCP Test Server simply replies whatever is typed into the prompt/console sent by the BG96.
1.0 Establish a Remote Connection with Putty or NC
Firstly lets verify that we are able to connect from our PC to the TCP Test Server. This is to verify that the TCP Test Server is running and that the IP and Port to the remote host is correct.
IP Address | 13.237.19.148 |
Port | 3000 |
Linux
Open the console and type the following:
nc 13.237.19.148 3000
Once connected, the server will prompt:
nc 13.237.19.148 3000
Quectel TCP Echo Server
>
Windows
Use putty to establish a raw connection with the following details:
NOTE
Host Name (or IP address): 13.237.19.148
Port: 3000
Select the connection type: Raw
Click Open and if successful you shall be prompted with a welcome text followed by a ‘>’. Type some text and hit Enter. The text typed shall be echoed back.
We are now ready to continue on to the next step and use a BG96 to connect to the TCP Test Server.
2.0 Open a Remote Connection and Send Data
Initially its required to configure and activate a context. In our example we are using a Telstra SIM and the APN may be different in your case.
Important
Before continuing on please make sure you disable the Power Save Mode: AT+CPSMS=0
2.1. Configure a Context and Activate
For Telstra SIM the following parameters are used:
APN | telstra.internet |
Context Number | 1 |
Send the following AT Commands using your preferred terminal program such as QCOM or Putty. On how to connect to the BG96 with USB/Serial please refer to the /wiki/how-to/establish-a-virtual-com-port-connection-to-bg96-with-usb/
Configure and Activate Context:
AT+QICSGP=1,1,"telstra.internet","","",1
OK
Activate the context:
AT+QIACT=1
OK
Check the active context:
AT+QIACT?
+QIACT: 1,1,1,"10.102.135.75"
OK
“10.102.135.75” is the IP address associated to our active context. The IP returned for you will be different.
2.2. Open a Socket Service with Direct Push Mode
There are three types of data access modes available when opening a socket service.
- Buffer access mode
- Direct push mode
- Transparent access mode
In our example we shall use direct push mode. Please refer to the Quectel BG96 TCP(IP) AT Commands document for a detailed explanation of the data access modes.
AT+QIOPEN=1,0,"TCP","13.237.19.148",3000,0,1
OK
+QIOPEN: 0,0
+QIURC: "recv",0,27
Quectel TCP Echo Server
>
Note that the ‘Quectel TCP Echo Server\r\n> ‘ is received text from the remote TCP Test Server.
2.3. Send Data to the Remote Server
We will now send the text “hello\r” to the remote server. For this we shall use the fixed length AT+QISEND command.
AT+QISEND=0,6
>
After the “>” is prompted we are ready to send the text.
> hello
SEND OK
+QIURC: "recv",0,6
hello
At this point we have received the echoed response from the server.
QCOM enter the text and press Send Command
2.4. Close the Connection
To be polite we shall close the active TCP socket service with the following command:
AT+QICLOSE=0
OK
3.0 AT Command Sequence
Bellow is the complete command sequence from QCOM used in the example.
AT+QICSGP=1,1,"telstra.internet","","",1
OK
AT+QIACT=1
OK
AT+QIACT?
+QIACT: 1,1,1,"10.102.187.225"
OK
AT+QIOPEN=1,0,"TCP","13.237.19.148",3000,0,1
OK
+QIOPEN: 0,0
+QIURC: "recv",0,27
Quectel TCP Echo Server
>
AT+QISEND=0,6
> hello
SEND OK
+QIURC: "recv",0,6
hello
AT+QICLOSE=0
OK