差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
sier:api:intruder [2024/02/05 11:44] adminsier:api:intruder [2024/02/05 12:22] (現在) admin
行 2: 行 2:
 このページではロボットをカスタマイズする際に利用できるAPIについて記述する。SysUI経由で内部APPからのみ送受信可能なものは、連携が×となっておりそれ以外は、HTTP通信によって外部機器から送受信可能となっている。 このページではロボットをカスタマイズする際に利用できるAPIについて記述する。SysUI経由で内部APPからのみ送受信可能なものは、連携が×となっておりそれ以外は、HTTP通信によって外部機器から送受信可能となっている。
 なお、指示や取得への応答は、ほとんどのAPIで非同期となっており、info型で返却される。これは、複数の外部連携機器や画面同期を実現するための仕組みであり、どこで操作が行われても全連携システムに、結果が同報的に送信されることを担保する仕組みである。 なお、指示や取得への応答は、ほとんどのAPIで非同期となっており、info型で返却される。これは、複数の外部連携機器や画面同期を実現するための仕組みであり、どこで操作が行われても全連携システムに、結果が同報的に送信されることを担保する仕組みである。
 +
 +====== 内部APIと外部APIの使用方法 ======
 +==== 内部API ====
 + BUDDYの顔画面(ブラウザ)上で動くアプリは全てSysUIのiframeの内部で動作する。APIは全てjavascriptのsysuiクラスで実装済みであり、アプリでは親クラスを継承して関数を呼び出すだけとなる。詳細は標準アプリを参照すること。
 +
 + 受信側は特殊なつくりとなっており、アプリのルートディレクトリ内に配置されるservice_event_dispatch_setting.jsonというファイルの設定に従って、iframeの内部で動くアプリのURLを強制的に切り替える動作をする。これは画面の非同期的処理を実現するための簡便な仕掛けである。
 +
 + 従って、service_event_dispatch_setting.jsonに以下のような登録があると、
 +<code>
 +    {
 +      "title": "*****",
 +      "id": "info_move_start",
 +      "dispatch_type": "1",
 +      "url": "http://localhost/intruder/onmove.php"
 +    },
 +</code>
 +ロボットがinfo_move_start(移動開始通知)を送信すると、SysUIがアプリの画面を強制的にonmove.phpに切り替えるという設定となる。これによって、常時通信を監視しなくても、イベント駆動型の画面切り替えが簡便に製造可能となる。
 +
 +==== 外部API ====
 + 外部APIは上記とはまったくことなる仕組みであり、SysUIの継承や制約なく、独自の外部システムと連携するためのAPIである。送信はBUDDYのIPアドレス:8088/api/requestに向けてPOSTをする形で実行し、応答は非同期的に設定されたすべての宛先(内部APIを含めて
 +)に対してロボット側からPOSTの形で実行される。
 +
  
 ==== 種類 ==== ==== 種類 ====
行 46: 行 68:
 |:::|[[sier:api:info_halt|障害物検知通知]]|目的地移動時に障害物を検知し停止た場合に通知する|[[sier:api:info_halt|○]]| |:::|[[sier:api:info_halt|障害物検知通知]]|目的地移動時に障害物を検知し停止た場合に通知する|[[sier:api:info_halt|○]]|
 |:::|[[sier:api:info_restart_move|移動再開通知]]|障害物が排除され、目的地移動を再開する場合に通知する|[[sier:api:info_restart_move|○]]| |:::|[[sier:api:info_restart_move|移動再開通知]]|障害物が排除され、目的地移動を再開する場合に通知する|[[sier:api:info_restart_move|○]]|
 +|:::|[[sier:api:info_arrival|移動完了通知]]|目的地移動が完了して停止た場合に通知する|[[sier:api:info_arrival|○]]|
 |:::|[[sier:api:info_motor_collision_detection|衝突検知通知]]|ロボット走行時、バンパセンサ検知等が発生し、移動が中断された場合に通知する|[[sier:api:info_motor_collision_detection|○]]| |:::|[[sier:api:info_motor_collision_detection|衝突検知通知]]|ロボット走行時、バンパセンサ検知等が発生し、移動が中断された場合に通知する|[[sier:api:info_motor_collision_detection|○]]|
 |外部機器|[[sier:api:info_read_usb_cache|USB機器データ取得通知]]|汎用USB連携のキャッシュに保持されたデータの返却を行う|×| |外部機器|[[sier:api:info_read_usb_cache|USB機器データ取得通知]]|汎用USB連携のキャッシュに保持されたデータの返却を行う|×|