实现一个基于串口的手机AT信令模拟器

2024-01-18 06:32

本文主要是介绍实现一个基于串口的手机AT信令模拟器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因项目需要,经常需要调试手机AT信令,觉得老是要插手机觉得很不方便,我自己还要用那:) 。于是便想到写一个手机串口的模拟器。

思路很简单。模拟串口通信,要么找两台机器用一根串口线连接,要么把机器自己的两个串口对接,要么用软件模拟器。

软件模拟器的原理也相当于两个串口对接:例如COM4和COM5,我往COM4发数据。COM5就能自动接收。

下面是具体的步骤:

1 安装免费的模拟软件com0com-1.4.0.0-386-chk.zip。以下是自带的说明文档

1. Start the "Add/Remove Hardware" wizard in Control Panel.
  2. Click "Add/Troubleshoot a Device".
  3. Select "Add a new device" and then click Next.
  4. Select "No, I Want to Select the Hardware from a list".
  5. For the first time (if the driver is not installed yet):
       1. Select "Other Devices" and then click Next.
       2. Click "Have Disk".
       3. Enter path to the directory with com0com.inf and com0com.sys
          files and then click OK.
     For the next time (adding one more port pair) select
     "com0com - serial port emulators" and then click Next.
  6. Select "com0com - bus for serial port pair emulator" and then
     click Next.

 另外安装好之后 change the names CNCA0 and CNCB0 to COM2 and COM3。这个一定要哦,否则Mscomm不能找到端口
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/com0com/Parameters/CNCA0]
"PortName"="COM4"
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/com0com/Parameters/CNCB0]
"PortName"="COM5"

然后你可以用超级终端连接两个端口,看看是不是能互相通信

2 接下来用VB写AT信令的模拟器。我举一个最简单的一个例子,列出所有短信

Private Sub MSComm1_OnComm() 'OnComm事件处理新消息提示
Dim buffer As Variant
Dim Enter As String
Dim data As String
Dim iii As String
Enter = Chr$(13) + Chr$(10)
Select Case MSComm1.CommEvent
  Case comEvReceive
  'MSComm1.InputLen = 0
  MSComm1.InputMode = comInputModeText '接收内容的格式
  'Text1.text = MSComm1.InBufferCount & "|"
  buffer = MSComm1.Input
  Call delay(1)
  Text1.text = Text1.text & buffer
 
    If InStr(buffer, "AT+CMGF=0" & vbCr) Then   ' AT信令 模拟返回两条短信1 2
       data = "+CMGL: 1,0,,22" & vbCrLf
       data = indata & "0891683108100005F0040D91683125503956F90008404060313530230660A8597DFF01" & vbCrLf
       data = indata & "+CMGL: 2,0,,22" & vbCrLf
       data = indata & "0891683108100005F0040D91683125503956F90008404060313530230660A8597DFF01" & vbCrLf
       data = indata & "OK" & vbCrLf
       MSComm1.Output = data
    Else
    End If
   
   
  Case Else
End Select
MSComm1.InBufferCount = 0 '清空接收缓冲区
End Sub


3 新建一个发送按钮

Private Sub Command1_Click()
  MSComm1.Output = "AT+CMGF=0" + vbCr
End Sub



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=516104


这篇关于实现一个基于串口的手机AT信令模拟器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618288

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal