NXT用のデータ出力マクロのメモ

ちょっとしたデバッグ用マクロ。ecrobot_debug1が不便なので作ってみた。

#define DATA_OUTPUT(str, a, b, c) \
    display_clear(0); \
    display_goto_xy(0, 0); \
    display_string(#str); \
    \
    display_goto_xy(0, 1);  \
    display_string("VAR1: "); \
    display_int((a), 0); \
    \
    display_goto_xy(0, 2);   \
    display_string("VAR2: "); \
    display_int((b), 0); \
    \
    display_goto_xy(0, 3);  \
    display_string("VAR3: "); \
    display_int((c), 0); \
    display_update()

コード例

light_offset = 600;
gray_offset = ecrobot_get_light_sensor(NXT_PORT_S3);
DATA_OUTPUT("gray_offset",
             ecrobot_get_light_sensor(NXT_PORT_S3),
             gray_offset,
             light_offset);

表示のイメージ

"gray_offset"
VAR1: 400
VAR2: 500
VAR3: 600

ecrobot_debug1は一体なんの変数とかを出力してるかがわかりにくい。どこがわかりにくいかというと一行目になんの文字も表示できないっぽいから使いづらい。

例:

   <- ここに何も表示されない
VAR1: 400
VAR2: 500
VAR3: 600

頑張って拡張したらもっと良さそうではある。