我工作的当前产品通过串行链路支持标准调制解调器AT命令。 ATD,ATH,ATV,ATQ ATE等命令可以从设备获取信息,也可以从设备上获取seti信息。
该设备还支持拨号PPP连接,当从PC启动时,通常会先执行一些AT命令 - 例如ATD。
我们正在寻找使用Android创建类似的设备,我搜索Android或Linux是否通过串行接口(如RS232或USB)支持Hayes调制解调器AT命令,并且无法找到这样的层或组件。
在Android RIL页面上,我看到它说,“Android提供参考供应商RIL,使用Hayes AT命令集,您可以将其用作电话测试的快速入门和商业供应商RIL的指南”。但我相信这可能是为了与基带或电话层连接。这通常也用于串行接口,DTE可以发出AT命令并与Android设备通话吗?
我也研究过Linux,它确实有一套基本的AT命令,但它们与调制解调器无关,并且用于不同的目的 - 例如atq列出了用户的待处理作业,atrm删除了由其作业编号标识的作业。
所以我期待看,Android或Linux内核是否有默认的AT命令解析器,它支持Hayes AT命令集,可以通过串行链路连接到Android设备的DTE访问。
我认为这是手机的典型案例,其他人可能会遇到同样的问题或问题,但我没有在Android论坛上找到答案。
添加更多信息以澄清我的问题,因为它似乎从答案来看,我不是很清楚我在问什么
为了澄清我的问题,我不是试图从Android手机发出AT命令。相反,我希望通过串行链路(如RS232 / USB /蓝牙)从PC向Android手机发出AT命令。
我想了解Android是否固有支持AT命令并且有AT解析器?
例如要建立从Windows到支持PPP的设备的PPP链接(拨号连接),Windows将首先发送一些AT命令,最后发送ATD(拨号)命令。设备响应CONNECT响应,之后切换到在线模式,建立PPP链路,并在PC和设备之间发送IP数据。因此,通常这种设备(调制解调器)默认处于AT模式。 ATD就是这样一个命令。该设备还支持其他几种AT命令。
现在要开发一个使用Android的类似设备,我想在不显着改变Linux内核或Andorid架构的情况下做到这一点,并且我希望了解是否一个识别标准AT命令集的AT命令解析器是否受到了隐含支持机器人。
为了使我的问题更清楚,请考虑用于例如PC的情况。使用BT DUNS(拨号网络)配置文件连接到设备(电话)。 DUNS配置文件要求电话支持即解析并识别某些AT命令,例如AT& C,& D,& F,+ GCAP,+ GMI,+ GMM,+ GMR,ATA,D,E,H,L ,M等。
Android如何解决这个问题?它是否具有重新配置和响应此类AT命令的原生支持?
提前感谢!
答案 0 :(得分:0)
如果我理解正确,您希望通过从Android设备到硬件的串行通信发送AT命令,并获得回复。
基本上,人们可以通过蓝牙实现串行通信 - 或者使用USB通信从12级开始。
我在两种方式都做了相当广泛的串行通信,它运行得很好。到目前为止,主要问题是蓝牙串行适配器非常昂贵 - 新的USB串行通信在某些设备上存在缺陷。
我最后一次测试三星Galaxy Tab时,USB驱动程序无法正常运行。在其他一些Android设备上,根本没有安装USB驱动程序。
但是,一旦你有一个有效的Android设备串口通信(使用或不使用AT命令)工作正常
有关详细信息,您可以查看http://developer.android.com/guide/topics/usb/host.html
答案 1 :(得分:0)
在linux上,有chat命令,它通常由pppd恶魔使用。然后是经典TCL expect,它允许编写脚本。它已移植到多种语言,例如expect for Java,Python expect。我没有使用后两种,但它看起来好像你可以将它们用作库而不必将它们称为外部程序。
令人感到奇怪的是,最先进的手机仍然使用古老的Hayes AT命令集而不是合适的API ..
答案 2 :(得分:0)
我知道这是一个旧线程,但是adb shell ls /devices/tty*
显示了/dev/ttyG0
和/dev/ttyG1
此模式显示COM6上的串行设备:
echo ATDTnumberofmyparents >>com6
:允许我拨打父母的电话。