请选择 进入手机版 | 继续访问电脑版
查看: 1434|回复: 2

[技术交流] Lierda NT35E&NT26E UDP/TCP应用笔记(TCP)

[复制链接]

50

主题

409

帖子

1309

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
1309
发表于 2022-5-31 17:02:56 | 显示全部楼层 |阅读模式
1  数据访问模式说明
当前模块支持以下2种数据访问模式:
●   非透传 Buffer 模式。
●   非透传 Push 模式
当使用 AT+LIPOPEN 打开 Socket 服务时, 可以通过参数<access_mode>来指定 Socket 的数据访问模式。
1. 非透传 Buffer 模式下,可以通过AT+LIPSEND命令发送数据。从网络接收数据时,模块会缓存所接收的数据,并直接上报URC:+LIPURC: <socket>,<type>,<type_data>,有数据到达时,type_data为当前一包的数据长度,之后用户可以通过 AT+LIPRD 命令来读取缓存数据。
2. 非透传 Push 模式下,可以通过AT+LIPSEND发送数据。从网络接收数据时,数据会以如下格式直接输出到COM 口上:+LIPURC:<socket>,<type>,<type_data>,recv_data。
2.  Lierda NT35E&NT26E应用2.1.   TCP Server连接
本文在具有公网IP的电脑上运行TCP/UDP Socket调试工具,令调试工具作为TCPServer运行。设定端口号6801,IP地址为114.55.52.96。先输入AT指令AT+LIPOPEN创建TCP客户端并与TCP Server连接,再使用AT+LIPSEND发送数据,调试工具界面上将显示收到的数据,调试工具向Lierda NT35E&NT26E模组发送数据,会在串口上以主动上报的AT指令的形式显示。调试工具收发数据的情况如下。
终端显示如下,
3.  AT指令示例流程3.1.    上电检查流程
(1)AT+CGMR       //判断模组是否上电开机成功
(2)AT+CFUN=1       //关闭飞行模式
(3)AT+CEREG?       //判断PS域附着状态,第二个参数为1或5表示附着正常
(4)AT+CGATT?        //查询附着状态,确认是否已附着
(5)AT+CGPADDR   //查询核心网是否已分配IP
3.2.   TCP客户端在Buffer模式下的流程3.2.1. 创建客户端并进入Buffer模式
AT+LIPSTATE?

OK
AT+LIPOPEN="TCP","114.55.52.96",6801,0   //连接TCP服务器114.55.52.96,连接之前设备网络要激
OK                                     活,模式为Buffer模式。
+LIPOPEN:0,1                           //连接成功,返回创建成功的socketID,等待URC: +LIPOPEN: <socket >,<result>响应建议等待60秒,若60秒内没响应,可以使AT+LIPCLOSE断开socket
AT+LIPSTATE?                           //检查socket的连接状态
+LIPSTATE: 0,TCP,114.55.52.96,6801,10002,2,1
OK
3.2.2. Buffer 模式下发送字符串数据
AT+LIPSEND=0,1,12,"thisis test"            //在socketID为0的TCP链路上发送字符串数据
OK
+LIPSEND: 0,12,1                        //发送成功
AT+LIPSEND=0,1,12                     //发送定长的字符串数据
> this istest                             //数据未达到指定长度时,30秒后超时退出,并上报ERROR
OK
+LIPSEND: 0,12,1                       //发送成功
AT+LIPSEND=0,1                      //发送不定长的字符串数据,当数据长度到达1024时自动发送
> this istest<ctrl+Z>                     //输入数据后按<ctrl+Z>,进行数据的发送或<esc>取消数      
OK                                   据的发送。
+LIPSEND: 0,12,1                      //数据发送成功
3.2.3. Buffer 模式下发送HEX数据
AT+LIPSEND=0,0,10,"31313131313131323232" //发送HEX字符串数据
OK
+LIPSEND: 0,10,1                          //数据发送成功
AT+LIPSEND=0,0,11                       //发送定长的HEX字符串数据
>3131313131313132323231                 //数据未达到指定长度时,30秒后超时退出,并上报ERROR
OK
+LIPSEND: 0,11,1                         //发送成功
AT+LIPSEND=0,0                         //发送不定长的数据
>3131313131313132323231                 //输入数据后按<ctrl+Z>,进行数据的发送或<esc>取消
OK                                     数据的发送.
+LIPSEND: 0,11,1                         //数据发送成功
3.2.4. Buffer模式接收到数据
AT+LIPSEND=0,1,12,"thisis test"            //开启透明回复后发送数据
OK
+LIPSEND: 0,12,1                        //数据发送成功
+LIPURC: 0,1,12                         // 服务器接收到数据
AT+LIPRD=0,20                         //读取数据
+LIPRD: 0,114.55.52.96,6801,12,thisis test,0  //返回读取数据的实际长度、数据内容,以及剩余数据长
                                       度
OK
AT+LIPRD=0,20
+LIPRD:0,0.0.0.0,0,0,0,0                  //缓存里无数据
OK
3.2.5. 断开连接
AT+LIPCLOSE=0                     //断开<socketID>为 0 的连接。受网络状态影响,最大响应
OK                                  时间是 5 秒
CLOSE OK                          //断开成功
3.3.   TCP客户端在Push模式下的流程3.3.1. 创建客户端并进入Push模式
AT+LIPSTATE?
OK
AT+LIPOPEN="TCP","114.55.52.96",6801   //连接服务器114.55.52.96,连接之前设备网络要激活,
OK                                     模式为Push模式,最后一个参数设置为1或者缺省默认为Push模式。。
+LIPOPEN:0,1                           //连接成功,等待URC+LIPOPEN: <socket>,<result>响应建议等待60秒,若60秒内没响应,可以使AT+LIPCLOSE断开socket.
AT+LIPOPEN="UDP","114.55.52.96",7000,0   //创建UDP链路,指定服务器114.55.52.96,端口为7000.
OK
+LIPOPEN:1,1                           //链路创建成功
AT+LIPSTATE?                           //检查socket的连接状态
+LIPSTATE:1,UDP,114.55.52.96,7000,10002,2,0  //上报socket状态以及连接模式
+LIPSTATE:0,TCP,114.55.52.96,6801,10002,2,1   
OK
3.3.2. Push 模式下发送字符串数据
AT+LIPSEND=0,1,12,"thisis test"            //发送字符串数据
OK
+LIPSEND: 0,12,1                        //发送成功
AT+LIPSEND=0,1,12                     //发送定长的字符串数据
> this istest                             //数据未达到指定长度时,30秒后超时退出,并上报ERROR
OK
+LIPSEND: 0,12,1                       //发送成功
AT+LIPSEND=0,1                      //发送不定长的字符串数据,当数据长度到达1024时自动发送
> this istest<ctrl+Z>                     //输入数据后按<ctrl+Z>,进行数据的发送或<esc>取消数      
OK                                   据的发送。
+LIPSEND: 0,12,1                      //数据发送成功
3.3.3. Push 模式下发送HEX数据
AT+LIPSEND=0,0,10,"31313131313131323232" //发送HEX字符串数据
OK
+LIPSEND: 0,10,1                          //数据发送成功
AT+LIPSEND=0,0,11                       //发送定长的HEX字符串数据
>3131313131313132323231                 //数据未达到指定长度时,30秒后超时退出,并上报ERROR
OK
+LIPSEND: 0,11,1                         //发送成功
AT+LIPSEND=0,0                         //发送不定长的数据
>3131313131313132323231<ctrl+Z>        //输入数据后按<ctrl+Z>,进行数据的发送或<esc>取消
OK                                     数据的发送.
+LIPSEND: 0,11,1                         //数据发送成功
3.3.4. Push模式接收到数据
AT+LIPSEND=0,1,12,"thisis test"           //打开透明回复模式,发送数据
OK
+LIPSEND: 0,12,1                       //发送数据成功
+LIPURC:0,1,12,this is test                //接收到数据常速及数据内容。
3.3.5. 断开连接
AT+LIPCLOSE=0                     //断开<socketID>为 0 的连接。受网络状态影响,最大响应
OK                                  时间是 5 秒
CLOSE OK                          //断开成功


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

5

帖子

12

积分

助理工程师

Rank: 1

积分
12
发表于 2022-7-4 15:49:56 | 显示全部楼层
您好,我在发这个命令 AT+LIPSTATE? 返回值是error,这种大概是什么问题呀
回复

使用道具 举报

50

主题

409

帖子

1309

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
1309
 楼主| 发表于 2022-7-5 08:37:15 | 显示全部楼层
15253924110 发表于 2022-7-4 15:49
您好,我在发这个命令 AT+LIPSTATE? 返回值是error,这种大概是什么问题呀

您好,请确认该AT指令发送格式是否正确(是否有空格,中文字符等),同时该指令为利尔达NT35E&NT26E指令,其他模组可能不适用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表