<markdown> Protocol ======== ## 基本仕様 命令をé€ä¿¡ã™ã‚‹ã«ã‚ãŸã‚Šã€3æ–‡å—ã§å®šç¾©ã•れãŸãƒ˜ãƒƒãƒ€ã‚’ã¾ãšé€ä¿¡ã—〠ãれã«ç¶šã„ã¦å„æ§‹æˆè¦ç´ を定ã‚られãŸãƒ•ォーマットã®ã‚‚ã¨é †æ¬¡é€ä¿¡ã—ã¦ã„ãã¾ã™ã€‚ クライアントå´ã§ã¯å…¨ã¦ã®è¡¨ç¾ã‚’æ–‡å—列ã«ã—ã¦ã‹ã‚‰é€ä¿¡ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ (ãƒã‚¤ãƒŠãƒªã‚’ãã®ã¾ã¾é€ä¿¡ã—ãŸå ´åˆã€æ„図ã—ãªã„動作をã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚) ãªãŠã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ãŒå¤§æ–‡å—ã‹å°æ–‡å—ã‹ã¯åŒºåˆ¥ã•れã¾ã›ã‚“。 ボーレートã¯**2,000,000**を使用ã—ã¦ãã ã•ã„。 ## Controller関連ã®ã‚³ãƒžãƒ³ãƒ‰ ### $AN (指示値ã®é©ç”¨) |ã‚¿ã‚° |役割 |最å°å€¤(dec)|最大値(dec)|フォーマット | |:--------|:-------------------|:---------:|:---------:|:-----------------------| |DEVICE_ID|デãƒã‚¤ã‚¹ç•ªå·ã®æŒ‡å®š |0 |23 |0埋ã‚,16進数表ç¾ï¼Œ2byte| |VALUE |デãƒã‚¤ã‚¹å‡ºåŠ›å€¤ã®æŒ‡å®š|-2048 |2047 |0埋ã‚,16進数表ç¾ï¼Œ3byte| *examples* デãƒã‚¤ã‚¹**10**ã«**1000**を出力ã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` $an0a3e8 ``` ### $AD (指示値差分ã®é©ç”¨) |ã‚¿ã‚° |役割 |最å°å€¤(dec)|最大値(dec)|フォーマット | |:--------|:-------------------|:---------:|:---------:|:-----------------------| |DEVICE_ID|デãƒã‚¤ã‚¹ç•ªå·ã®æŒ‡å®š |0 |23 |0埋ã‚,16進数表ç¾ï¼Œ2byte| |VALUE |デãƒã‚¤ã‚¹å‡ºåŠ›å€¤ã®æŒ‡å®š|-2048 |2047 |0埋ã‚,16進数表ç¾ï¼Œ3byte| *examples* デãƒã‚¤ã‚¹**4**ã®åˆæœŸå€¤ã«**-100**ã—ãŸå€¤ã‚’出力ã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` $ad04f9c ``` ### $PM (モーションã®å†ç”Ÿ) **Attention!** å¾Œæ–¹äº’æ›æ€§ã®ãŸã‚ã«**$MP**も利用å¯èƒ½ã§ã™ãŒã€**éžæŽ¨å¥¨**扱ã„ã§ã™ã€‚ |ã‚¿ã‚°|役割 |最å°å€¤(dec)|最大値(dec)|フォーマット | |:---|:---------------------|:---------:|:---------:|:-----------------------| |SLOT|èªã¿å‡ºã—スãƒãƒƒãƒˆã®æŒ‡å®š|0 |89 |0埋ã‚,16進数表ç¾ï¼Œ2byte| *examples* スãƒãƒƒãƒˆ**4**ã®ãƒ¢ãƒ¼ã‚·ãƒ§ãƒ³ã‚’å†ç”Ÿã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` $pm04 ``` ### $SM (モーションã®åœæ¢) **Attention!** å¾Œæ–¹äº’æ›æ€§ã®ãŸã‚ã«**$MS**も利用å¯èƒ½ã§ã™ãŒã€**éžæŽ¨å¥¨**扱ã„ã§ã™ã€‚ *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!** **éžæŽ¨å¥¨**扱ã„ã§ã™ã€‚version 2.xã§ã¯å»ƒæ¢äºˆå®šãªã®ã§ã€åŸºæœ¬çš„ã«å¾Œè¿°ã®**>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)|-32768 |32767 |0埋ã‚,16進数表ç¾ï¼Œ4byte| **(*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 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0064 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff ``` ### >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] |デãƒã‚¤ã‚¹å‡ºåŠ›å€¤ã®æŒ‡å®š |-32768 |32767 |0埋ã‚,16進数表ç¾ï¼Œ4byte| ç´°ã‹ã„仕様ã«ã¤ã„ã¦ã¯ã€">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 (最å°å€¤ã®è¨å®š) |ã‚¿ã‚° |役割 |最å°å€¤(dec)|最大値(dec)|フォーマット | |:--------|:-----------------|:---------:|:---------:|:-----------------------| |DEVICE_ID|デãƒã‚¤ã‚¹ç•ªå·ã®æŒ‡å®š|0 |23 |0埋ã‚,16進数表ç¾ï¼Œ2byte| |VALUE |最å°å€¤ã®æŒ‡å®š |-2048 |2047 |0埋ã‚,16進数表ç¾ï¼Œ3byte| *example* デãƒã‚¤ã‚¹**10**ã®æœ€å°å€¤ã‚’**-1**ã«è¨å®šã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` >mi0afff ``` ## Getter関連ã®ã‚³ãƒžãƒ³ãƒ‰ ### <JS (関節è¨å®šã®ãƒ€ãƒ³ãƒ—) *examples* 関節è¨å®šã‚’ダンプã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` <js ``` ãã®éš›ã€ä»¥ä¸‹ã®ã‚ˆã†ãªæ›¸å¼ã®JSONãŒå‡ºåŠ›ã•れã¾ã™ã€‚ ``` [ { "max": <integer>, "min": <integer>, "home": <integer> }, ... ] ``` ### <MO (モーションã®ãƒ€ãƒ³ãƒ—) |ã‚¿ã‚°|役割 |最å°å€¤(dec)|最大値(dec)|フォーマット | |:---|:-------------------|:---------:|:---------:|:-----------------------| |SLOT|èªå‡ºã—スãƒãƒƒãƒˆã®æŒ‡å®š|0 |89 |0埋ã‚,16進数表ç¾ï¼Œ2byte| *example* スãƒãƒƒãƒˆ**0**ã®ãƒ¢ãƒ¼ã‚·ãƒ§ãƒ³ã‚’ダンプã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` <mo00 ``` ãã®éš›ã€motion.jsonã¨åŒæ§˜ãªå½¢å¼ã®JSONãŒå‡ºåŠ›ã•れã¾ã™ã€‚([詳細](https://github.com/plenprojectcompany/PLEN2/tree/master/motions)) ãŸã ã—ã€"device"ã«å¯¾å¿œã™ã‚‹å€¤ã¯**string**ã§ã¯ãªã〠[device_map.json](https://github.com/plenprojectcompany/plen-ControlServer/blob/master/control_server/device_map.json)ã§å®šç¾©ã•れã¦ã„るよã†ãªIDã®**ineteger**ã§ã™ã€‚ ### <VI (ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã®ãƒ€ãƒ³ãƒ—) *examples* ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã‚’ãƒ€ãƒ³ãƒ—ã—ãŸã„å ´åˆã€é€ä¿¡ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™ã€‚ ``` <vi ``` ãã®éš›ã€ä»¥ä¸‹ã®ã‚ˆã†ãªæ›¸å¼ã®JSONãŒå‡ºåŠ›ã•れã¾ã™ã€‚ ``` { "device": <string>, "codename": <string>, "version": <string> } ``` </markdown>