指令过程

1.等待串口接收字符串"RDY"模块系统启动成功。
2.发送"AT+CPIN?\r",等待"+CPIN: READY",SIM准备就绪。
3.发送" AT+CSQ\r",等待"+CSQ: 25",网络信号值要大于10通信才稳定。
4.发送" AT+CREG?\r",等待" +CREG: 0,1",网络注册成功后才能上网。
5.发送"AT+QIACT=1\r",等待" ok",激活移动场景。
6. AT+QIACT?\r",等待" +QIACT: 1,1,1,",是否获取到了IP地址如:“+QIACT: 1,1,1,"10.189.40.187"”。
7.发送" AT+QWWAN=1",等待" OK",启用有线网络。

/安卓代码过程/

           //接收信息String receivedMsg =StringUtils.toHexString(bytes);String receivedString =StringUtils.hexStringToString(receivedMsg);if (receivedString.contains("RDY")){//查询SIM卡是否正常,返回ready则表示SIM卡正常Message msg = new Message();msg.obj = "RDY==模块系统启动成功";msg.what=0;myHandler.sendMessage(msg);mreceivedMsg="RDY";String sendMsg =StringUtils.convertStringToHex("AT+CPIN?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);}else   if (receivedString.contains("CPIN: READY")){if (receivedString.contains("OK")){//成功,下一步   发送AT+CSQ检测信号Message msg = new Message();msg.obj = "CPIN: READY==SIM准备就绪";msg.what=0;myHandler.sendMessage(msg);Log.d(TAG, "onDataReceived: SIM准备就绪");String sendMsg =StringUtils.convertStringToHex("AT+CSQ");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg="CPIN: READY";}else {//失败,需要重新发送String sendMsg =StringUtils.convertStringToHex("AT+CPIN?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);}}else   if (receivedString.contains("CSQ")){if (receivedString.contains("OK")){String  numStr="99";String regex = "\\d*";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(receivedString.replaceAll("\n",""));while (m.find()) {if (!"".equals(m.group())){numStr=m.group();break;}}int num=Integer.parseInt(numStr);//检测信号在11~31之间则发送AT+CREG? 等待CREG: 0,1if (num>10&&num<32){Message msg = new Message();msg.obj ="网络信号值"+receivedString;msg.what=0;myHandler.sendMessage(msg);String sendMsg =StringUtils.convertStringToHex("AT+CREG?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg=receivedString;}else {Message msg = new Message();msg.obj ="AT+CSQ值==="+numStr;msg.what=0;myHandler.sendMessage(msg);String sendMsg =StringUtils.convertStringToHex("AT+CSQ");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);}}else {String sendMsg =StringUtils.convertStringToHex("AT+CSQ");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);}}else   if (receivedString.contains("CREG")){if (receivedString.contains("OK")&&receivedString.contains("CREG: 0,1")){// 收到 CREG: 0,1,则网络注册成功  发送AT+QIACT=1 激活移动场景Message msg = new Message();msg.obj = "网络注册成功:"+receivedString;msg.what=0;myHandler.sendMessage(msg);String sendMsg =StringUtils.convertStringToHex("AT+QIACT=1");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg=receivedString;mreceivedMsg="CREG";}else {String sendMsg =StringUtils.convertStringToHex("AT+CREG?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg=receivedString;}}else   if (receivedString.contains("AT+QIACT=1")){mreceivedMsg="AT+QIACT=1";}else   if (receivedString.contains("AT+QIACT?")){//是否获取到了IP地址 如:“+QIACT: 1,1,1,"10.189.40.187"”if (receivedString.contains("OK")&&receivedString.contains("QIACT: 1,1,1,")){Message msg = new Message();msg.obj = "获取到了IP地址"+receivedString;msg.what=0;myHandler.sendMessage(msg);String sendMsg =StringUtils.convertStringToHex("AT+QWWAN=1");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg="AT+QIACT?";}else {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}String sendMsg =StringUtils.convertStringToHex("AT+QIACT?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);}}else   if (receivedString.contains("AT+QWWAN=1")){mreceivedMsg="AT+QWWAN=1";}else   if (receivedString.contains("POWERED DOWN")){mreceivedMsg="POWERED DOWN";tvInfo="============开始==================";Message msg = new Message();msg.obj ="关闭电源:===="+receivedString;msg.what=0;myHandler.sendMessage(msg);}else   if (receivedString.contains("PB DONE")){//结束通信Message msg = new Message();msg.obj ="PB DONE";msg.what=0;myHandler.sendMessage(msg);}else {if (mreceivedMsg.contains("AT+QIACT=1")&&receivedString.contains("OK")){//激活移动场景Message msg = new Message();msg.obj = "AT+QIACT=1";msg.what=0;myHandler.sendMessage(msg);String sendMsg =StringUtils.convertStringToHex("AT+QIACT?");byte[] sendBytes =StringUtils.toByteArray(sendMsg);mSerialPortManager.sendBytes(sendBytes);mreceivedMsg="AT+QIACT?";}if (mreceivedMsg.contains("AT+QWWAN=1")&&receivedString.contains("OK")){Log.d(TAG, "onDataReceived: ================QWWAN");//启用有线网络。Message msg = new Message();msg.obj = "OK==启用4g网络成功";msg.what=0;myHandler.sendMessage(msg);Log.d(TAG, "onDataReceived:启用有线网络。");mreceivedMsg="OK";}}

EC20 TCP/IP AT指令(安卓串口通信开发)相关推荐

  1. EC20 TCP/IP指令例程

    串口已经调试通过:EC20 TCP/IP指令例程 具体指令如下 /* Use AT+CPIN?/AT+CREG?/AT+CGREG? to query the SIM status and netwo ...

  2. 串口服务器RS485转以太网网口TCP/IP转串口模块导轨式通信网络数据传输通讯设备

    串口服务器RS485转以太网网口TCP/IP转串口模块导轨式通信网络数据传输通讯设备 串口服务器RS485转以太网网口TCP/IP转串口模块导轨式通信网络数据传输通讯设备 导轨型单串口服务器5143D ...

  3. android c语言串口通信,安卓串口通信能用的modebus CRC16计算,附对应的C语言CRC16

    最近写安卓串口通信需要用到modebus 的crc16通信,网上找了很多都是字符串的,我需要byte的,由于java没有无符号数,转换有点小麻烦,对着C一步步测试,最终测试无误 代码如下: //jav ...

  4. Linux系统下实现基于TCP/IP协议的简单Socket通信

    Linux系统下实现基于TCP/IP协议的简单Socket通信 网络套接字Socket Socket概念 主机字节序和网络字节序 Sockaddr地址结构 Socket实现客户端.服务端通信 服务端程 ...

  5. codesys中打开linux端的串口_干货分享——安卓串口通信

    1 引言 串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.串口通信(Serial Communicatio ...

  6. 安卓串口通信无法获取串口地址,无法打开串口权限

    本周在安卓三防平板上尝试串口通信,遇到权限问题折腾了6天,这期间在csdn.博客园.简书等论坛查询报错代码,报错代码如下所示. avc: denied ( open / for path=" ...

  7. 安卓串口通信 CH340 341

    最近项目需要实现手机与单片机进行串口通信,就在网上搜罗了一下这方面的demo,刚好搜到CH340 341系列串口封装好的jar,可以很方便的实现安卓手机通过usb转串口与单片机实现通信,这样,外出调试 ...

  8. AndroidSerialPort:安卓串口通信库

    AndroidSerialPort Android 串口通信,基于谷歌官方android-serialport-api编译 github地址:github.com/AIlll/Andro- 使用说明 ...

  9. TCP/IP协议-概念、应用、开发、Hack

    TCP/IP协议 一 协议概述 <一> 概念 1 基本概念     Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协 ...

最新文章

  1. 12个现实世界中的机器学习真相
  2. LeetCode:383. Ransom Note
  3. 基于耳-脑电图的脑机接口研究进展
  4. Ubuntu 开启telnet、ftp服务
  5. javascript 中 split 函数分割字符串成数组
  6. Oracle10.2.0.1.0升级Oracle10.2.0.2.0补丁安装指南(转载)
  7. 五、RabbitMQ的消息属性(读书笔记)
  8. springboot2 使用hikaridatasource 并测试_基于Spring Boot 2.x的后端管理网站脚手,源码免费分享...
  9. iis下php 500错误
  10. C++工程师的Rust迁移之路
  11. matlab安装mosek工具包
  12. APP性能测试(手机端和服务端)
  13. GNU/Linux(Fedora 17)ibus-pinyin自定义短语颜文字
  14. 华为云平台 IP SAN 存储配置
  15. 如何确保数据完整性?
  16. OpenCV 凸包查找,Graham详解
  17. Xshell连接远程堡垒机【服务器】
  18. 飞书纷享销客CRM两者联合,使销售协同管理更高效
  19. 惊!一文看懂Java NIO读写文件
  20. 码元速率估计-速率信号法

热门文章

  1. Android(仿QQ登入+网易新闻)
  2. 台哥教你写计算机毕业设计论文
  3. 几种通讯协议的比较RMI Httpinvoker = Hessian Burlap web service
  4. 推荐系统36式笔记(一)
  5. thymeleaf 引如js文件后 函数不触发
  6. ssdb mysql_SSDB高性能NoSQL数据库
  7. 判断是否构成三角形,并用海伦公式计算三角形的面积
  8. mvc 路由 .html 404,部署ASP.NET的MVC网站到IIS 6.0中,发现路由无法解析而出现404错误解决方案...
  9. Linux安装卸载java
  10. MapV地理数据可视化_API-初始化及初步使用