0

TCP/UDP 経由でシリアル コマンドを同じネットワーク上のネットワーク テレビに送信する .NET WinForms アプリケーションを構築しています。NEC (メーカー) は、まさにこれを行い、非常にうまく機能する PD Comms というツールを作成しましたが、エンド ユーザーにとっては複雑すぎます。私のインターフェイスには、必要なすべての電源/音量/入力選択コマンドをすべてのテレビに送信する単一のボタンがあります。

私が抱えている問題は、テレビがデータ ストリームを受け入れるようにすることです。問題は、データをパネルに送信する方法に関係していると思います。試しに、私は 4 台のテレビのうちの 1 台に簡単な電源オン コマンドを使用して作業を行ってきました。ネットワークに接続すると、アプリケーションがネットワーク ストリームを正常に開くので、入力した 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 通信ツールからの直接出力です。

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 に答える