实现一个基于串口的手机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

相关文章

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

使用Python实现高效的端口扫描器

《使用Python实现高效的端口扫描器》在网络安全领域,端口扫描是一项基本而重要的技能,通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用,本文将介绍如何使... 目录1. 端口扫描的基本原理2. 使用python实现端口扫描2.1 安装必要的库2.2 编写端口扫

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.