問題タブ [xxd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
299 参照

ubuntu-14.04 - Imatic ボードから Hex 応答を受信できない

良い一日、

これは長くなります。「SainSmart 16 チャンネル 12V リレー モジュール」と一緒に使用される「SainSmart iMatic with RJ45」ボードと通信しようとしています。

基本的に、16 進コマンドをボードに正常に送信できますが、必要なときにボードから応答を受け取ることができません。これはどういう意味ですか?

Ubuntu 14.04.4 LTS を搭載したラップトップを、イーサネット ストレート スルー ケーブルを介してボードに直接接続しています (クロスオーバー タイプは不要になりました)。このタイプのネットワーク (2 つのデバイスのみ) の構成があります。imatic ボードの IP は 192.168.1.4 でポート 3000 に固定されています。

ラップトップで netcat (TCP プロトコル モード) を使用して、ターミナルで次 の形式でコマンドをボードに送信しています。xxd -r -p | nc 192.168.1.4 3000 動作を確認するにはどうすればよいですか? まあ、基本的に二次ボードからのリレーは正常にオンになっています (「SainSmart 16 チャンネル 12V リレー モジュール」)。

各リレーのオンとオフを切り替える 16 進コマンドのリストがあります。前の命令では、リレー番号 1 をオンにし、残りの 15 をオフにするようにボードに指示しています。文字列「580112000000016C」は、xxd を使用して 16 進数から 2 進数に変換され、netcat に送信されます。この部分は機能します。

機能しない唯一の命令は次 のとおりです。xxd -r -p | nc 192.168.1.4 3000 この命令は、28 01 00 00 00 XX XX HH (XX XX 16 ビット、各ビットは 1 つのリレー状態を表します。 1" はオンを示し、"0" はオフを示します。HH は以前のすべてのデータの合計であり、チェックサムとして機能することを意味します)

私はすでにテストして証明しましたが、これは取締役会の問題ではありません。Visual Basic でコードを書いたところ、windows はボードからの応答を受信できましたが、ubuntu の構成に問題があるはずです。ファイアウォール、ufw は既に無効にしています。これはイーサネット ケーブルの問題ではありません。次のような他のコマンド表現をすでに試しました 。xxd -r -p | nc -v -n -w3 192.168.1.4 3000 | xxd 既に netcat を使用して、ボード内の使用可能なすべてのポートをスキャンしましたが、製造元の説明によると、3000 ポートのみが使用可能として表示されます。これはネットワーク構成の問題のようですが、Windowsではubuntuと同じIPとネットマスクを指定しました。

ここで何が足りないのですか?