View source for Gsmd/zh cn
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Gsmd/zh cn.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Template used on this page:
Return to Gsmd/zh cn.
gsmd 是在Openmoko手机上执行的 GSM背景程序。它用来管理话机中传统的'通话' 领域 (声音/简讯/gprs 通讯连结)。
你可以在这里找到进行中的进阶技术描述及API文件。
当以/etc/init.d/gsmd script启动时,gsmd 通常会以背景程序执行,在这个案例当中gsmd会输出侦错讯息到 "/tmp/gsm.log"档案中 (stdout及stderr在这里则被重新导引).
针对侦错目地,gsmd可以在前景模式下执行,可以被使用的选项如下:
> gsmd --help gsmd - (C) 2006 by Harald Welte <laforge@gnumonks.org> This program is FREE SOFTWARE under the terms of GNU GPL Usage: -v --version 显示程序版本 -d --daemon Deamonize -h --help 显示辅助讯息 -p dev --device dev 指定串行装置为作用中装置 -s spd --speed spd 指定bps速度 (9600,38400,115200,...) -F --hwflow 硬件流量控制(RTS/CTS) -L --leak-report Leak Report of talloc memory allocator -l file --logfile file Specify a logfile to log to
如果你的GSM 调制解调器连接到ttySAC0 (如 Neo1973), 使用如下指令启动它:
> gsmd -p /dev/ttySAC0 -s 115200 -F
(baud rate可被modem自动侦测)
使用最近的 uboot (svn > r2885),gsm modem可以电源启动,并且从uboot本身连接到uboot的串行控制埠。然后,允许host PC直接与调制解调器互动。关于host pc执行gsmd 的文章,你可以在这里找到。
libgsmd 是C 语言API中的链接库。这个链接库的程序可以被用在手机上,如打电话、接收电话、注册为网络一员...等。
libgsmd-tool 是可以用来诠释libgsmd API的小型展示应用程序。
libgsmd-tool 有多重模式。
Shell 模式针对语音通话提供一个简单的text-based 指令界面。
shell 模式可以利用下面的指令启动
libgsmd-tool -m shell
以下即为它的实做范例:
> src/util/libgsmd-tool -m shell libgsm-tool - (C) 2006 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY ? A Answer incoming call D Dial outgoing number H Hangup call O Power On o Power Off r Register to network R Register to given operator (R=number) U Unregister from netowrk P Print current operator L Detect available operators Q Read signal quality T Send DTMF Tone n Print subscriber numbers pd PB Delete (pb=index) pr PB Read (pr=index) prr PB Read Range (prr=index1,index2) pf PB Find (pf=indtext) pw PB Write (pw=index,number,text) ps PB Support pm PB Memory pp PB Set Memory (pp=storage) pRr Retrieve Readrg Records pRf Retrieve Find Records sd SMS Delete (sd=index,delflg) sl SMS List (sl=stat) sr SMS Read (sr=index) ss SMS Send (ss=ask_ds,number,text|["text"]) sw SMS Write (sw=stat,number,text) sm SMS Storage stats sM SMS Set preferred storage (sM=mem1,mem2,mem3) sc SMS Show Service Centre sC SMS Set Service Centre (sC=number) q Quit O # EVENT: PIN request (type=1) Please enter PIN: 6582 r # EVENT: Netreg searching for network EVENT: Netreg registered (home network) D03024033902 # Dial 03024033902 EVENT: Call Progress: UNKNOWN EVENT: Call Progress: PROCEED EVENT: Call Progress: SYNC EVENT: Call Progress: ALERT H # Hangup EVENT: Call Progress: DISCONNECT EVENT: Call Progress: RELEASE EVENT: Incoming call type=2! EVENT: Incoming call clip=`"03024033902"' EVENT: Incoming call type=2! A # Answer RSTR=`OK' H # Hangup RSTR=`OK'
atcmd模式是passthrough-mode。Passthrough指的是它接收 GSM 07.07 指令,透过背景程序将它传送到电话,并且传回你的响应。这对于侦除错误来讲,是很有用的一个方法。
atcmd模式可以由使用下列指令来启用它
libgsmd-tool -m atcmd
它的用途可以参考下面的范例:
> src/util/libgsmd-tool -m atcmd libgsm-tool - (C) 2006 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY AT+CPAS STR=`AT+CPAS' RSTR=`+CPAS: 0' AT+COPS=? STR=`AT+COPS=?' RSTR=`+COPS: (2,"E-Plus","E-Plus","26203"),(3,"o2 - de","o2 - de","26207"),(3,"Vodafone.de","Vodafone","26202"),(3,"T-Mobile D","TMO D","26201")'
控制员的选择功能被合并到 SVN head[1]:
libgsmd-util 指令列如下:
R - Register to given operator (R=number) P - Print current operator L - Detect available operators Q - Read signal quality
它是由名为 "_opers_" 所执行。
(如果你遗失了某些功能,请将这些项目加下以下的清单)
模拟韧体、gsmd及libgsmd 可以在任何机器上被良好的测试。 参考 Kero's page或者直接参考 (lib)gsmd 测试页.
gsmd 需要在GSM硬件上进行适当的状态追踪。 针对很多传送状态,我们只能从GSM调制解调器上取得事件,但并没有适合的询问指令。不然,假设 gsmd 持续的执行,应用程序可以执行,但仍有与目前调制解调器状态的想法,即使他们遗失了启始的状态传送。
同时,gsmd 状态追踪允许我们能安全的操作多个应用程序。如一个应用程序被"发话"所启始,gsmd可以侦测其它的想要干预它并拒绝存取的应用程序。
它必须由调制解调器设定,以便于它可以由适当的事件,让系统从睡眠模式下被唤醒。
gsmd source被放置在src/target/gsm 目录下的OpenMoko svn。
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |