2016-09-05 3 views
1

C++でsocketcanソケットの現在設定されているCANビットレートを読みたい。私はip -det link show can0でビットレートを見ることができますCANビットレートを取得する

9: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10 
    link/can promiscuity 0 
    can state ERROR-ACTIVE restart-ms 100 
    bitrate 1000000 sample-point 0.750 
    tq 125 prop-seg 2 phase-seg1 3 phase-seg2 2 sjw 1 
    pcan_usb: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1 
    clock 8000000 

ビットレートが/etc/network/interfaces介して設定されましたが、ユーザーが手動で変更することができます。

libsocketcanはビットレートの設定のみをサポートしているように見えますが、読み込みはできません。

code of iproute2 that produces the output aboveはrtnetlinkを使用します。

libnetlinkを使用して対応する属性を読み取るにはどうすればよいですか?または、現在のビットレートを読み取る別の方法がありますか?

答えて

1

今のところ私はip -det link show can0 | grep bitrate | awk '{print $2}'へのシステムコールの出力をintepretingしていましたが、これは醜いですが動作します。

もっと洗練されたソリューションがありますか?

関連する問題