[Armadillo:09196] Re: CAN通信(Armadillo440)の設定について
Takashi Sasayama
email@hidden
2013年 9月 13日 (金) 13:59:31 JST
笹山です。
(2013/09/11 17:27), 星野 博 wrote:
>
> エラーフレームを受信しようとした場合、
> recvmsgを実施する前に以下の処理を追加すればよい、
> という認識でよろしいでしょうか。
> ("candump.c"を例とすると、"select"の直前に実施すればよい?)
>
> err_mask = 0x000001FFU; /* ※1 */
> setsockopt(s[0], SOL_CAN_RAW, CAN_RAW_ERR_FILTER,&err_mask,
sizeof(err_mask));
>
> ※1:"linux/can/error.h"に定義されている
> "error class (mask) in can_id"が"0x00000001U〜0x00000100U"である為、
> 全てを選択する意味で、該当ビットを全て"1"としています。
上記、認識で問題ありません。
setsockoptにてCAN_RAW_ERR_FILTERを設定すると、
該当のエラーフレームを受信時にselectを抜けるようになります。
また、ご存知かもしれませんが、
下記コマンドでエラーフレームのみを受信できます。
------------------------------
# candump can0,0~0,#FFFFFFFF
------------------------------
candumpの詳細な使用方法に関しては、
下記コマンドで確認できますので、
合わせてご参照いただければと思います。
------------------------------
# candump
------------------------------
どうぞよろしくお願いいたします。
Takashi Sasayama
armadillo メーリングリストの案内