問題タブ [socketcan]

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

c - 16 進値の最初の桁がそれ自体の +8 バージョンとして表示される理由が不明です。ソケットCAN

仕事

candumpの独自の小型バージョンを書きたかったのです。目的は本質的に似ていますが、唯一の機能は、1 つの CAN ID からの着信メッセージのみを表示したいということです。

コード

問題

コマンドでcansendを使用していcansend vcan0 18DA40F1#1234ます。私のコードを実行すると、返される応答は、CAN ID の最初の文字が 8+ 大きい値であることを除けば、ほぼそこにあります。応答98DA40F1 - [len] - 12 34 0 0 0 0 0 0コードの実行に戻りました。

前述の candump のソース コードを見ると、何か関係があると思いますがrfilter、100% 確信があるわけではなく、SocketCANのドキュメントを確認しても、それほど明確ではありません。マスキングと関係あるの?私の問題を解決する方法の例をいただければ幸いです。私が言及していないことがあれば、遠慮なく質問してください。

0 投票する
0 に答える
35 参照

c - Cを使用してバイナリデータをファイルに格納する構造体のメンバーを持つ構造体を書き込む方法

次のプログラムでは、次のような私の構造があります

関数内の構造体が他のデータに置き換えられた場合、すべて正常に動作しますが、モードでfwriteファイルに書き込み中に time_str (16 進形式) を持つ上記の構造体のwb場合、プログラムがクラッシュします。問題は time_stri と の近くにあると確信していfwriteます。私は他の方法で試したので、プログラムが次のようであれば、このプログラムは正しく動作します:

2 番目のプログラムは、クラッシュすることなく正常に動作し、データを 16 進形式でファイルに書き込みます。しかし、2番目のプログラムでは時間が16進形式で書き込まれておらず、16進形式で時間を書き込むために、最初のプログラムは正しくputs、時間の16進値を確認するために使用すると、16進形式で時間が表示されますが、プログラムがクラッシュしますデータをファイルに書き込んでいるときに実行したとき。これを解決するにはどうすればよいですか、構造 bin を使用してバイナリ ファイルに時間を 16 進形式で書き込むにはどうすればよいですか。

どちらのプログラムでも、open_file() と close_file() は、バイナリ モードでファイルを開き、ファイルを閉じるための 2 つの関数であり、ほとんどの人がファイルを開いてファイルを閉じることを知っているため、これらはこの投稿のプログラム内には含まれていません。誰かがこれを手伝ってくれたら最高です。前もって感謝します。

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

can-bus - socketCAN 仮想ネットワークから特定の ID をブロックする方法は?

仮想 socketCAN ネットワークがあります。特定の ID がネットワーク上で送信されないようにするにはどうすればよいですか?