ユーザ用ツール

サイト用ツール


ja:specifications:protocol

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン 両方とも次のリビジョン
ja:specifications:protocol [2015/10/02 06:17]
Guvalif 作成
ja:specifications:protocol [2015/10/10 02:28]
Guvalif
行 2: 行 2:
 Protocol Protocol
 ======== ========
 +
 +Translate me.
  
 ## 基本仕様 ## 基本仕様
-命令を送信するにあたり、3文字で定義された命令をまず送信し、+命令を送信するにあたり、3文字で定義されたヘッダをまず送信し、
 それに続いて各構成要素を定められたフォーマットのもと順次送信していきます。 それに続いて各構成要素を定められたフォーマットのもと順次送信していきます。
  
行 10: 行 12:
 (バイナリをそのまま送信した場合、意図しない動作をすることがあります。) (バイナリをそのまま送信した場合、意図しない動作をすることがあります。)
  
 +なお、コマンドラインが大文字か小文字かは区別されません。
 +
 +
 +## Controller関連のコマンド
 +### $OV (指示値の適用)
 +
 +|タグ     |役割                |最小値(dec)|最大値(dec)|フォーマット            |
 +|:--------|:-------------------|:---------:|:---------:|:-----------------------|
 +|DEVICE_ID|デバイス番号の指定  |0          |23         |0埋め,16進数表現,2byte|
 +|VALUE    |デバイス出力値の指定|-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +*examples*  
 +デバイス**10**に**1000**を出力したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +$ov0a3e8
 +```
 +
 +### $OD (指示値差分の適用)
 +
 +|タグ     |役割                |最小値(dec)|最大値(dec)|フォーマット            |
 +|:--------|:-------------------|:---------:|:---------:|:-----------------------|
 +|DEVICE_ID|デバイス番号の指定  |0          |23         |0埋め,16進数表現,2byte|
 +|VALUE    |デバイス出力値の指定|-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +*examples*  
 +デバイス**4**の初期値に**-100**した値を出力したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +$od043e8f9c
 +```
 +
 +### $PM (モーションの再生)
 +
 +**Attention!**  
 +後方互換性のために**$MP**も利用可能ですが、[[deprecated]]扱いです。
 +
 +|タグ|役割                  |最小値(dec)|最大値(dec)|フォーマット            |
 +|:---|:---------------------|:---------:|:---------:|:-----------------------|
 +|SLOT|読み出しスロットの指定|0          |89         |0埋め,16進数表現,2byte|
 +
 +*examples*  
 +スロット**4**のモーションを再生したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +$pm04
 +```
 +
 +### $SM (モーションの停止)
 +
 +**Attention!**  
 +後方互換性のために**$MS**も利用可能ですが、[[deprecated]]扱いです。
 +
 +*examples*  
 +モーションを停止したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +$sm
 +```
 +
 +### $HP (初期姿勢への移行)
 +
 +*examples*  
 +初期姿勢に移行したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +$hp
 +```
 +
 +
 +## Interpreter関連のコマンド
 +### #PU (関数のプッシュ)
 +
 +|タグ      |役割                  |最小値(dec)|最大値(dec)|フォーマット            |
 +|:---------|:---------------------|:---------:|:---------:|:-----------------------|
 +|SLOT      |読出しスロットの指定  |0          |89         |0埋め,16進数表現,2byte|
 +|LOOP_COUNT|ループ回数の指定      |0          |255        |0埋め,16進数表現,2byte|
 +
 +*examples*  
 +スロット**10**のモーションを**3**回再生する関数をプッシュしたい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +#pu0a03
 +```
 +
 +### #PO (関数のポップ)
 +
 +*examples*  
 +関数をポップしたい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +#po
 +```
 +
 +### #RI (インタプリタの初期化)
 +
 +*examples*  
 +インタプリタを初期化したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +#ri
 +```
 +
 +
 +## Setter関連のコマンド
 +### >IN (モーションのインストール)
 +
 +**Attention!**  
 +[[deprecated]]扱いです。ver.1.2.0では廃止予定なので、基本的に後述の**>MH**,**>MF**を使用してください。
 +
 +|タグ              |役割                     |最小値(dec)|最大値(dec)|フォーマット            |
 +|:-----------------|:------------------------|:---------:|:---------:|:-----------------------|
 +|SLOT              |書き込みスロットの指定   |0          |89         |0埋め,16進数表現,2byte|
 +|NAME              |モーション名の指定       |---        |---        |空白埋め,20byte        |
 +|FUNC              |関数の指定 (*1)          |0          |255        |0埋め,16進数表現,2byte|
 +|ARG0              |制御機能に渡す引数0 (*1) |0          |255        |0埋め,16進数表現,2byte|
 +|ARG1              |制御機能に渡す引数1 (*1) |0          |255        |0埋め,16進数表現,2byte|
 +|FRAME_LENGTH      |フレーム総数の指定       |1          |20         |0埋め,16進数表現,2byte|
 +|TRANSITION_TIME_MS|遷移時間の指定           |32         |65535      |0埋め,16進数表現,4byte|
 +|VALUE[DEVICE_ID]  |デバイス出力値の指定 (*2)|-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +**(*1) 関数の種類と引数の意味は下表の通りです。**
 +
 +|"FUNC"の値|機能                                                          |
 +|:---------|:-------------------------------------------------------------|
 +|0         |---                                                           |
 +|1         |loop,"ARG0"から"ARG1"までのフレームを無限ループで再生します。|
 +|2         |jump,再生終了後、"ARG0"のモーションを再生します。            |
 +
 +**(*2) デバイスの個数は現状24個で、全てサーボモータです。**
 +
 +*example*:  
 +以下のようなモーションをインストールするとします。
 +
 +|タグ              |値  |
 +|:-----------------|:---|
 +|SLOT              |0   |
 +|NAME              |Test|
 +|FUNC              |0   |
 +|ARG0              |0   |
 +|ARG1              |0   |
 +|FRAME_LENGTH      |2   |
 +|TRANSITION_TIME_MS|100 |
 +|OUTPUT[EVEN]      |0   |
 +|OUTPUT[ODD]       |-1  |
 +
 +その際、送信するコマンドラインは以下の通りです。(改行は実際には必要ありません。)
 +
 +```
 +>in
 +00Test                00000002
 +0064
 +000fff000fff000fff000fff
 +000fff000fff000fff000fff
 +000fff000fff000fff000fff
 +0064
 +000fff000fff000fff000fff
 +000fff000fff000fff000fff
 +000fff000fff000fff000fff
 +```
 +
 +### >MH (モーションヘッダの設定)
 +
 +|タグ        |役割                  |最小値(dec)|最大値(dec)|フォーマット            |
 +|:-----------|:---------------------|:---------:|:---------:|:-----------------------|
 +|SLOT        |書き込みスロットの指定|0          |89         |0埋め,16進数表現,2byte|
 +|NAME        |モーション名の指定    |---        |---        |空白埋め,20byte        |
 +|FUNC        |関数の指定 (*1)       |0          |255        |0埋め,16進数表現,2byte|
 +|ARG0        |制御機能に渡す引数0   |0          |255        |0埋め,16進数表現,2byte|
 +|ARG1        |制御機能に渡す引数1   |0          |255        |0埋め,16進数表現,2byte|
 +|FRAME_LENGTH|フレーム総数の指定    |1          |20         |0埋め,16進数表現,2byte|
 +
 +細かい仕様については、">IN"と同様です。
 +
 +### >MF (モーションフレームの設定)
 +
 +|タグ              |役割                     |最小値(dec)|最大値(dec)|フォーマット            |
 +|:-----------------|:------------------------|:---------:|:---------:|:-----------------------|
 +|SLOT              |書き込みスロットの指定   |0          |89         |0埋め,16進数表現,2byte|
 +|FRAME_ID          |書き込みフレームの指定   |0          |19         |0埋め,16進数表現,2byte|
 +|TRANSITION_TIME_MS|遷移時間の指定           |32         |65535      |0埋め,16進数表現,4byte|
 +|VALUE[DEVICE_ID]  |デバイス出力値の指定     |-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +細かい仕様については、">IN"と同様です。
 +
 +### >JS (関節設定の初期化)
 +
 +*example*:  
 +関節設定を初期化したい場合に、送信するコマンドラインは以下の通りです。
 +
 +```
 +>js
 +```
 +
 +### >HO (初期値の設定)
 +
 +|タグ     |役割              |最小値(dec)|最大値(dec)|フォーマット            |
 +|:--------|:-----------------|:---------:|:---------:|:-----------------------|
 +|DEVICE_ID|デバイス番号の指定|0          |23         |0埋め,16進数表現,2byte|
 +|VALUE    |初期値の指定      |-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +*example*  
 +デバイス**0**の初期値を**100**に設定したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +>ho00064
 +```
 +
 +### >MA (最大値の設定)
 +
 +|タグ     |役割              |最小値(dec)|最大値(dec)|フォーマット            |
 +|:--------|:-----------------|:---------:|:---------:|:-----------------------|
 +|DEVICE_ID|デバイス番号の指定|0          |23         |0埋め,16進数表現,2byte|
 +|VALUE    |最大値の指定      |-2048      |2047       |0埋め,16進数表現,3byte|
 +
 +*example*  
 +デバイス**0**の最大値を**100**に設定したい場合、送信するコマンドラインは以下の通りです。
 +
 +```
 +>ma00064
 +```
  
-## システム関連 +### >MI (最小値設定)
-**#IN** (モーションデータインストール)+
  
-|タグ    |役割                  |最小値(dec)|最大値(dec)|フォーマット            | +|タグ     |役割              |最小値(dec)|最大値(dec)|フォーマット            | 
-|:-------|:---------------------|:---------:|:---------:|:-----------------------| +|:--------|:-----------------|:---------:|:---------:|:-----------------------| 
-|slotNum |書き込みロットの指定|0          |99         |0埋め,16進数表現,2byte| +|DEVICE_ID|デバイ番号の指定|0          |23         |0埋め,16進数表現,2byte| 
-|name    |モーション名の指定    |---        |---        |空白埋め,20byte        | +|VALUE    |最小値の指定      |-2048      |2047       |0埋め,16進数表現,3byte|
-|function|制御機能の指定        |0          |255        |0埋め,16進数表現,2byte| +
-|param0  |制御機能に渡す引数1   |0          |255        |0埋め,16進数表現,2byte| +
-|param1  |制御機能に渡す引数2   |0          |255        |0埋め,16進数表現,2byte| +
-|frameNum|フレーム総数の指定    |1          |20         |0埋め,16進数表現,2byte| +
-|frame   |フレーム構成要素の指定|-1800      |1800       |0埋め,16進数表現,4byte|+
  
-- -+*example*   
 +デバイス**10**の最小値を**-1**に設定したい場合、送信するコマンドラインは以下の通りです。
  
-**#MI** (関節可動域最小値の設定),   +``` 
-**#MA** (関節可動域最大値の設定),   +>mi0afff 
-**#HO** (関節初期位置の設定),   +```
-**#SA** (関節可動命令)+
  
-|タグ    |役割                |最小値(dec)|最大値(dec)|フォーット            | +## Getter関連のコンド 
-|:-------|:-------------------|:---------:|:---------:|:-----------------------| +### <JS (関節定のダンプ)
-|jointNum|関節番号の指定      |0          |23         |0埋め,16進数表現,2byte| +
-|angle   |角度指定          |0          |1800       |0埋め,16進数表現,3byte|+
  
-- - -+*examples*   
 +関節設定をダンプしたい場合、送信するコマンドラインは以下の通りです。
  
-**###** (読み込みシリアルのトグル)+``` 
 +<js 
 +```
  
-- - -+その際、以下のような書式のJSONが出力されます。
  
-**#DJ** (関節設定のダンプコマンド)+``` 
 +
 + "settings":
 +
 + "joint": <integer>, 
 + "MAX": <integer>, 
 + "MIN": <integer>, 
 + "HOME": <integer> 
 + }, 
 + ... 
 +
 +
 +```
  
-- - -+### <MO (モーションのダンプ)
  
-**#SJ** (関節設定の書き込みコマンド)+|タグ|役割                |最小値(dec)|最大値(dec)|フォーマット            | 
 +|:---|:-------------------|:---------:|:---------:|:-----------------------| 
 +|SLOT|読出しスロットの指定|0          |89         |0埋め,16進数表現,2byte|
  
-- - -+*example*   
 +スロット**0**のモーションをダンプしたい場合、送信するコマンドラインは以下の通りです。
  
-**#DM** (モーションのダンプコマンド)+``` 
 +<mo00 
 +```
  
-|タグ   |役割                |最小値(dec)|最大値(dec)|フォーマット            | +その際、motion.jsonと同様な形式のJSONが力されます。 
-|:------|:-------------------|:---------:|:---------:|:-----------------------| +ただ、"device"に対応する値は**string**ではなく、 
-|slotNum|読出しスロットの指|0          |99         |0埋め,16進数表現,2byte|+device_map.jsonで義されているようなIDの**ineteger**です。
  
 +### <VI (バージョン情報のダンプ)
  
-## モーション関連 +*examples  
-**$MP** (モョンデータ再生)+ョン情報をダンプしたい場合、送信するコマンドラインは以下通りです。
  
-|タグ   |役割              |最小値(dec)|最大値(dec)|フォーマット            | +``` 
-|:------|:-----------------|:---------:|:---------:|:-----------------------| +<vi 
-|slotNum|再生スロットの指定|0          |99         |0埋め,16進数表現,2byte|+```
  
-- - -+その際、以下のような書式のJSONが出力されます。
  
-**$MS** (停止命令)+``` 
 +
 + "device": <string>, 
 + "codename": <string>, 
 + "version": <string> 
 +
 +```
 </markdown> </markdown>
ja/specifications/protocol.txt · 最終更新: 2021/04/01 13:52 (外部編集)