+CNMI命令:如何接收通知并保存到SIM卡收到的短信

2024-01-12

我需要收到成功发送的通知。我读了很多并尝试过。我有 GSM 调制解调器中兴K4510Z。我没有收到任何通知或保存到 SIM 卡。在我的测试中。我以为我的SIM卡坏了。所以我尝试AT+CMGW将临时消息写入 SIM 卡。它成功并存在。所以最后我认为,这是命令而不是SIM卡。我尝试了很多想法AT+CNMI, AT+CPMS。发送消息后我没有收到回复缓冲区。我也检查一下AT+CPMS?发送消息后。如果有消息,它会在不通知的情况下写入 SIM 卡。但什么也没有,没有通知,没有消息写入 SIM 卡存储。

import serial
import time

modem = serial.Serial('COM35', 9600, timeout=0)

modem.write(b'AT\r')

while True:
    buffer = modem.readline()

    if buffer == b'OK\r\n':
        print('OK')
        break

# Set SMS MODE
modem.write(b'AT+CMGF=1\r')

while True:
    buffer = modem.readline()

    if buffer == b'OK\r\n':
        print('OK')
        break

# Set Preferred Storage
modem.write(b'AT+CPMS="SM","SM","SM"\r')

while True:
    buffer = modem.readline()

    if buffer == b'OK\r\n':
        print('OK')
        break

# Set how a notification    
modem.write(b'AT+CNMI=2,2,0,0,0\r')

while True:
    buffer = modem.readline()

    if buffer == b'OK\r\n':
        print('OK')
        break

recipient = "Phone_number"
message = 'Message'

# Set Recipient
modem.write(b'AT+CMGS="' + recipient.encode('UTF-8') + b'"\r')

while True:
    buffer = modem.read(1)

    if buffer == b'>':
        break

# Set Message
modem.write(message.encode('UTF-8') + b'\r')

# Input CTRL+Z  
modem.write(bytes([26]))

# Waiting any buffer
while True:
    buffer = modem.readline()

    print(buffer)

    time.sleep(1)

modem.close()

您正在发送AT+CNMI=2,2,0,0,0命令,目标是在 SM 中包含传入的 SMS 或 SMS 传送报告,以及它们的 URC 通知。我将尝试解释如何启用这两个功能。

根据规范,语法该命令的语法是:

AT+CNMI=[模式[mt[bm[ds[bfr]]]]]

  • mode:未经请求的结果代码缓冲选项。mode=2意味着在调制解调器繁忙的情况下 URC 会被缓冲。
  • mt:SMS-DELIVER 的结果代码指示报告。mt=2意味着传入的消息直接显示+CMT: ...URC。没有存储!
  • bm:广播报告选项。与我们无关。
  • ds:SMS-STATUS-REPORTs 报告选项。ds=0表示状态报告接收不报告也不存储!那不是你想要的!
  • bfr:缓冲结果代码处理方法。与我们无关。

相反,您可能想要:

  • mt=2,这意味着传入的短信被存储并且+CMTI: <mem>,<idx>显示 URC,表明它已存储在内存=mem 的索引=idx 处。
  • ds=2, 意思是如果存储状态报告,那么一个+CDSI: <mem>,<idx>显示 URC,表明它已存储在内存=mem 的索引=idx 处。

这可能对您有帮助,但请注意

  1. 您必须确保您的调制解调器型号确实支持这些功能(在其 AT 用户指南中进行验证)并且它们不是虚拟的。
  2. 您必须确保您的运营商支持状态传送报告,并且已为您的 SIM 卡启用了这些报告。
  3. SMS 存储类别会影响调制解调器执行的存储操作,对于状态传送报告尤其如此。在这种情况下你可以使用ds=1设置,这至少使调制解调器显示带有 URC 的报告+CDS: ....

注意:还要注意 +CNMI 设置是不稳定的,因此如果您重新启动,您将丢失它们,除非您将它们保存在默认配置文件中(通过发出AT&W&P).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

+CNMI命令:如何接收通知并保存到SIM卡收到的短信 的相关文章

  • 如何使用短信内容提供商?文档在哪里?

    我希望能够读取系统的短信内容提供商 基本上我想制作一个短信应用程序 但只有当我可以看到过去的线程等时它才会有用 似乎有一个内容提供程序 但我找不到它的文档 有人知道它在哪里吗 Thanks 编辑 好的 我找到了一种获取短信收件箱提供程序的方
  • 为什么不是每种类型的对象都可序列化?

    为什么不是每种类型的对象都是隐式可序列化的 以我有限的理解 对象不就是简单地存储在堆上并将指向它们的指针存储在堆栈上吗 难道您不应该能够以编程方式遍历它们 以通用格式存储它们 并且还能够从那里重建它们吗 某些对象封装了无法访问的资源 例如文
  • 是否可以通过括号来防止死亡?

    有时 我会编写一些带有比我喜欢的更多括号的代码 if new Day new Date millisecondsPerDay 75 instanceof oldDay Bonus points if that condition made
  • 链表、数组和硬件内存缓存

    虽然之前有人问过关于链表与数组的问题 但答案大多归结为我们大多数人在某些时候可能已经学到的东西 列表擅长插入和删除 数组擅长随机访问 现在 像 Bjarne Stroustrup 这样受人尊敬的人已经argued https www you
  • 有没有办法获取正在运行或新打开的资源管理器窗口的 IExplorerBrowser 接口以供后续 BrowseToXXX 调用?

    这么问是因为在上一个问题 https stackoverflow com questions 6220899 answer 6221898我是指向 IExplorerBrowser 的指针 但是它创建了一个子窗口 而我想模拟资源管理器的 查
  • 从源代码定制 Android 彩信/短信应用程序?

    好的 这是交易 我想下载 Android 手机附带的彩信 短信应用程序的完整源代码 我希望能够对其进行修改 并向其添加一些自定义功能 我正在使用 Eclipse 进行开发 并且使用的是 Windows 7 我注意到现在有一 个适用于 Win
  • 发送同一条短信两次

    我正在尝试制作一个短信Android应用程序 但我收到了一个我以前从未见过的错误 即使在谷歌中我也没有找到类似的东西 所以 如果你能帮助我 我会很高兴 由于某种原因 程序同时发送两条消息 同一条短信 但这只是发生在生产中 当我使用模拟器时
  • .NET 的 SMS 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 NET 的免费 SMS 库或网络服务可以让我向人们的手机发送短信吗 您实际上在寻找什么 图书馆
  • 短信:AT指令

    我正在尝试在我的计算机上设置短信网关 这是我找到的一些代码 AT OK AT CMGF 1 OK AT CMGL ALL CMGL 1 REC READ 85291234567 06 11 11 00 30 29 32 Hello welc
  • Big O 用于有限、固定大小的可能值集

    这个问题 https stackoverflow com questions 12305028 java what is the best way to find first duplicate character in a string引
  • 多维数组(如 C/C++ 中的数组)是不规则数组的特殊情况吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我和一个哥们讨论了C 和C多维数组是否是不规则数组的特例 一种观点是 多维数组不是参差不齐的数组 因为多维数组的每个元素具有相同的大小 在参差不齐的数
  • 什么是样板代码、热点代码和热点?

    我知道这些术语是在性能实现 优化的背景下使用的 最近一直在研究这个问题 并尝试过搜索 但没有得到任何例子 清楚地阐述 描述这些概念以及在现实世界开发场景中实现这些问题 概念 有人可以彻底解释这些术语 示例场景以及可能使用这些概念和术语的地方
  • 什么是悲观主义?

    该问题有评论可以使用C 11的吗auto提高性能 https stackoverflow com questions 32510183 can the use of c11s auto improve performance这获得了很多选票
  • 使用 Android 创建 ZIP 文件

    如何从 XML 文件创建 ZIP 文件 我想以 XML 格式备份所有收件箱消息 并压缩 XML 文件并将其存储在SD card http en wikipedia org wiki Secure Digital 下面的代码解决了我的问题 p
  • 类是否应该有静态和非静态成员

    我试图找出一个类何时适合同时具有静态和非静态函数 又名 obj new ClassA obj gt doOOPStuff something ClassA doStaticStuff Note This example is done in
  • 生成所有多集大小为 n 的分区的算法

    我一直在试图找出一种方法来生成多重集的所有不同的大小为 n 的分区 但到目前为止却空手而归 首先让我展示一下我想要实现的目标 假设我们有一个输入向量uint32 t std vector
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • “此应用程序已请求运行时以异常方式终止它”的原因是什么?

    Visual C 运行时抛出一个常见错误 此应用程序已请求运行时以异常方式终止它 请联系应用程序的支持团队以获取更多信息 该错误消息实际上是什么意思mean 让我用一个比喻来准确地解释我的问题 如果我看到一条消息 异常 访问冲突 0xc00
  • 哪些不同的术语表示相同的事物(或不同的术语,但人们认为它们表示相同的意思)? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • GSM 调制解调器 USSD 检查余额时出现 CME 错误 100

    我正在尝试使用华为 E1550 3G 调制解调器通过 USSD 检查 SIM 卡余额 但当我总是发送 AT CUSD 1 100 15 I Get CME Error 100 是的 我的调制解调器支持 USSD 因为我有一个调制解调器的仪表

随机推荐

  • 使用 Node 或 Express 返回 JSON 的正确方法

    因此 我们可以尝试获取以下 JSON 对象 curl i X GET http echo jsontest com key value anotherKey anotherValue HTTP 1 1 200 OK Access Contr
  • Vue 3:为什么我的可组合项不是响应式的?

    我想在另一个可组合项中使用一个可组合项 我的第一个可组合项基本上是 Vuex 的超轻量级版本 import reactive readonly from vue const state reactive settings loading t
  • 在Python中使用“for”计算索引

    我需要在Python中做同样的事情 for i 0 i lt 5 i cout lt lt i 但我不知道如何在Python中使用FOR来获取列表中元素的索引 如果您有一些给定的列表 并且想要迭代其项目and索引 您可以使用enumerat
  • 捕获与量词正则表达式匹配的组

    我是正则表达式世界的新手 我需要捕获一些不同类型的字符串 顺便说一下 请建议更优雅的方式来捕获此类字符串 n 任意正数 不相同 n 0 0 0 0 n n 0 0 0 n n n 0 0 n n n n 0 n n n n n 我尝试使用这
  • 从剪贴板上传图片到服务器

    我寻找解决方案很长时间 但找不到任何解决方案 是否有可能将图片从剪贴板上传到服务器上的文件 通过按 ctrl v 它可以适用于 Chrome 使用 PHP Javascript jquery 或者其他什么 一些 Chrome 的外部扩展 多
  • cucumber.js 并且不是一个函数

    我正在练习使用 cucumber js 通过 BDD 编写一些单元测试 当我尝试使用 And 语句时 该错误表明 TypeError And is not a function 这是我的代码 feature Feature dataTabl
  • 从 XML 文件获取子节点

    我有一个如下所示的 XML 文件
  • 将多个 csv 文件合并为一个 csv 文件

    我正在尝试将多个 csv 文件合并为一个 并尝试了多种方法 但我很挣扎 我从多个 csv 文件导入数据 当我将它们一起编译成一个 csv 文件时 似乎前几行填充得很好 但随后它开始在行之间随机输入可变数量的空格 并且它永远不会填写完合并的
  • 如何为ant任务创建嵌套元素?

    是否可以为任何 ant 任务创建嵌套元素 例如
  • 解析来自远程网站的 xml 数据

    我想解析来自远程网站的xml数据http services faa gov airport status IAD format xml http services faa gov airport status IAD format xml
  • Visual Studio 2019打开解决方案文件不兼容

    我想我正在使用 Visual Studio 2017 并编写了一个 SSIS 包 现在我安装了Visual Studio 2019 但无法打开解决方案文件 错误 不支持 此版本的 Visual Studio 无法打开 以下项目 项目类型可能
  • Azure Functions 的身份验证

    我花了 24 小时阅读有关如何创建 Azure Functions 的所有内容 并成功将 MVC WebApi 转换为具有多个功能的新 Function App 我的问题是 我没有找到任何关于如何使用它们进行最基本的身份验证的明确文档或教程
  • 为什么没有与 new/delete 系列等价的 realloc?

    正如标题所说 我知道没有与 C 相当的东西realloc in the new delete经营者家族 我已经找到了this https stackoverflow com questions 67225388 implementing c
  • 使用 Tkinter 实现密码对话框

    我正在尝试实现一个获取用户密码的对话框 我已经创建了班级PasswordDiaglog继承自tk Toplevel但这会导致其执行不阻塞父框架的问题 import Tkinter as tk class PasswordDialog tk
  • 启动 TaskHost.exe 失败,尝试运行 Windows Phone 8 应用程序?

    我的 VS 2013 设置已经运行良好几个月了 今天我尝试更新到 Visual Studio 2013 Update 2 RC 就像上次我更新到 Update 1 时一样 安装程序严重失败 并出现大量标有 哈希值不正确 错误的软件包 不幸的
  • 从 PHP 和设置权限在 phpBB3 中创建论坛

    我正在尝试在现有论坛上创建一个新论坛 我可以非常轻松地创建新论坛并从管理控制台查看它 问题是我也需要它向用户显示在前端 这是通过权限完成的 因此 我试图做的是将父论坛 公开的 的权限复制到我创建的论坛 然而 该论坛似乎仍然没有出现在面向公众
  • onActivityResult 的问题

    我正在创建一个应用程序 在应用程序启动时相机会打开拍照 我还在应用程序中实现了 Facebook 登录FB Login http developers facebook com docs howtos androidsdk 3 0 logi
  • 黑莓:选择列表中的项目,返回上一屏幕

    我为我的问题准备了一个非常简短的测试用例 如下 单击按钮时 我想在新屏幕中显示字符串列表 用户选择列表中的一项后 应再次显示上一屏幕 并且按钮标签应设置为所选字符串 我的两个问题是 从菜单内部我不知道如何弹出当前显示的屏幕 如何将所选项目从
  • Terraform - Azure 作为提供商和受限访问帐户

    我想使用 Terraform 在 Azure 上部署一些资源 在 Azure 上 我拥有一个仅对一个资源组 RGName 具有 所有者权限 的帐户 不在订阅级别 在我的 Linux 服务器上 我安装了 az cli 并执行了 az logi
  • +CNMI命令:如何接收通知并保存到SIM卡收到的短信

    我需要收到成功发送的通知 我读了很多并尝试过 我有 GSM 调制解调器中兴K4510Z 我没有收到任何通知或保存到 SIM 卡 在我的测试中 我以为我的SIM卡坏了 所以我尝试AT CMGW将临时消息写入 SIM 卡 它成功并存在 所以最后