Ir ao conteúdo
  • Cadastre-se
Leandro Rodrigo Oliveira

Outro Socket TCP-IP em VBA - Como "quebrar" o frame recebido

Recommended Posts

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

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×