0

我正在构建一个 .NET WinForms 应用程序以通过 TCP/UDP 向同一网络上的联网电视发送串行命令。NEC(制造商)创建了一个名为 PD Comms 的工具,它可以做到这一点并且效果很好,但是对于最终用户来说太复杂了。我的界面将有一个按钮,可将所有必要的电源/音量/输入选择命令发送到所有电视。

我遇到的问题是让电视接受我的数据流。我认为问题与我如何将数据发送到面板有关。作为一项试验,我一直在对四台电视中的一台进行简单的开机命令。我的应用程序在连接到网络时成功打开了网络流,因此我输入的 IP 地址/端口没有问题。我发送此命令的代码如下。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim client As New TcpClient("10.71.208.61", 7142)
Dim dataStream As NetworkStream = client.GetStream()
Dim commandData() As Byte = {1, 30, 41, 30, 41, 30, 43, 2, 43, 32, 30, 33, 44, 36, 30, 30, 30, 31, 3, 73, 0D}
dataStream.Write(commandData, 0, commandData.Length)
client.Close()
End Sub

我相信我将数据分配给 commandData 字节数组的行不正确。该命令通过没有任何错误并与面板建立连接。似乎它正在成功发送代码,但电视根本没有响应(打开),这表明我发送的数据格式不正确。我使用的字节数据是 NEC 的 PD Comms Tool 的直接输出。

4

2 回答 2

1

使用Wireshark之类的工具来检查和比较 NEC 工具发送的 TCP/UDP 数据包以及您的代码发送的数据包。

于 2013-04-02T05:56:55.270 回答
0

万一这个问题抓住了其他人......这只是我表示数据类型的方式。正确的格式是:

Dim commandData() As Byte = {&H30, &H30, "&H5F", &H64, &H31, "&H0D"}
于 2013-12-28T04:49:53.767 回答