問題タブ [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 に答える
466 参照

socketcan - SocketCAN: read() 関数が返らない

CAN バスでメッセージを読み書きする必要があるカスタム組み込み Linux システムに取り組んでいます。これを実現するためにSocketCANが使用されています。

CAN インターフェイス can0 は、ボーレートが 500 kbps に設定されたブート時に起動されます。CANoe、cangen、および candump を使用して、メッセージの送受信をテストしています。CANoe が組み込みシステムにメッセージを送信するように設定されている場合、candump は組み込みシステムでこれらのメッセージを問題なく読み取ることができます。cangen がメッセージを送信するように設定されている場合、CANoe は組み込みシステムからメッセージを問題なく読み取ることができます。

read() 関数を使用して can0 インターフェイスからメッセージを読み取る小さなプログラムを作成しました。単一の CAN メッセージを読み取るために read() 関数が呼び出されると、関数はブロックされ、決して戻りません。ifconfig によって報告された受信バイト数が期待どおりに増加しているため、CAN インターフェースがデータを受信して​​いることは確かです。プログラムと同時に candump を実行すると、インターフェイスがバスから CAN メッセージを受信して​​いることも示されます。以下は、CAN インターフェイスを開いて読み取るための関連コードです。エラーチェックは省略されています。

ソケットを開く:

ソケットの読み取り:

コードに何かが欠けているか、何か間違っていますか? 他の誰かがこの問題に遭遇し、解決策を見つけましたか?

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

socketcan - canとvcanの切り替え

ドキュメントを読みましたが、次のことを知っています。

実際にできることを有効にするには

そして、あなたが行うvcanを有効にするには

私の場合、次のように can を有効にする前に vcan を無効にします

私の質問は、反対はどうですか?(can から vcan へ)? can が up の場合、vcan を有効にする前に無効にする必要がありますか? そしてどうやって?また、vcanの使用を有効にしaddないset...なぜですか?