Bom dia!
Estou programando um sock TCP-IP para receber dados de um scanner 2D. Porém, não consigo receber dados como pacotes. Quando recebo é como se eu estivesse pegando um Byte por vez e gostaria de saber como faço pra receber somente o Byte que eu quero. Criei um UDT da mesma forma que o manual do transmissor indica que ele transmite mas não consigo fazer com que os dados de cada pacote se "encaixem" conforme cada Byte. Segue abaixo um exemplo do código que fiz e que não recebe os dados daquele determinado pacote, mas sim aleatório.
Private Type packet_Header 'CRIEI O UDT CONFORME O MANUAL DO EQUIPAMENTO
magic As Integer
packet_type As Integer
packet_size As Integer
header_size As Integer
scan_number As Integer
packet_number As Integer
timestamp_raw As Date
timestamp_sync As Date
status_flags As Integer
scan_frequency As Integer
num_points_scan As Integer
num_points_packet As Integer
first_index As Integer
first_angle As Integer
iq_input As Integer
angular_increment As Integer
iq_overload As Integer
header_padding As Integer
End Type
Private Type scan_point_data
distance As Integer
End Type
Public Sub CommandButton1_Click()
Set tcpClient = New MSWinsockLib.Winsock
tcpClient.Protocol = sckTCPProtocol
tcpClient.Connect "169.254.218.229", "59164"
MsgBox tcpClient.State
'MsgBox tcpClient.SocketHandle
MsgBox tcpClient.BytesReceived
End Sub
Public Sub tcpClient_DataArrival(ByVal bytesTotal As Long)
Dim teste As packet_Header
tcpClient.GetData teste.magic ' NESSA LINHA EU GOSTARIA DE RECEBER O DADO DESSE BYTE DO FRAME, MAS ELE VEM ALEATÓRIO.
MsgBox teste.magic
End Sub