[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 メーリングリストの案内