3G设备拨号

 

 


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

你可能感兴趣的:(struct,command,脚本,callback,button,Signal)