Module1.bas
上传用户:hbj111
上传日期:2022-07-30
资源大小:107k
文件大小:5k
源码类别:

串口编程

开发平台:

Visual Basic

  1. Attribute VB_Name = "Module1"
  2. Public Declare Function CloseAllConnect Lib "EdSockServer" () As Long
  3. Public Declare Function CloseConnect Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  4. Public Declare Function OpenConnect Lib "EdSockServer" (ByVal PeerIP As String, ByVal PeerPort As Long, ByVal LocalIP As String, ByVal LocalPort As Long) As Long
  5. Public Declare Function GetLocalIP Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  6. Public Declare Function GetLocalPort Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  7. Public Declare Function GetMAC Lib "EdSockServer" (ByVal ConnectID As Long, ByVal lpMac As String, ByVal maclen As Long) As Long
  8. Public Declare Function GetModel Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  9. Public Declare Function GetPeerIP Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  10. Public Declare Function GetPeerPort Lib "EdSockServer" (ByVal ConnectID As Long) As Long
  11. Public Declare Function StartListen Lib "EdSockServer" (ByVal LocalIP As String, ByVal LocalPort As Long) As Long
  12. Public Declare Function IsSocket Lib "EdSockServer" () As Long
  13. Public Declare Function SendToCOM Lib "EdSockServer" (ByVal ConnectID As Long, ByVal COMNum As Long, ByVal pDataBuf As String, ByVal DataLength As Long) As Long
  14. Public Declare Function SetCallback Lib "EdSockServer" (ByVal lpOnAccept As Long, ByVal lpOnConnectClose As Long, ByVal lpOnError As Long, ByVal lpOnReceConfigData As Long, ByVal lpOnReceFromCOM As Long, ByVal lpOnSwitchChange As Long) As Long
  15. Public Declare Function SetSocket Lib "EdSockServer" (ByVal IsSocketValue As Long) As Long
  16. Public Declare Function StopListen Lib "EdSockServer" () As Long
  17. Public Declare Function mac_ntoa Lib "EdSockServer" (ByVal mac As String, ByVal maclen As Long, ByVal strmac As String, ByVal strlen As Long) As Long
  18. Public Declare Function LoadLibrary Lib "KERNEL32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  19. Public Declare Function FreeLibrary Lib "KERNEL32" (ByVal hLibModule As Long) As Long
  20. Public Declare Function net_ntoa Lib "EdSockServer" (ByVal addr As Long, ByVal strBuf As String, ByVal strlen As Long) As Long
  21. Declare Sub RtlMoveMemory Lib "KERNEL32" (ByVal lpvDest As Long, ByVal lpvSource As Long, ByVal cbCopy As Long)
  22. Public g_AutoSendConnectID As Long
  23. Public g_bAutoSend As Boolean
  24. Public g_SendConnectID As Long
  25. Public g_IsSocket As Long
  26. Public g_hIns As Long
  27. Public g_lngTxCount As Long
  28. Public g_lngRxCount As Long
  29. Public Sub Send(ByVal ConnectID As Long)
  30.     Dim strlen As Long
  31.     strlen = Len(frmMain.txtTxData.Text)
  32.     If (strlen = 0) Then Exit Sub
  33.     If SendToCOM(ConnectID, 1, frmMain.txtTxData.Text, strlen) Then
  34.         g_lngTxCount = g_lngTxCount + strlen
  35.         frmMain.lblTxCount.Caption = CStr(g_lngTxCount)
  36.     End If
  37. End Sub
  38. Public Sub OnAccept(ByVal ConnectID As Long)
  39.     Dim model As Long
  40.     Dim mac As String
  41.     Dim ip As Long
  42.     Dim port As Long
  43.     mac = String(6, " ")
  44.     model = GetModel(ConnectID)
  45.     ip = GetPeerIP(ConnectID)
  46.     port = GetPeerPort(ConnectID)
  47.     GetMAC ConnectID, mac, 6
  48.     AddItem ConnectID, mac, ip, port, model
  49.     If (g_SendConnectID = 0) Then g_SendConnectID = ConnectID
  50. End Sub
  51. Public Function AddItem(ByVal ConnectID As Long, ByVal mac As String, ByVal ipAddr As Long, ByVal port As Long, ByVal model As Long) As Long
  52.     Dim str As String
  53.     Dim Item As ListItem
  54.     With frmMain.ListView1
  55.         str = CStr(ConnectID)
  56.         Set Item = .ListItems.Add(, , str)
  57.         str = String(20, " ")
  58.         mac_ntoa mac, 6, str, 17
  59.         Item.ListSubItems.Add 1, , str
  60.         str = String(20, " ")
  61.         net_ntoa ipAddr, str, 20
  62.         Item.ListSubItems.Add 2, , str
  63.         str = CStr(port)
  64.         Item.ListSubItems.Add 3, , str
  65.         str = CStr(model)
  66.         Item.ListSubItems.Add 4, , str
  67.         Item.Tag = CStr(ConnectID)
  68.     End With
  69. End Function
  70. Public Sub OnConnectClose(ByVal ConnectID As Long)
  71.     Dim str As String
  72.     Dim i As Long
  73.     str = CStr(ConnectID)
  74.     With frmMain.ListView1
  75.         For i = 1 To .ListItems.Count
  76.             If .ListItems(i).Tag = str Then
  77.                 .ListItems.Remove i
  78.                 Exit For
  79.             End If
  80.         Next
  81.         If ConnectID = g_SendConnectID Then
  82.             If .ListItems.Count = 0 Then
  83.                 g_SendConnectID = 0
  84.             End If
  85.         End If
  86.     End With
  87. End Sub
  88. Public Sub OnReceFromCOM(ByVal ConnectID As Long, ByVal COMNum As Long, ByVal pDataBuf As Long, ByVal DataLength As Long)
  89.     Dim str As String
  90.     Dim txtLen As Long
  91.     If (g_AutoSendConnectID = 0 And g_SendConnectID = ConnectID) Or g_AutoSendConnectID = ConnectID Then
  92.         If frmMain.chkStopShow.Value = 0 Then
  93.             str = String(DataLength, " ")
  94.             RtlMoveMemory StrPtr(str), pDataBuf, DataLength
  95.             str = StrConv(str, vbUnicode)
  96.             str = Left(str, DataLength)
  97.             frmMain.txtRxData.Text = frmMain.txtRxData.Text + str
  98.             txtLen = Len(frmMain.txtRxData.Text)
  99.             If (txtLen > 3000) Then txtLen = txtLen - 3000
  100.             frmMain.txtRxData.Text = Right$(frmMain.txtRxData.Text, txtLen)
  101.         End If
  102.         g_lngRxCount = g_lngRxCount + DataLength
  103.         frmMain.lblRxCount.Caption = CStr(g_lngRxCount)
  104.     End If
  105. End Sub