武汉波仕电子公司 2011年3月
波仕电子的WF232L是一种WIFI与串口(RS-232、RS-485/422)的转换器,能够把IEEE802.11b/g的无线信号转换出串口。TCP&DUP.exe测试工具可以显示WIFI与串口之间的通信数据,本文介绍的用WINSOCK编程实现WIFI与串口通信可以将源代码嵌入到用户自己的应用程序中。也可以用于VB的WINSOCK编程的参考。
WF232L的使用必须与无线AP(无线路由器)配合。WF232L的DB-9针串口有2个用处:1、在设置模式下用于对WF232L产品进行设置,2、在透明传输模式下作为WiFi转换出来的串口。用WINSOCK编程实现WIFI与串口通信显然必须在透明传输模式下,但是在进入透明模式之间必须在设置模式下进行设置。对WF232L进行设置有2种方法:1、用专用配置软件UART-WIFI.exe, 2、是用IE浏览器的网页进行设置。用专用配置软件功能比较全面,下面为配置软件的部分界面:
设置成功后可以先用TCP&UDP.exe测试工具和scommassistant21.exe串口调试助手对WF232L进行WIFI与串口之间的成功通信,确保硬件连接和软件设置的正确。
记住以后编程要用到的参数设置:IP地址(192.168.0.123)和端口号(9999)。
VB中提供了一个网络控件WINSOCK,主要用于可以与远程计算机建立连接,并通过TCP或UDP协议进行数据交换。这两种协议都可以用来创建服务器(Server)与客户端(Client)类型的应用程序。
程序的VB界面很简单。在窗体上包括一个Winsock控件、2个Text控件、3个Command控件。代码为:
'Option Explicit
Private Sub commadn1_Click()
SendMsg = Text2.Text
SockCL.SendData SendMsg
End Sub
Private Sub Command2_Click() '发送\
Dim SendMsg As String
SendMsg = Text2.Text
SockCL.SendData SendMsg
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text1.Locked = True
End Sub
Private Sub SockCL_ConnectionRequest(ByVal requestID As Long)
If SockCL.State <> sckClosed Then SockCL.State = sckClosed
SockCL.Accept requestID
Text1.Text = "服务器请求连接!"
SockCL.SendData "连接成功"
End Sub
Private Sub SockCl_DataArrival(ByVal bytesTotal As Long)
Dim DataStr As String
SockCL.GetData DataStr ' 接收数据到文本框中
If Text1.Text = "" Then
Text1.Text = DataStr
Else
Text1.Text = Text1.Text & vbCrLf & DataStr
End If
End Sub
Private Sub Command3_Click() ' 退出数据
SockCL.Close
End
End Sub
' 发送完毕后回显
Private Sub SockCL_SendComplete()
If Text1.Text = "" Then
Text1.Text = "客户端: " & SendMsg
Else
Text1.Text = Text1.Text & vbCrLf & "客户端: " & SendMsg
End If
End Sub
Private Sub Command1_Click() ' 连接
SockCL.RemoteHost = "192.168.0.123"
' 指定服务器端口名
SockCL.RemotePort = 9999
' 连接到服务器
SockCL.Connect
End Sub
通信成功后的界面截图如上。本软件还有另外一段为用WINSOCK写的TCP服务器的部分。整个源代码及程序见波仕WF232L产品的光盘。