Chinaunix首页 | 论坛 | 博客
  • 博客访问: 842866
  • 博文数量: 244
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2420
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-29 09:07
文章分类

全部博文(244)

文章存档

2011年(4)

2010年(3)

2009年(72)

2008年(119)

2007年(46)

我的朋友

分类: LINUX

2008-01-11 17:52:23

gpephone使用gsmd
官方文档: http://wiki.openmoko.org/wiki/Gsmd/document

一些patch
call forwarding
http://lists.openmoko.org/pipermail/gsmd-devel/attachments/20080102/1e95e99c/call-forwarding.bin

gsmd 使用的是socket方式进行通信

socket参考文档

Linux下select调用的过程:
1.用户层应用程序调用select(),底层调用poll())
2.核心层调用sys_select() ------> do_select()
最终调用文件描述符fd对应的struct file类型变量的struct file_operations *f_op的poll函数。
poll指向的函数返回当前可否读写的信息。
1)如果当前可读写,返回读写信息。
2)如果当前不可读写,则阻塞进程,并等待驱动程序唤醒,重新调用poll函数,或超时返回。
3.驱动需要实现poll函数。
当驱动发现有数据可以读写时,通知核心层,核心层重新调用poll指向的函数查询信息。
poll_wait(filp,&wait_q,wait) // 此处将当前进程加入到等待队列中,但并不阻塞
在中断中使用wake_up_interruptible(&wait_q)唤醒等待队列

AT命令

openmoko中pin的处理 


sim卡操作的一些函数(MSDN)

sim卡操作的一些函数


SimChangeLockingPassword
SimGetLockingStatus
SimGetPhoneLockedState
SimSetLockingStatus
SimUnlockPhone


呼叫限制,呼叫等待等
lineGetCallBarringCaps      Retrieves the barring modes supported by the radio hardware and network.
lineGetCallBarringState     Retrieves the current barring state for a given mode. 
lineGetCallWaitingCaps      Retrieves the set of media modes for which call waiting is supported by the radio hardware and network.
lineGetCallWaitingState     Retrieves the list of media modes for which call waiting is enabled.
lineGetRegisterStatus       Retrieves the network registration status of the device.
lineSendUSSD                Sends a USSD message. 
lineSetCallBarringPassword  Changes the call-barring password.
lineSetCallBarringState     sets call barring of media modes for a given call-barring mode.
lineSetCallWaitingState     Sets call waiting for a given set of media modes. 
 

at+creg=2 -> set gsm to report location + cellid
at+creg? -> answers "+CREG: 2, 1, 00CB, 3F5F"

AT+CFUN= 0,
modem不可以打电话,发短信,但是可以有其他操作,比如读 sim卡之类的。
AT+CFUN= 1,
modem可以打电话,发短信...所以叫做full functionality


lgsm_passthrough()
    ->lgsm_blocking_wait_packet()
        ->lgsm_handle_packet()
            ->evt_demux_msghandler()

要与gsmd通信必须调用lgsm_init() 获得lgsm_handle结构的指针,这个结构包括
与gsmd通信所建立的socket,lgsm_handle结构还包括一个指向lgsm_msg_handler的函数指针数组
通过lgsm_register_handler可以为不同的消息定义相应的回调函数,回调函数保存在指针数组里,
如:lgsm_register_handler (lgsmh, GSMD_MSG_PIN, pin_msghandler)
为GSMD_MSG_PIN消息注册回调函数:pin_msghandler
gsmd发送at命令以后把收到的回复通过 gsmd_ucmd_submit 发给客户端(libtapi gsmdapp libgsmd-tool) 等。

gsmd_msg_type
libtapi是通过调用tel_open_session()来调用 lgsm_init()
libgsmd-tool 是在main() 直接调用 lgsm_init()
tel_open_session()
    ->lgsm_init()

 

WAVECOMQ2358CCDMA模块常用AT命令如下

WAVECOM Q2358C CDMA模块常用AT命令如下:
厂家认证      AT+CGMI      获得厂家的标识

模式认证      AT+CGMM      查询支持频段
修订认证      AT+CGMR      查询软件版本
生产序号      AT+CGSN      查询IMEI NO.
TE设置        AT+CSCS      选择支持网络
查询IMSI      AT+CIMI      查询国际移动电话支持认证
卡的认证      AT+CCID      查询SIM卡的序列号
功能列表      AT+GCAP      查询可供使用的功能列表
重复操作      A/      重复最后一次操作
关闭电源      AT+CPOF      暂停模块软件运行
设置状态      AT+CFUN      设置模块软件的状态
活动状态      AT+CPAS      查询模块当前活动状态
报告错误      AT+CMEE      报告模块设备错误
键盘控制      AT+CKPD      用字符模拟键盘操作
拨号命令      ATD      拨打电话号码
挂机命令      ATH      挂机
回应呼叫      ATA      当模块被呼叫时回应呼叫
详细错误      AT+CEER      查询错误的详细原因
DTMF信号      AT+VTD,+VTS      +VTD设置长度,+VTS发送信号
重复呼叫      ATDL      重复拨叫最后一次号码
自动拨号      AT%Dn      设备自动拨叫号码
自动接应      ATS0      模块自动接听呼叫
呼入载体      AT+CICB      查询呼入的模式,DATA or FAX or SPEECH
增益控制      AT+VGR,+VGT      +VGR调整听筒增益,+VGT调整话筒增益
静音控制      AT+CMUT      设置话筒静音
声道选择      AT+SPEAKER      选择不同声道(2对听筒和话筒)
回声取消      AT+ECHO      根据场所选择不同回声程度
单音修改      AT+SIDET      选择不同回声程度
初始声音参数      AT+VIP      恢复到厂家对声音参数的默认设置
信号质量      AT+CSQ      查询信号质量
网络选择      AT+COPS      设置选择网络方式(自动/手动)
网络注册      AT+CREG      当前网络注册情况
网络名称      AT+WOPN      查询当前使用网络提供者
网络列表      AT+CPOL      查询可供使用的网络
输入PIN       AT+CPIN      输入PIN码
输入PIN2      AT+CPIN2      输入第二个PIN码
保存尝试      AT+CPINC      显示可能的各个PIN码
简单上锁      AT+CLCK      用户可以锁住状态
改变密码      AT+CPWD      改变各个PIN码
选择电话簿      AT+CPBS      选择不同的记忆体上存储的电话簿
读取电话簿      AT+CPBR      读取电话簿目录
查找电话簿      AT+CPBF      查找所需电话目录
写入电话簿      AT+CPBW      增加电话簿条目
电话号码查找      AT+CPBP      查找所需电话号码
动态查找      AT+CPBN      查找电话号码的一种方式
用户号码      AT+CNUM      选择不同的本机号码(因网络服务支持不同)
避免电话簿初始化      AT+WAIP      选择是否防止电话簿初始化
选择短消息服务      AT+CSMS      选择是否打开短消息服务以及广播服务
短消息存储      AT+CPMS      选择短消息优先存储区域
短消息格式      AT+CMGF      选择短消息支持格式(TEXT or PDU)
保存设置      AT+CSAS      保存+CSCA and +CSMP参数设置
恢复设置      AT+CRES      恢复+CSCA and +CSMP参数设置
显示TEXT参数      AT+CSDH      显示当前TEXT模式下结果代码
新消息提示      AT+CNMI      选择当有新的短消息来时系统提示方式
读短消息      AT+CMGR      读取短消息
列短消息      AT+CMGL      将存储的短消息列表
发送短消息      AT+CMGS      发送短消息
写短消息      AT+CMGW      写短消息并保存在存储器中
从内存中发短消息      AT+CMSS      发送在存储器中保存的短消息
设置TEXT参数      AT+CSMP      设置在TEXT模式下条件参数
删除短消息      AT+CMGD      删除保存的短消息
服务中心地址      AT+CSCA      提供短消息服务中心的号码
选择广播类型      AT+CSCB      选择系统广播短消息的类型
广播标识符      AT+WCBM      读取SIM卡中系统广播标识符
短消息位置修改      AT+WMSC      修改短消息位置
短消息覆盖      AT+WMGO      写一条短消息放在第一个空位
呼叫转移      AT+CCFC      设置呼叫转移
呼入载体      AT+CLCK      锁定呼入载体以及限制呼入或呼出
修改SS密码      AT+CPWD      修改提供服务密码
呼叫等待      AT+CCWA      控制呼叫等待服务
呼叫线路限定      AT+CLIR      控制呼叫线路认证
呼叫线路显示      AT+CLIP      显示当前呼叫线路认证
已连接线路认证      AT+COLP      显示当前已连接线路认证
计费显示      AT+CAOC      报告当前费用
累计呼叫      AT+CACM      累计呼叫费用
累计最大值      AT+CAMM      设置累计最大值
单位计费      AT+CPUC      设置单位费用以及通话计时
多方通话      AT+CHLD      保持或挂断某一通话线路(支持多方通话)
当前呼叫      AT+CLCC      列出当前呼叫
补充服务      AT+CSSN      设置呼叫增值服务
非正式补充服务      AT+CUSD      非正式的增值服务
保密用户      AT+CCUG      选择是否在保密状态
载体选择      AT+CBST      选择数据传输的类型
选择模式      AT+FCLASS      选择发送数据or 传真
服务报告控制      AT+CR      是否报告提供服务
结果代码      AT+CRC      报告不同的结果代码(传输方式、语音或数据)
设备速率报告      AT+ILRR      是否报告当前传输速率
协议参数      AT+CRLP      设置无线连接协议参数
其他参数      AT+DOPT      设置其他的无线连接协议参数
传输速度      AT+FTM      设置传真发送的速度
接收速度      AT+FRM      设置传真接收的速度
HDLC传输速度      AT+FTH      设置传真发送的速度(使用HDLC协议)
HDLC接收速度      AT+FRH      设置传真接收的速度(使用HDLC协议)
停止传输并等待      AT+FTS      停止传真的发送并等待
静音接收      AT+FRS      保持一段静音等待
固定终端速率      AT+IPR      设置数据终端设备速率
其他位符      AT+ICF      设置停止位、奇偶校验位
流量控制      AT+IFC      设置本地数据流量
设置DCD信号      AT&C      控制数据载体探测信号
设置DTR信号      AT&D      控制数据终端设备准备信号
设置DSR信号      AT&S      控制数据设备准备信号
返回在线模式      ATO      返回到数据在线模式
结果代码抑制      ATQ      是否模块回复结果代码
DCE回应格式      ATV      决定数据通信设备回应格式
默认设置      ATZ      恢复到默认设置
保存设置      AT&W       保存所有对模块的软件修改
自动测试      AT&T      自动测试软件
回应      ATE      是否可见输入字符
回复厂家设置      AT&F      软件恢复到厂家设置
显示设置      AT&V      显示当前的一些参数的设置
认证信息      ATI      显示多种模块认证信息
区域环境描述      AT+CCED      用户获取区域参数
自动接收电平显示      AT+CCED      扩展到显示接收信号强度
一般显示      AT+WIND     
在ME和MSC之间数据计算模式      AT+ALEA     
数据计算模式      AT+CRYPT     
键盘管理      AT+EXPKEY     
PLMN上的信息      AT+CPLMN     
模拟数字转换测量      AT+ADC     
模块事件报告      AT+CMER     
选择语言      AT+WLPR      选择可支持的语言
增加语言      AT+WLPW      增加可支持的语言
读GPIO值      AT+WIOR     
写GPIO值      AT+WIOW     
放弃命令      AT+WAC      用于放弃SMS、SS and PLMN
设置单音      AT+WTONE      设置音频信号(WMOi3)
设置DTMF音      AT+WDTMF      设置DTMF音(WMOi3)





阅读(1011) | 评论(0) | 转发(0) |
0

上一篇:python

下一篇:关于gcc、glibc和binutils的关系

给主人留下些什么吧!~~