arms_event_loop()

関数

int arms_event_loop(arms_context_t *ctx, int port, size_t fragment, arms_callback_tbl_t *cb_tbl, void *udata)

呼び出し方向

アプリケーション->libarms

目的

RS からのARMS プロトコルによる制御指示を待ち受け、適切に処理する。

説明

本関数を呼び出すと、ライブラリ内でARMS プロトコルによる制御指示を待ち受けるループを開始し、以後SA は常時RS からの遠隔制御の管理下となる。 遠隔制御に伴い必要に応じてコールバック関数が呼ばれる。

引数

arms_context_t *ctx
内部ステートを保持するコンテキスト構造体ポインタ。 arms_init() により取得したポインタをそのまま指定する。
int port
待ち受けに利用するポート番号。
  • 0 を指定すると、デフォルトのポート番号として10443 を使う。
  • 0 以外を指定すると、そのポート番号を待ち受けポートとして使う。
size_t fragment
コンフィグの分割送信のブロック長[bytes]
  • 0

    libarms 内に全てバッファリングしてからまとめて渡す。

  • 1以上

    コンフィグを指定された大きさ以下のブロックに分割して渡す。

arms_callback_tbl_t *cb_tbl
各種コールバック関数へのポインタが納められた構造体。デバイスドライバの関数テーブルと同じようなイメージ。詳細は arms_callback_tbl_t を参照。
void *udata
コールバック関数へそのまま渡されるポインタ

返り値

0
正常終了
非0
正常に終了(SMFv2による制御の終了、事後処理の指示あり)
ARMS_EREBOOT
RSよりリブート要求を受信し制御を終了
ARMS_EPULL
Pull 処理より再実行を行う必要がある。 RS からPull 先としてLS もしくはRS が指定されるがこれは arms_pull() 関数内部で適切に処理される
非0
異常終了( エラーコード体系 参照)
ARMS_ECALLBACK
コールバック関数呼び出しでエラーを検出
ARMS_ESYSTEM
システムエラーを検出(メモリ不足など)
ARMS_EINVAL
引数の異常

コールバック関数からの呼び出し

不可

ヒストリ

このAPIはVer2.10で追加された。

目次

前のトピックへ

arms_push_method_query()

次のトピックへ

arms_size_of_state()

リンク