探す:TrainScanner
TrainScannerは周囲のスマートトレインを探し、接続済みのTrainオブジェクトを返します。get_trainは一台、get_trainsは複数台に使います。timeoutの初期値は5秒です。指定台数が見つからない場合はTrainNotFoundErrorになります。
from intelino.trainlib import TrainScanner
train = TrainScanner(timeout=10.0).get_train()
print(train.name, train.is_connected)
train.disconnect()動かす:Train
主なプロパティはname、alias、is_connected、distance_cm、direction、speed_cmps、next_split_decisionです。主なコマンドはdrive_at_speed、drive_at_speed_level、stop_driving、set_next_split_steering_decision、set_top_led_color、set_headlight_color、set_snap_command_execution、decouple_wagonです。
定数:enums
ButtonPressはSHORT・LONG、ColorSensorはFRONT・BACK、MovementDirectionはCURRENT・FORWARD・BACKWARD・STOP・INVERT、SnapColorValueはBLACK・RED・GREEN・BLUE・YELLOW・MAGENTA・CYAN・WHITE・UNKNOWN、SpeedLevelはSTOP・LEVEL1〜3、SteeringDecisionはNONE・LEFT・RIGHT・STRAIGHT・STEER・ALLです。StopDrivingFeedbackTypeはNONE・MOVEMENT_STOP・END_ROUTEです。
from intelino.trainlib.enums import (
MovementDirection,
SnapColorValue,
SteeringDecision,
)メッセージ:messages
応答メッセージにはMACアドレス、UUID、バージョン、総走行距離、走行状態などがあります。イベントには移動方向、低電池、充電状態、ボタン、スナップコマンド、前後色センサー、分岐判断などがあります。色センサーの単色はcolor、スナップコマンドの色列はcolorsです。メッセージは基本的に読み取り専用です。
例外とその他のAPI
代表的な例外はTrainNotFoundErrorとTrainNotConnectedErrorです。接続再試行を無限に繰り返さず、例外名とメッセージを記録します。より低い層のBLEパケットや非同期APIは、公式リファレンスとソースを確認できる開発者向けの範囲です。
ライセンスと不具合報告
同期版ライブラリ本体はIntelino Public Licenseで公開されています。公式サンプルリポジトリはMIT Licenseです。不具合や要望は公式GitHub Issuesへ報告できます。端末、OS、Python、ライブラリのバージョン、再現手順、エラー全文を添え、個人情報や端末固有の秘密情報は載せません。