Option Explicit
Private sOutbound As String, sInbound As String, sPosition As Long
Public Sub ClearOut()
sOutbound = vbNullString
End Sub
Public Sub ClearIn(index As String)
sInbound = vbNullString
sPosition = 1
End Sub
Public Sub InsertBYTE(ByVal value As Byte)
sOutbound = sOutbound & Chr$(value)
End Sub
Public Sub InsertWORD(ByVal value As Integer)
Dim NewValue As String * 2
CopyMemory ByVal NewValue, value, 2
sOutbound = sOutbound & NewValue
End Sub
Public Sub InsertDWORD(ByVal value As Long)
Dim NewValue As String * 4
CopyMemory ByVal NewValue, value, 4
sOutbound = sOutbound & NewValue
End Sub
Public Sub InsertBSTR(ByVal value As String)
sOutbound = sOutbound & value
End Sub
Public Sub InsertCSTR(index As Integer, ByVal value As String)
sOutbound = sOutbound & value & vbNullChar
End Sub
Public Sub SendData(index As Integer)
If frmMain.wsBNCS(index).State = sckConnected Then
frmMain.wsBNCS(index).SendData sOutbound
sOutbound(index) = vbNullString
End If
End Sub
Public Sub SendPacket(index As String, ByVal ID As Byte, Optional UseBNLS As Boolean = False)
Dim NewValue As String * 2
If UseBNLS = False Then
If frmMain.wsBNCS(index).State = sckConnected Then
CopyMemory ByVal NewValue, (Len(sOutbound) + 4), 2
frmMain.wsBNCS(index).SendData Chr(&HFF) & Chr(ID) & NewValue & sOutbound
'AddChat vbWhite, ">> BNCS: " & Hex(ID)
'Debug.Print ">> BNCS: " & Hex(ID)
End If
Else
If frmMain.wsBNLS.State = sckConnected Then
CopyMemory ByVal NewValue, (Len(sOutbound) + 3), 2
frmMain.wsBNLS.SendData NewValue & Chr(ID) & sOutbound
'AddChat vbWhite, ">> BNLS: " & Hex(ID)
'Debug.Print ">> BNLS: " & Hex(ID)
End If
End If
sOutbound = vbNullString
End Sub
Public Sub SetData(ByVal value As String)
sInbound = value
sPosition = 1
End Sub
Public Function GetDATA(index As Integer) As String
GetDATA(index) = sInbound
End Function
Public Function Skip(index As Integer, ByVal Bytes As Long)
sPosition = sPosition + Bytes
End Function
Public Function GetBYTE(index As Integer) As Byte
GetBYTE = Asc(Mid$(sInbound, sPosition, 1))
sPosition = sPosition + 1
End Function
Public Function GetWORD(index As Integer) As Integer
Dim NewValue As Integer
CopyMemory NewValue, ByVal Mid$(sInbound, sPosition, 2), 2
GetWORD(index) = NewValue
sPosition = sPosition + 2
End Function
Public Function GetDWORD(index As Integer) As Long
Dim NewValue As Long
CopyMemory NewValue, ByVal Mid$(sInbound, sPosition, 4), 4
GetDWORD(index) = NewValue
sPosition = sPosition + 4
End Function
Public Function GetBSTR(index As Integer, ByVal value As Integer) As String
GetBSTR(index) = Mid$(sInbound, sPosition, value)
sPosition = sPosition + Len(GetBSTR(index))
End Function
Public Function GetCSTR(index As Integer) As String
GetCSTR(index) = Split(Mid$(sInbound, sPosition), vbNullChar)(0)
sPosition = sPosition + Len(GetCSTR(index)) + 1
End Function