您的位置:首页 > 其它

3G设备拨号

2011-07-04 21:58 134 查看
3G设备拨号
手持设备的3G拨号功能可以分2部分来实现
1 UI界面
这个可以用一个状态栏插件的形式和用户交互.

2 后台就调用wvdial 进行拨号。

实例如下
定义一个继承自STATUSBAR_TYPE_ITEM的type
私有结构如下:
typedef struct
{
osso_context_t * osso; /* osso */
GtkWidget * icon; /* icon in button */
GtkWidget * button; /* button in StatusBar */
char * cfgFile;
char * title;
GtkWidget * wnd;
void * data;
}JoderSBDialerPrivate;
在实例初试化函数中,对上面的这个私有结构进行初试化
data 指向下面的结构体
typedef struct
{
int vendor_count;
char * vendor[MAX_VENDOR];
char * cmdDial[MAX_VENDOR];
char * cmdChkSim[MAX_VENDOR];
char * cmdState[MAX_VENDOR];
char * cmdSignal[MAX_VENDOR];
char * cmdDisconnect[MAX_VENDOR];
int simState[MAX_VENDOR];
int state[MAX_VENDOR];
int ss[MAX_VENDOR]; //signal strength
sem_t lock[MAX_VENDOR];
}FlorDial;

从下面配置文件中读取相关信息填入FlorDial结构中
[evdo1]
dial=jsd-dial start evdo1
disconnect=jsd-dial stop evdo1
state=jsd-get-pid evdo1
signal=jsd-get-signal evdo1
chksim=jsd-chk-sim evdo1
[evdo2]
dial=jsd-dial start evdo2
disconnect=jsd-dial stop evdo2
state=jsd-get-pid evdo2
signal=jsd-get-signal evdo2
chksim=jsd-chk-sim evdo2~
分别有拨号,断开,状态,信号,检测卡的操作
添加一个点击事件
g_signal_connect(jsd->button, "clicked", G_CALLBACK(jsd_dlg_show), jsd);
在这个事件回调函数中弹出一个交互窗口,供用户来选择
在这些脚本中可以调用wvdial来进行拨号

配置文件

[Dialer evdo1]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = USB Modem
Baud = 115200
Init = ATX0
Phone = #777

Dial Prefix =
Dial Attempts = 1
Dial Command = ATDT
Ask Password = off
Password = CARD
Username = CARD
Auto Reconnect = on
Abort on Busy = off
Carrier Check = no
Check DefRoute = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
[Dialer evdo2]
Modem = /dev/ttyUSB4
ISDN = off
Modem Type = USB Modem
Baud = 115200
Init = ATX0
Phone = #777
Dial Prefix =
Dial Attempts = 1
Dial Command = ATDT
Ask Password = off
Password = CARD
Username = CARD
Auto Reconnect = on
Abort on Busy = off
Carrier Check = no
Check DefRoute = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: