Intentaré resumir el tema lo mejor que pueda. Recientemente compré una placa de interfaz dual que tiene capacidades de comunicación TCP. Para obtener información de la placa, es necesario enviar una matriz de bytes a la placa en la que responderá con la información deseada. En el nodo rojo he podido enviar la matriz de bytes usando una función y recibir una respuesta del módulo TCP.
Sin embargo, me gustaría usar esto en una aplicación que estoy desarrollando y que es más fácil de usar que el nodo rojo. Desafortunadamente, no importa lo que haya intentado, no he podido recibir una respuesta del dispositivo usando Visual Basic.
En el nodo rojo, la matriz se parece a esto:
Msg.payload = Buffer.from([8,121,50,3,100)];Sin buffer.from el dispositivo no respondería. Intenté codificar la cadena en VB en una variable de byte y enviarla a través de un socket, pero no tuve suerte. ¿Alguna sugerencia? Aquí está el código VB.
Imports System.Net Public Class Form1 Dim TCPClientz As Sockets.TcpClient Dim TCPClientStream As Sockets.NetworkStream Private Sub SendBytesButton_Click(sender As Object, e As EventArgs) Handles SendBytesButton.Click 'Dim intcount As Integer Dim sendbytes() As Byte = System.Text.Encoding.UTF8.GetBytes(bytestextbox.Text) TCPClientz = New Sockets.TcpClient(ServerTextBox.Text, PortTextBox.Text) 'Device IP and Port are working. Changing port throws error. TCPClientStream = TCPClientz.GetStream() 'intcount = TCPClientz.Client.Send(sendbytes) TCPClientStream.Write(sendbytes, 0, sendbytes.Length) If TCPClientStream.DataAvailable = True Then 'At this point, I NEVER have gotten the stream to indicate there is available data. Dim rcvbytes(TCPClientz.ReceiveBufferSize) As Byte TCPClientStream.Read(rcvbytes, 0, CInt(TCPClientz.ReceiveBufferSize)) replytextbox.Text = System.Text.Encoding.UTF8.GetString(rcvbytes) End If End Sub¿Alguien sabe de alguna forma de capturar los bytes que envía NODE-RED? Puedo ver la carga útil, pero no creo que sea una representación de los bytes reales que se envían. Podría intentar emparejar esto con la matriz BYTE en VB para ver si coinciden.