web-dev-qa-db-ja.com

Linuxで仮想CANポートを作成するにはどうすればよいですか? (C ++)

別の大きなアプリケーションのテスト目的でCANポートをエミュレートするプログラムを作成したいと思います。プログラムは、この仮想CANを介して以前に記録されたデータを送信する必要があります。誰かがそのようなことについて何か経験がありますか?

仮想COMを確立し、CANフレームにパックされたデータを送信することを考えています。うまくいきますか?そして、どうすればLinuxで仮想COMを確立できますか?このスレッドが見つかりました Linuxの仮想シリアルポート ですが、残念ながら、それをプログラムのソースコード(初心者のlinuxユーザーおよびlinuxの下のプログラマー)に実装する方法がわかりません。

あなたの経験と提案を読みたいです。

14

SocketCAN ドライバーが必要です。これはUbuntuなどの最新のLinuxディストリビューションで利用できます。SocketCANは仮想CANポートドライバーを提供します。

Sudo modprobe vcan
Sudo ip link add dev vcan0 type vcan
Sudo ip link set up vcan0

これで、CANフレームをvcan0 端末。ウィキペディアの記事では、SocketCANの使用方法に関する簡単なコード例を提供しています。

テストの目的で can-utils も必要です。

SocketCANとその使用法の詳細については、 eLinux.org を参照してください。

38
yegorich