标签: modem

使用pySerial包的完整示例

有人可以给我看一个完整的python示例代码,使用pyserial,我有包,我想知道如何发送AT命令并阅读它们!

python modem pyserial

92
推荐指数
3
解决办法
44万
查看次数

Modem代码如何与Android代码对话

我想知道Android Modem代码如何调用/传递消息到Android应用程序层的高级概念.假设我们以SMS为例.如果网络发送短信和调制解调器(比如说Qualcomm C代码解析它),它是如何传输到Android应用层的?

是否总会发生JNI通话?作为调制解调器和Android之间的接口 您能否与我们分享信息?谢谢

modem android android-source ril

40
推荐指数
1
解决办法
2万
查看次数

Virtualbox:"其他人使用的USB设备"错误,如何让(mac)主机放手?

我正在尝试通过Virtual Box在Ubuntu中设置USB传真调制解调器,但我不知道该怎么做.

Host OS = Mac OS X
Virtual Box Guest OS = Ubuntu 12.04
56k USB Fax/Modem = Lenovo 43R1786 (43R1815) by Conexant
Run Code Online (Sandbox Code Playgroud)

在主机操作系统上,我可以看到/dev/tty.usbmodem24680241.我启用了USB控制器,发现我的调制解调器为"Conexant USB Modem",所以我启用了它.现在,当我运行客户操作系统时,从该操作系统的Virtual Box菜单中,我转到设备> USB设备> Conexant USB调制解调器,它说:

无法将USB设备Conexant USB调制解调器连接到虚拟机Ubuntu32.其他人正在使用USB设备.看起来这意味着主机(mac)首先抓住设备.我怎样才能让它放手让客人可以使用它?我是以正确的方式设置的吗?

谢谢!

linux ubuntu modem virtualbox

34
推荐指数
1
解决办法
3万
查看次数

Android作为拨号/传真调制解调器

使用一些较旧的手机,您可以将它们连接到计算机并将它们用作拨号/传真调制解调器(例如连接到拨号ISP).我一直试图找出这是否可能与Android,但我的所有搜索最终与人们希望分享他们的手机与他们的PC的互联网连接.这不是我想要做的.我想使用超级终端让我的手机拨打PBX电话,这样我就可以远程更改PBX.

modem android pbx dial-up

15
推荐指数
1
解决办法
4万
查看次数

在Python中使用GSM调制解调器拨打电话时收到"NO CARRIER"错误

我想用我的GSM调制解调器拨打电话.所以我写了下面的程序:

import time
import serial

recipient = "+98xxxxxxxxxx"

phone = serial.Serial("COM10",  115200, timeout=5)
try:
    time.sleep(0.5)
    phone.write(b'ATZ\r')
    time.sleep(1)
    phone.write(b'ATD"'+recipient.encode() +b'"\r')
    while(1):
        print(phone.readline())
    time.sleep(0.5)
finally:
    phone.close()
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到了这个输出:

>>> ================================ RESTART ================================
>>> 
b'ATZ\r\r\n'
b'OK\r\n'
b'ATDxxxxxxxxxx\r\r\n'
b'NO CARRIER\r\n'
Run Code Online (Sandbox Code Playgroud)

这个"NO CARRIER"错误意味着什么?

请注意,我可以成功发送短信.


这是我用来发送短信的程序:

import time
import serial

recipient = "+98xxxxxxxxxx"
message = "Test"

phone = serial.Serial("COM10",  115200, timeout=5)


try:
    time.sleep(0.5)
    phone.write(b'ATZ\r')
    time.sleep(0.5)
    phone.write(b'AT+CMGF=1\r')
    time.sleep(0.5)
    phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r')
    time.sleep(0.5)
    phone.write(message.encode() + b"\r")
    time.sleep(0.5)
    phone.write(bytes([26]))
    time.sleep(0.5)
finally:
    phone.close()
Run Code Online (Sandbox Code Playgroud)

python modem gsm at-command python-3.x

13
推荐指数
1
解决办法
3万
查看次数

在Linux上自动执行串行端口通信

我有一个Linux服务器(Red Hat 4),其中一个串口连接到嵌入式linux设备,另一个串口连接到该设备的电源控制器.我目前控制它们的方法是打开两个minicom会话,每个会话都在自己的窗口中.我想通过脚本自动化这种通信.起初,我开始思考如何自动使用minicom,然后意识到当脚本应该能够直接与端口通信时,我不需要尝试使用控制台应用程序进行自动化.

我知道一些Perl和一些python.我以前没有使用调制解调器通信的经验(使用AT命令).Perl有Device :: Modem,虽然它只是beta版,而Perl似乎是一个不错的选择,因为我更喜欢它的文本提取和争吵能力.但是,如果我需要学习如何控制调制解调器并编写/调试脚本,那么我的任务就会增加更多时间.

是否可以通过脚本以交互方式控制控制台应用程序(如minicom)?如果没有,有什么好资源让我学习如何使用调制解调器AT命令?或者是否有其他资源可以简化我的事情?

linux modem automated-tests serial-port

11
推荐指数
2
解决办法
1万
查看次数

如何与USB 3G调制解调器通信?

我有一个D-Link DWM-156 3G USB调制解调器,我想从我的应用程序(在Windows XP SP3上运行的C#.NET 4.0)发送AT命令.

在插件和安装驱动程序后,调制解调器显示如下:

设备管理器中,添加了两个串行端口:

  • D-Link HSPADataCard诊断接口(COM4)
  • D-Link HSPADataCard NMEA设备(COM5)

控制面板,电话和调制解调器选项中,添加了一个新的调制解调器:

  • D-Link HSPADataCard专有USB调制解调器(连接到COM19)

问题:我应该使用哪个COM端口发送AT命令,以及以哪种速度发送?


我已经尝试了不同速度的所有三个端口,但没有任何运气.

为了便于学习,我随后安装了"Free Serial Port Monitor"嗅探器应用程序,希望能够在打开和关闭互联网连接(可正常工作)时监控与D-Link的通信性.

一开始,嗅探器应用程序会询问我要监视哪个端口,并提供以下端口名称供您选择:

  • "杰尔系统HDA调制解调器",
  • "D-Link HSPADataCard专有USB调制解调器",
  • "COM3"
  • "COM4"
  • "COM5"
  • ......以及其他几个,包括"COM19".

选择"D-Link ..."名称可以正常工作,现在我可以看到所有正在使用的AT命令,但我无法确定端口的使用波特率.此外,COM4,COM5或COM19都不能以这种方式进行嗅探(这些端口似乎没有发生任何事情).

现在我想在.NET中使用SerialPort类打开"D-Link ..."端口并与USB调制解调器通信,但SerialPort类要求端口名称以"COM"开头,否则异常是抛出.但是普通的COM端口都不起作用.我仍然不知道使用哪种波特率.我非常困惑并被锁在这里 - 我能做些什么才能到达底部?

c# windows usb modem serial-port

11
推荐指数
1
解决办法
1万
查看次数

一个好的,简单的软调制解调器库的来源

我做了一个奇怪的项目,并希望将一些简短的数据报转换为音频 - 通过(物理)无线电发送它们 - 然后在另一台设备上接收和解码它们(想想 - 带有音频输出插孔和GSM/GPRS的嵌入式设备)型无线电).

(我必须使用物理的现有外部无线电).

有谁知道一个好的,简单的软件调制解调器库适合这样的项目?我不太关心数据速率,并且更喜欢简单而不是功能.即使类似于基本的1200波特调制解调器也会很棒.

看看这更多的学习经验和潜在的构建块,而不是任何可怕的实用.

iphone modem signal-processing

10
推荐指数
1
解决办法
7951
查看次数

写GSM调制解调器驱动程序?

我一直在研究一种使用GSM调制解调器的应用程序,用于以下两种方式之一; 通过向服务器发送GET请求或将数据发送到服务器(使用UDP),使用内置HTTP堆栈检查其状态.我已经尝试了几种不同的方法来保持尽可能可靠,我终于准备寻求帮助了.

我的应用程序是为SIMCOM908模块和PIC18平台编写的(我使用PIC18 Explorer进行开发).

所以问题是有时候调制解调器忙于做某事,而错过命令.作为一个人,我会看到并只是重新发送命令.为我的MCU添加设施以进行超时和重新发送不是问题.

问题是调制解调器在不同事件之后发送未经请求的响应.当调制解调器改变注册状态(与蜂窝塔一起)时,它将响应+CGREG: 1, ...GPS或准备就绪时GPS Ready.这些响应可以随时发生,包括在命令中间(如创建IP连接).

这是一个问题,因为我没有想过要解决这个问题的方法.我的应用程序需要发送命令(例如,连接到服务器AT+CIPSTART="UDP","example.com",5000),此命令将以"OK"响应,然后当命令完成"CONNECT OK"时.但是,我需要能够对许多其他可能的响应作出反应,而我还没有找到一种方法.我的代码需要做什么; 等待来自调制解调器的响应,检查响应,根据该响应执行操作?

我是代码有限的(是一个8位微控制器!),并希望将重复保持在最低限度.如何编写响应函数,从GSM模块(征求或现在)获取响应,然后让我的程序的其余部分知道发生了什么?

理想情况下,我想对这些回复做些什么.就像保持一个内部状态(当我听到GPS Ready,我知道我可以为GPS等供电

也许有一些我应该考虑的事情,或者可能有一个开源项目已经解决了这个问题?

这是我到目前为止所拥有的:

/* Command responses */
enum {
    // Common
    OK = 0,
    ERROR,
    TIMEOUT,
    OTHER,
    // CGREG
    NOT_REGISTERED,
    // CGATT
    NOT_ATTACHED,
    // Network Status
    NO_NETWORK,
    // GPRS status
    NO_ADDRESS,
    // HTTP ACTION
    NETWORK_ERROR,
    // IP Stack State
    IP_INITIAL,
    IP_STATUS,
    IP_CONFIG,
    UDP_CLOSING,
    UDP_CLOSED,
    UDP_CONNECTING
} gsmResponse;

int gsm_sendCommand(const char * cmd) {
    unsigned long timeout = timer_getCurrentTime() …
Run Code Online (Sandbox Code Playgroud)

c modem gsm pic gprs

10
推荐指数
1
解决办法
3943
查看次数

如何在C#中获取来电显示?

您好我想使用56K调制解调器获取拨打家庭电话的电话号码,有没有办法用C#实现这一目标?

c# modem serial-port hardware-interface caller-id

9
推荐指数
2
解决办法
9234
查看次数