OSCコマンドリファレンス
概要
Open Sound Controlで制御する際のコマンド一覧です。コマンドはSTEP400とSTEP800で共通ですが、STEP400でのみ利用可能なコマンドがあるほか、設定値が異なるコマンドもあります。詳しくは「STEP400とSTEP800で異なる部分」をご確認ください。
STEP400でのみ利用可能なコマンドは STEP400のみ と表記されています。
OSC Bundle(複数のOSC Messageを束ねたもの)ではなく単体のOSC Messageとして送ってください。
モータのID
コマンドをやり取りする際のモータIDは基板に印刷してある番号と一致しています。コマンドによっては全モータに一斉に同じ指令を送ることができるものがあり、その場合はIDに255を指定します。
ですので、コマンドの一部として送ることができるモータIDは以下の通りです。
| 機種 | モータIDの範囲 |
|---|---|
| STEP400 | 1-4, 255 |
| STEP800 | 1-8, 255 |
表記
アーギュメントの数値
| 表記 | 説明 |
|---|---|
| (int) | 整数の値。コマンドによって実際に送ることができる範囲は異なります。 |
| (float) | 浮動小数点数の値。コマンドによって実際に送ることができる範囲は異なります。 |
| (bool) | 論理値。1または0のどちらかの整数です。 値の範囲を明確にするためにboolと表記しています。 |
| (Symbol) | 文字列 (OSC-string) です。 |
アーギュメントのタイプ
基板から送信されるメッセージ
OSCの規格では、アーギュメントのタイプとして整数(int32)、浮動小数点数(float32)、文字列(OSC-string)などのほかに、非標準のタイプとして論理値のTrue/Falseなどが定められています。STEPシリーズからの返答メッセージは論理値であってもTrue/Falseは使用せず、整数として送信しています(Universal Firmware 1.1.0以降)。
/setDestIp メッセージを送るまでは基板側からのOSCメッセージの送信は行いません。
基板へ送信されるメッセージ
OSC受信時にタイプの変換をしていますので、例えば1または0の論理値の場合でも、整数や浮動小数点数で送信することが可能です。文字列の場合はエラーになります。
| Type | 1と判定 | 0と判定 |
|---|---|---|
| int32 | 1以上 | 0以下 |
| float32 | 1.0以上 | 1.0未満 |
| 論理値 | True | False |
| OSC-string | Error | Error |
同様に整数や浮動小数点数の場合も相互に変換をしています。この場合は論理値と文字列の場合がエラーになります。
コマンドを実行可能なタイミング
コマンドによっては実行できるタイミングが限られているものがあります。各コマンドのリファレンスに「実行可能タイミング」として表示してあります。
| 表記 | 説明 |
|---|---|
| 常時 | いつでも実行できる。 |
| BUSY解除時 | BUSY状態ではないときに実行できる。 |
| モータ停止時 | モータが停止しているときに実行できる。 |
| HiZ状態 | ドライバ出力がHiZ状態になっているときに実行できる。 |
| 動作開始条件時 | モータ動作の開始条件がそろったときに実行できる。 |
動作開始条件
以下の条件を満たしている状態です。
- 電磁ブレーキが解除されている
- サーボモードではない
また送ろうとしているコマンドの設定値は以下の条件を満たしている必要があります。
/setProhibitMotionOnHomeSwが設定されていて、HOMEスイッチが反応しているときにhomingDirectionへ動作しようとしていない/setProhibitMotionOnLimitSwが設定されていて、LIMITスイッチが反応しているときにhomingDirectionの逆方向へ動作しようとしていない
留意点
基板側からあて先に到達できないOSCメッセージを大量に送ると挙動がおかしくなることがあるため、/setDestIp メッセージを送るまでは基板側からのOSCメッセージの送信は行いません。