• ESP32、GPRS A9测试


    测试内容:

    1、A9作为客户端,在服务器主动断开连接或异常断开的时候,使用网络连接状态查询接口,能否获得准确的网络连接状态。

    结果:

    TCP: A9开多连接时,成功连接TCP服务器后,发送查询语句AT+CIPSTATUS? 返回内容:

    +CIPSTATUS:
    0,CONNECT OK  
    1,IP INITIAL  
    2,IP INITIAL  
    3,IP INITIAL  
    4,IP INITIAL  
    5,IP INITIAL  
    6,IP INITIAL  
    7,IP INITIAL  

    服务器网络调试助手点击断开(或右键直接退出应用),返回内容:

    +TCPCLOSED:0
    
    
    
    
    OK

     发送查询语句AT+CIPSTATUS? 返回内容:

    +CIPSTATUS:
    0,IP INITIAL  
    1,IP INITIAL  
    2,IP INITIAL  
    3,IP INITIAL  
    4,IP INITIAL  
    5,IP INITIAL  
    6,IP INITIAL  
    7,IP INITIAL  

    网络调试助手版本:网络调试助手(CM精装版V3.7)

    UDP:


    TCP/UDP socket调试工具V2.3

    开启UDP server后,然后UDP client 根据IP+port 连接udp,此时UDP server不能向client发送数据,只有client向server发送一条数据后,server之后才能向client发送数据。而果断时间后server又不能向client发送数据(client 没收到数据)

    UDP协议,一样会在物理线路上创建一条“虚拟信道”,否则UDP协议无法传输数据!但是,当UDP协议传完数据后,这条“虚拟信道”就被立即注销了!因此,称UDP是不面向连接的协议! 

    HTTP:连接方式IP+PORT  或 网址+port

    长连接: http服务器与client 建立连接后,keep-alive  时间到了,服务器主动断开,A9返回内容:

    +CME ERROR:52

    发送查询语句AT+CIPSTATUS? 返回内容:(多链接)

    +CIPSTATUS:
    0,IP CLOSE  
    1,IP INITIAL  
    2,IP INITIAL  
    3,IP INITIAL  
    4,IP INITIAL  
    5,IP INITIAL  
    6,IP INITIAL  
    7,IP INITIAL 

    如果服务器应用停止服务,发送查询语句AT+CIPSTATUS? 返回内容:(多链接)  这种情况下网络查询返回状态是错误的

    +CIPSTATUS:
    0,CONNECT OK  
    1,IP INITIAL  
    2,IP INITIAL  
    
    
    3,IP INITIAL  
    4,IP INITIAL  
    5,IP INITIAL  
    6,IP INITIAL  
    7,IP INITIAL  
    
    OK

    这个时候如果A9发送连接HTTP server 命令,返回:

    +CME ERROR:50

    因为A9认为已经连接成功了,再发送连接指令则认为连接无效。

    原因可能:服务器关闭服务时,没有通知client, 短连接关闭服务时有通知client;

    如果服务器应用直接退出EXIT,发送查询语句AT+CIPSTATUS? 返回内容:(多链接) 正确

    +CIPSTATUS:
    0,IP CLOSE  
    1
    ,IP INITIAL  
    2,IP INITIAL  
    3,IP INITIAL  
    4,IP INITIAL  
    5,IP INITIAL  
    6,IP INITIAL  
    7,IP INITIAL  
    
    OK

    AT+CIPSEND指令:

    ESP32S和A9是不一样的,下面是A9的:

    "AT+CIPSEND=10"  指令发送成功后返回的内容不是"OK",是" >"  4个十六进制数:0D 0A 3E 20

    A9发送 "AT+CIPSEND=100"  随后STM32 通过串口发送不足100个字节的数据,并停止发送, 则目标收到的数据内容为:

    STM32数据 + 0D 0A 00 00 00 00 00  

    00的个数补足到100 为止;

    例子:

    AT+CIPSEND=10
    //发送内容:6个字节 不足10个字节
    41 54 2B 43 49 50 
    //收到内容:
    41 54 2B 43 49 50 0D 0A 00 00 
  • 相关阅读:
    消息队列设计
    抓包工具Fiddler
    分布式系统和CAP
    Topshelf组件
    Parallel.For
    MVC插件
    Azure Messaging-ServiceBus Messaging
    MVC
    requireJS
    第一次react-native项目实践要点总结 good
  • 原文地址:https://www.cnblogs.com/fyp7077/p/8258203.html
Copyright © 2020-2023  润新知