手机底层设计-如何根据GSM/CDMA模块AT指令产生电话相关事件
做过手机设计的前辈请解答:AT指令解析器,即解析GSM/CDMA模块AT指令的底层程序模块,如何根据GSM/CDMA模块AT指令产生电话相关事件,供上层程序判断,以便在拨号、呼叫、正在通话等电话界面之间切换?如拨打10086是通过串口发送"ATD10086;"给通讯模块,之后怎么根据AT指令及相关返回信息产生对方正在振铃、电话已接通、电话已被挂断等等事件? 是根据哪些信息以产生事件?
希望能得到大虾的解答!谢谢啦!
--------------------编程问答-------------------- ATD 拨号
RING是indication上来的
ATA接听
ATH挂断
还想知道什么?? --------------------编程问答-------------------- 怎么根据AT指令及相关返回信息产生对方正在振铃、电话已接通、电话已被挂断等等事件? 是根据哪些信息以产生事件?
个人感觉,这些事不是AT能干的,应该是PS层的事。 --------------------编程问答-------------------- 不同手机的AT指令是有差别的,特别是非常规功能,你的问题可以针对某款手机咨询厂商 --------------------编程问答-------------------- 你可以看OTA的log,看基站给你发过来的信息。 --------------------编程问答-------------------- uping
--------------------编程问答-------------------- 你应该有一个进程X专门解析AT命令,识别一条指令后,将约定好的进程间消息发送给MMI进程。
反之也是同理,MMI响应用户的操作,比如用户按下拨号,MMI则发消息给进程X,X收到后,通过串口发送ATD --------------------编程问答-------------------- 手机厂商可能自己都不知道吧 --------------------编程问答--------------------
有没有关于这些模块的详细说明啊?如果有还能提供点资料,大家都来help --------------------编程问答-------------------- 你这个双模的AT需要自己去扩充和完善的啊。 --------------------编程问答-------------------- 例如以下,对应的这些信息应该是PS域发给你的。
ATD<str> 发起呼出
如果遇到与ME功能相关的错误:
+CME ERROR: <err>
如果没有拨号音:
NO DIALTONE
如果忙:
BUSY
如果不能建立连接
NO CARRIER
成功连接到对方,且还未开始通话(对方开始响铃):
CONNECT
接通后,TA进入data状态,
若对方一直无应答通话结束,:
NO ANSWER
通话结束后(包括取消拨号,主动挂断,对方挂断等),回到command状态,返回:
OK
--------------------编程问答-------------------- 这个东西需要协议栈进行相关的扩展AT命令,目前可以用CLCC命令进行查询,但是若要打两路电话会存在问题的。
所以由协议栈进行扩展,上报目前是第一路,状态(连接、振铃、通话)等。
补充:移动开发 , 移动开发其他问题