Excel 的收發 ESP8266 TCP 資料程式(ESP8266 AP_v1.01)是不能作用作 UDP(User Data Protocol,用戶資料報協定) 上,需要修改才可以用在 UDP 收發。
Excel 收發 ESP8266 UDP 資料程式 |
Excel 版本:Excel 2003
Excel UDP 資料程式:Excel VBA - UDP Client Data Logger v1.0
Excel 收發 ESP8266 UDP 資料程式的 UI 設計 |
Microsoft Visual Basic 編程:
- 檔案 → 開新檔案,打開新檔案 (或按 Ctrl + N) 。
- 工具 → 巨集 → Visual Basic 編輯器,進入 VBA 編輯器 (或按 Alt + F11) 。
- 選擇功能表命令 插入 → 點擊模組 (Insert → Module) 。
- 編寫 VBA 程式。 執行 VBA 模組 (或按 F5) 。
- 檔案 → 關閉並回到 Microsoft Excel (或按 Alt + Q) 。 儲存檔案。
Open UDP |
Start Logging |
Data Logging |
連接 ESP8266 UDP網路 |
' UDP Declare
Public Declare Function bind
Lib "wsock32.dll" (ByVal s As Long, addr As sockaddr_in, ByVal
namelen As Long) As Long
Public Declare Function
recvFrom Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal
buflen As Long, ByVal Flags, fromAddr As sockaddr_in, fromAddrSize As Long)
As Long
|
Microsoft Visual Basic – OpenSocket UDP:
Function OpenSocket(ByVal
Hostname As String, ByVal PortNumber As Integer) As Integer
Dim I_SocketAddress As sockaddr_in
Dim IPAddress As Long
Dim iProtocol As Integer
IPAddress = inet_addr(Hostname)
iProtocol = IPPROTO_DUP
'Create a new socket TCP
'socketId = socket(AF_INET, SOCK_STREAM,
0)
'Create a new socket UDP
socketId = SOCKET(AF_INET, SOCK_DGRAM,
iProtocol)
If socketId = SOCKET_ERROR Then
MsgBox ("ERROR: socket = "
+ Str$(socketId))
OpenSocket = COMMAND_ERROR
Exit Function
End If
'Open a connection to a server
I_SocketAddress.sin_family = AF_INET
I_SocketAddress.sin_port =
htons(PortNumber)
I_SocketAddress.sin_addr = IPAddress
I_SocketAddress.sin_zero = String$(8, 0)
x = connect(socketId, I_SocketAddress,
Len(I_SocketAddress))
If socketId = SOCKET_ERROR Then
MsgBox ("ERROR: connect = "
+ Str$(x))
OpenSocket = COMMAND_ERROR
Exit Function
End If
OpenSocket = socketId
End Function
|
Microsoft Visual Basic – CloseConnection UDP:
Sub CloseConnection()
x = closesocket(socketId)
If x = SOCKET_ERROR Then
MsgBox ("ERROR: closesocket =
" + Str$(x))
Exit Sub
End If
End Sub
|
2017年 10月 17日 天氣報告
氣溫:25.7度 @ 20:00
相對濕度:百分之 88%
天氣:微雨
沒有留言:
張貼留言