久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

GPRS無線數(shù)傳模塊編程方法(VB)


一、在不同組網(wǎng)方式下的具體設(shè)置:
要使PC機(jī)成為數(shù)據(jù)中心一般用到的有三種方式:(中心采用Intelnet公網(wǎng)連接、中心采用專線接入、撥號(hào)上網(wǎng)方式)
不管哪種方式PC機(jī)都需要一個(gè)固定IP。公網(wǎng)或?qū)>€方式的IP為網(wǎng)卡的IP;撥號(hào)上網(wǎng)方式的IP為無線Modem的GPRS卡綁定的IP。
1、 公網(wǎng)方式:
因?yàn)镻C機(jī)有了固定的IP,所以在使用的時(shí)候,不需要做什么特別的設(shè)置就行了,只要將模塊的APN名稱設(shè)為CMNET就行。
2、 專線方式:PC機(jī)由網(wǎng)卡可以登錄到數(shù)據(jù)服務(wù)器所在的網(wǎng)絡(luò)內(nèi)。
具體實(shí)現(xiàn)方法:設(shè)置PC機(jī)的本地連接,(主要是IP地址和網(wǎng)關(guān),網(wǎng)關(guān)為數(shù)據(jù)服務(wù)器的網(wǎng)關(guān))設(shè)置完成后,可以用Ping命令測(cè)試網(wǎng)絡(luò)是否通。
步驟:點(diǎn)擊“開始”—“運(yùn)行”,在‘打開’中輸入Ping數(shù)據(jù)服務(wù)器的 IP,(如萊蕪力創(chuàng)的數(shù)據(jù)服務(wù)器IP為192.168.0.164,輸入Ping 192.168.0.164)回車。模塊的APN名稱設(shè)為 LICHUANG. LW. SD
3、 撥號(hào)上網(wǎng)方式:PC機(jī)由無線Modem可以登錄到數(shù)據(jù)服務(wù)器所在的網(wǎng)絡(luò)內(nèi)。
a、 無線Modem(調(diào)制解調(diào)器)有幾種?
一般情況下,我們使用的有兩種,一種為USB連接的,一種為串口連接的。
b、 怎樣設(shè)置可以使無線Modem登錄到數(shù)據(jù)服務(wù)器所在的網(wǎng)絡(luò)?
先將調(diào)制解調(diào)器正確連接到計(jì)算機(jī)上。
對(duì)調(diào)制解調(diào)器進(jìn)行安裝:控制面板—添加新硬件—從列表中選擇“調(diào)制解調(diào)器”—選擇此調(diào)制解調(diào)器所使用的端口—在區(qū)號(hào)中輸入‘086’,選擇音頻,撥打外線區(qū)號(hào)可以不輸入。
調(diào)制解調(diào)器安裝完成后,還要診斷一下是否安裝正確,安裝的調(diào)制解調(diào)器是否可用。步驟為:控制面板—調(diào)制解調(diào)器—屬性—診斷。
對(duì)調(diào)制解調(diào)器進(jìn)行配置:控制面板—調(diào)制解調(diào)器—屬性—高級(jí),在額外的初始化命令中,
如果是使用東營(yíng)的GPRS卡,則在附加設(shè)置中輸入(“AT+CGDCONT=1,”IP”,”DYSHL.SD””)
如果使用的是力創(chuàng)的GPRS卡,則在附加設(shè)置中輸入(“AT+CGDCONT=1,”IP”,”LICHUANG.LW.SD””)
c、 怎樣建立撥號(hào)連接?
正確連接調(diào)制解調(diào)器后,還要建立撥號(hào)連接才可以。詳細(xì)步驟為:
右擊‘網(wǎng)上鄰居’—屬性—建立新連接—選擇撥號(hào)到專用網(wǎng)絡(luò)—在輸入電話號(hào)碼時(shí)輸入‘*99***1#’,其于情況默認(rèn)點(diǎn)擊‘下一步’即可。
d、 撥號(hào)上網(wǎng)方式的IP怎樣獲得?
判斷數(shù)據(jù)中心(無線Modem)的IP,方法有多種:
先撥號(hào)連接,待撥號(hào)連接成功后,
在任務(wù)欄中右擊”撥號(hào)連接”的圖標(biāo),選擇’狀態(tài)’,在彈出的畫面中選擇’信息’,看一下’客戶端IP’就行了。
選擇開始—運(yùn)行(輸入cmd回車)—輸入ipconfig回車,便可以看到撥號(hào)連接的IP了。
e、 怎樣讓無線Modem掉線后自動(dòng)重?fù)埽?br>無線Modem在使用的過程中會(huì)出現(xiàn)掉線的情況,因?yàn)橛脩舨豢赡芸偸顷P(guān)注此時(shí)的無線Modem是否掉線了,為了使無線Modem不耽誤數(shù)據(jù)傳輸,可以將其設(shè)置成掉線后自動(dòng)重?fù)艿墓δ堋?br>具體操作為:
先查找到‘撥號(hào)連接’(在撥號(hào)網(wǎng)絡(luò)中)—屬性—選項(xiàng)
在‘撥號(hào)選項(xiàng)’中去掉所有的選項(xiàng),選中‘重?fù)苓x項(xiàng)’中的斷線重?fù)芗纯伞?br>在設(shè)置時(shí)也可以將重?fù)艽螖?shù)設(shè)置的更大一些,比如說10次,不設(shè)置也可,用戶可根據(jù)實(shí)際情況來定。
在‘重?fù)苓x項(xiàng)’中有一項(xiàng)為‘掛斷前的空閑時(shí)間’,我們一般設(shè)置為“從不”。如果設(shè)置為某個(gè)時(shí)間,則連接時(shí)間到了該值時(shí)便出現(xiàn)掉線的狀況。

二、一般控件的編寫:
控件實(shí)際上就是類的封裝,一個(gè)類中可以定義自己的結(jié)構(gòu)、屬性、方法、事件。
1、 結(jié)構(gòu): Private Type 結(jié)構(gòu)名
MyName as String ''''''結(jié)構(gòu)中的參數(shù)
MyAge as Integer
End Type

2、 屬性:
Dim m_GPRSLong As Long
Public Property Let GPRSLong (ByVal NewGPRSLong As Long) ''''''將表達(dá)式的值賦給變量或?qū)傩?br>m_GPRSLong = NewGPRSLong
PropertyChanged "GPRSLong" ''''''PropertyChanged方法是通知屬性的值已經(jīng)發(fā)生變化
End Property

Public Property Get GPRSLong() As Long ''''''讀屬性值
GPRSLong = m_GPRSLong
End Property

3、 方法(函數(shù)):
Public Function StartServer(Ip As String, Port As Long) As Boolean
''''''這種方法用戶可以使用
End Function

Private Sub tcpServer_Close(Index As Integer) As Boolean
''''''這種方法用戶不可以使用,控件本身自己使用
End Sub

4、 事件:
Public Event GetUserID(ByVal User_Id As String, ByVal UserDeal_Id As String)

激活事件時(shí)用RaiseEvent 語句
RaiseEvent GetUserID(m_Id, Deal_Id)

5、 用戶用到的一些常用事件:
UserControl_Resize ''當(dāng)控件第一次顯示或狀態(tài)改變時(shí)發(fā)生,調(diào)節(jié)控件大小的。
比如可以在這里面設(shè)置一下控件的高度和寬度
UserControl.Height = 525
UserControl.Width = 525
這樣在用戶使用的時(shí)候向窗體中添加該控件時(shí),大小就不可以改變了。

三、GPRS控件的主要屬性、方法、事件:
有了前面介紹的一般控件的知識(shí),下面主要針對(duì)GPRS的工作原理,介紹一下其控件的編程:
1、 屬性:
GPRS控件的主要屬性就是IP地址、端口號(hào)、接收到的數(shù)據(jù)長(zhǎng)度。
LocalIP 屬性 / Localport 屬性 / GPRSLong屬性
2、 方法:
A、StartServer(Ip As String, Port As Long) 啟動(dòng)服務(wù)方法
本方法用于啟動(dòng)GPRS服務(wù),在系統(tǒng)初始化時(shí)必須調(diào)用本方法來完成GPRS服務(wù)的初始化,否則GPRS模塊將無法正確登陸網(wǎng)絡(luò),進(jìn)行通訊。
IP參數(shù)為服務(wù)器Ip地址, 字符串型
Port參數(shù)為服務(wù)器通訊端口, 長(zhǎng)整型,通常為2020端口.
成功返回Ture,失敗則返回False。
示例: StartServer(“192.168.0.1”,2020)
B、StopServer() 停止服務(wù)方法
停止服務(wù)方法,用來停止GPRS服務(wù),在系統(tǒng)結(jié)束退出時(shí),調(diào)用本方法停止GPRS服務(wù)。
成功返回Ture,失敗則返回False.
示例: StopServer()
C、SendDataGPRS(DtuId As String, CmdData As Variant) 發(fā)送數(shù)據(jù)方法
本方法用來與GPRS模塊進(jìn)行通訊,核心方法,參數(shù)比較復(fù)雜.
DtuID,Gprs模塊標(biāo)識(shí)號(hào),用來表明與那塊模塊進(jìn)行通訊.
CmdData,要傳送的數(shù)據(jù),變體變量,可接受字符串或者數(shù)組類型.
示例: SendDataGPRS(“6900000196”,Cmd)
3、 事件:
A、 GetUserID(ByVal User_Id As String, ByVal UserDeal_Id As String)
’’收到GPRS模塊的ID號(hào)或者是上線的ID的時(shí)觸發(fā)的事件
User_Id 為所有在線GPRS模塊ID號(hào)所組成的字符串。
UserDeal_Id為所有離線GPRS模塊ID號(hào)所組成的字符串。
如果下面的GPRS模塊上傳ID號(hào)時(shí),系統(tǒng)會(huì)以事件的方式進(jìn)行接收,用戶可以在事件中對(duì)ID號(hào)做處理,想以什么格式顯示ID的信息有用戶自己做決定。
B、ReceiveData(ByVal User_Id As String, ByVal User_GetDataASC As Variant, ByVal User_GetDataHEX As Variant) ’’ 收到數(shù)據(jù)時(shí)觸發(fā)的事件
如果下面的設(shè)備有數(shù)據(jù)上傳時(shí),就會(huì)觸發(fā)該事件,該事件包括3個(gè)參數(shù):
User_Id 為 設(shè)備的ID號(hào);
User_GetDataASC 為 以ASCII方式顯示的數(shù)據(jù);
User_GetDataHEX 為 以HEX方式顯示的數(shù)據(jù)。
下面的設(shè)備在上傳數(shù)據(jù)的時(shí)候,會(huì)將ID號(hào)一塊傳上來,這樣用戶能夠分辨出是哪個(gè)設(shè)備傳上來的,而且上傳數(shù)據(jù)時(shí),會(huì)將ASCII方式的數(shù)據(jù)和HEX方式的數(shù)據(jù)一塊傳上來,用戶想用什么數(shù)據(jù)自己決定。

四、 具體的內(nèi)部編程思路:
GPRS控件的編寫,我們用到的是Winsock控件,所以首先要先了解一下Winsock控件的使用.
1、Winsock控件的使用:
Winsock控件對(duì)用戶來說是不可見的,我們?cè)诰帉懣蛻舳嘶蚍?wù)器程序時(shí),通過設(shè)置控件的屬性并調(diào)用其方法即可實(shí)現(xiàn)數(shù)據(jù)的雙向交換。
如果創(chuàng)建客戶應(yīng)用程序,就必須知道服務(wù)器計(jì)算機(jī)名或者 IP 地址(RemoteHost 屬性),還要知道進(jìn)行“偵聽”的端口(RemotePort 屬性),然后調(diào)用 Connect 方法。
如果創(chuàng)建服務(wù)器應(yīng)用程序,就應(yīng)設(shè)置一個(gè)收聽端口(LocalPort 屬性)并調(diào)用 Listen 方法。當(dāng)客戶計(jì)算機(jī)需要連接時(shí)就會(huì)發(fā)生 ConnectionRequest 事件。為了完成連接,可調(diào)用 ConnectionRequest 事件內(nèi)的 Accept 方法。
建立連接后,任何一方計(jì)算機(jī)都可以收發(fā)數(shù)據(jù)。為了發(fā)送數(shù)據(jù),可調(diào)用 SendData 方法。當(dāng)接收數(shù)據(jù)時(shí)會(huì)發(fā)生 DataArrival 事件。調(diào)用 DataArrival 事件內(nèi)的 GetData 方法就可獲取數(shù)據(jù)。
2、Winsock控件的常用屬性:
a、協(xié)議
在使用Winsock控件時(shí),首先需要考慮使用什么協(xié)議??梢允褂玫膮f(xié)議包括 TCP 和 UDP。兩種協(xié)議之間的重要區(qū)別在于它們的連接狀態(tài):
• TCP 協(xié)議控件是基于連接的協(xié)議,可以將它同電話系統(tǒng)相比。在開始數(shù)據(jù)傳輸之前,用戶必須先建立連接。
• UDP 協(xié)議是一種無連接協(xié)議,兩臺(tái)計(jì)算機(jī)之間的傳輸類似于傳遞郵件:消息從一臺(tái)計(jì)算機(jī)發(fā)送到另一臺(tái)計(jì)算機(jī),但是兩者之間沒有明確的連接。另外,單次傳輸?shù)?*****數(shù)據(jù)量取決于具體的網(wǎng)絡(luò)。
在設(shè)計(jì)時(shí),可以按如下方式設(shè)置應(yīng)用程序使用的協(xié)議:在“屬性”窗口中單擊“協(xié)議”,然后選擇 sckTCPProtocol 或者 sckUDPProtocol。也可以使用程序代碼來設(shè)置 Protocol 屬性,如下所示:
Winsock1.Protocol = sckTCPProtocol
b、IP地址(計(jì)算機(jī)名稱)
客戶應(yīng)用程序在與遠(yuǎn)程計(jì)算機(jī)相連接的時(shí)候,需要知道遠(yuǎn)程計(jì)算機(jī)的 IP 地址或者計(jì)算機(jī)名稱。
我們連接計(jì)算機(jī)時(shí)可以將其作為 RemoteHost 屬性的值。代碼如下:
Winsock1.RemoteHost = 計(jì)算機(jī)名稱 或者為 Winsock1.RemoteHost =IP地址
服務(wù)器程序用到LocalIP 屬性,它返回本地機(jī)器的 IP 地址,格式是 IP 地址加點(diǎn)字符串 (xxx.xxx.xxx.xxx)。
用RemoteHostIP屬性返回遠(yuǎn)程計(jì)算機(jī)的IP。
c、端口號(hào)
對(duì)于客戶應(yīng)用程序來說,RemotePort 屬性最重要,它設(shè)置要連接的遠(yuǎn)程端口號(hào)。
對(duì)于服務(wù)器程序來說,LocalPort 屬性最重要,它設(shè)置所用到的本地端口。這是用于偵聽的本地端口。如果指定的是端口 0,就使用一個(gè)隨機(jī)端口。在調(diào)用了 Listen 方法后,屬性就包含了已選定的實(shí)際端口。
3、Winsock控件的常用事件
a、Connect 事件
該事件是在到服務(wù)器的連接建立之后發(fā)生。
b、ConnectionRequest 事件
當(dāng)遠(yuǎn)程計(jì)算機(jī)請(qǐng)求連接時(shí)出現(xiàn)。
如果有連接請(qǐng)求時(shí),可以用 Accept 方法接受新連接。
c、DataArrival 事件
當(dāng)新數(shù)據(jù)到達(dá)時(shí)出現(xiàn)。
如果有新數(shù)據(jù)到達(dá)時(shí),可以用GetData方法接收數(shù)據(jù)。如果沒有獲取一個(gè) GetData 調(diào)用中的全部數(shù)據(jù),則事件不會(huì)出現(xiàn)。只有存在新數(shù)據(jù)時(shí)才激活事件??呻S時(shí)用 BytesReceived 屬性檢查可用的數(shù)據(jù)量。
4、Winsock控件的常用方法
a、Accept 方法
接受新連

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生