Protocol ======== ## Basic Specification In sending a command, firstly send header that defined as 3 characters. Secondly formatting and send each argument. Before sending a command, client must convert binary-expression to ascii-expression. (If the client sending a command without conversion, PLEN's moving is different from you intended.) No differences the command line made of upper case or lower case. ## Group of Controller Command ### $AN (Apply Native Value) |Args |Roles |Min (dec)|Max (dec)|Format | |:--------|:-------------------------|:-------:|:-------:|:--------------------| |DEVICE_ID|Set a device id. |0 |23 |0 padding,hex,2byte| |VALUE |Set to apply native value.|-2048 |2047 |0 padding,hex,3byte| *example*: If you want to apply **1000** to device **10**, send command below. ``` $an0a3e8 ``` ### $AD (Apply Diff Value) |Args |Roles |Min (dec)|Max (dec)|Format | |:--------|:-----------------------|:-------:|:-------:|:--------------------| |DEVICE_ID|Set a device id. |0 |23 |0 padding,hex,2byte| |VALUE |Set to apply diff value.|-2048 |2047 |0 padding,hex,3byte| *example*: If you want to apply **home value - 100** to device **4**, send command below. ``` $ad04f9c ``` ### $PM (Play a Motion) **Attention!** You could also use "$MP", but this is **deprecated**. |Args|Roles |Min (dec)|Max (dec)|Format | |:---|:----------------|:-------:|:-------:|:--------------------| |SLOT|Set to read slot.|0 |89 |0 padding,hex,2byte| *example*: If you want to play slot **4**, send command below. ``` $pm04 ``` ### $SM (Stop a Motion) **Attention!** You could also use "$MS", but this is **deprecated**. *example*: If you want to stop a motion, send command below. ``` $sm ``` ### $HP (Apply Home Position) *example*: If you want to apply home position, send command below. ``` $hp ``` ## Group of Interpreter Command ### #PU (Push a Function) |Args |Roles |Min (dec)|Max (dec)|Format | |:---------|:------------------|:-------:|:-------:|:--------------------| |SLOT |Set to read slot. |0 |89 |0 padding,hex,2byte| |LOOP_COUNT|Set number of play.|0 |255 |0 padding,hex,2byte| *example*: If you want to push function that plays slot **10** **three** times, send command below. ``` #pu0a03 ``` ### #PO (Pop a Function) *example*: If you want to pop a function, send command below. ``` #po ``` ### #RI (Reset the Interpreter) *example*: If you want to reset the interpreter, send command below. ``` #ri ``` ## Group of Setter Command ### >IN (Install a Motion) **Attention!** This is **deprecated**. Obsolescent at firmware version 2.x. Please using **>MH** and **>MF** that are described after basically. |Args |Roles |Min (dec)|Max (dec)|Format | |:-----------------|:----------------------------|:-------:|:-------:|:--------------------------| |SLOT |Set to write slot. |0 |89 |0 padding,hex,2byte | |NAME |Set a motion name. |--- |--- |white space padding,20byte| |FUNC |Set a function. (*1) |0 |255 |0 padding,hex,2byte | |ARG0 |Set a function's arg 0. (*1) |0 |255 |0 padding,hex,2byte | |ARG1 |Set a function's arg 1. (*1) |0 |255 |0 padding,hex,2byte | |FRAME_LENGTH |Set a frame length. |1 |20 |0 padding,hex,2byte | |TRANSITION_TIME_MS|Set a transition time (msec).|32 |65535 |0 padding,hex,4byte | |VALUE[DEVICE_ID] |Set to apply value. (*2) |-32768 |32767 |0 padding,hex,4byte | **(*1) Type of function and role of args are described below.** |"FUNC"'s Values|Roles | |:--------------|:--------------------------------------------------------| |0 |--- | |1 |Play a motion with infinite loop between arg 0 and arg 1.| |2 |Jump to arg 0 if then stopped the motion. | **(*2) Sum of devices is 24 and all are servo motor.** *example*: Let install a motion below. |Args |Values| |:-----------------|:-----| |SLOT |0 | |NAME |Test | |FUNC |0 | |ARG0 |0 | |ARG1 |0 | |FRAME_LENGTH |2 | |TRANSITION_TIME_MS|100 | |OUTPUT[EVEN] |0 | |OUTPUT[ODD] |-1 | Please send command below. (There are no CR, LF, or CRLF actually.) ``` >in 00Test 00000002 0064 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0064 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff 0000ffff0000ffff0000ffff0000ffff ``` ### >MH (Set a Motion Header) |Args |Roles |Min (dec)|Max (dec)|Format | |:-----------|:---------------------------|:-------:|:-------:|:--------------------------| |SLOT |Set to write slot. |0 |89 |0 padding,hex,2byte | |NAME |Set a motion name. |--- |--- |white space padding,20byte| |FUNC |Set a function. (*1) |0 |255 |0 padding,hex,2byte | |ARG0 |Set a function's arg 0. (*1)|0 |255 |0 padding,hex,2byte | |ARG1 |Set a function's arg 1. (*1)|0 |255 |0 padding,hex,2byte | |FRAME_LENGTH|Set a frame length |1 |20 |0 padding,hex,2byte | Please get more detail at ">IN" section. ### >MF (Set a Motion Frame) |Args |Roles |Min (dec)|Max (dec)|Format | |:-----------------|:----------------------------|:-------:|:-------:|:--------------------| |SLOT |Set to write slot. |0 |89 |0 padding,hex,2byte| |FRAME_ID |Set a frame id. |1 |20 |0 padding,hex,2byte| |TRANSITION_TIME_MS|Set a transition time (msec).|32 |65535 |0 padding,hex,4byte| |VALUE[DEVICE_ID] |Set to apply value. (*2) |-32768 |32767 |0 padding,hex,4byte| Please get more detail at ">IN" section. ### >JS (Reset the Joint Settings) *example*: If you want to reset the joint settings, send command below. ``` >js ``` ### >HO (Set a Home Value) |Args |Roles |Min (dec)|Max (dec)|Format | |:--------|:-----------------------|:-------:|:-------:|:--------------------| |DEVICE_ID|Set a device id. |0 |23 |0 padding,hex,2byte| |VALUE |Set to apply home value.|-2048 |2047 |0 padding,hex,3byte| *example*: If you want to apply **100** as home value to device **0**, send command below. ``` >ho00064 ``` ### >MA (Set a Max Value) |Args |Roles |Min (dec)|Max (dec)|Format | |:--------|:----------------------|:-------:|:-------:|:--------------------| |DEVICE_ID|Set a device id. |0 |23 |0 padding,hex,2byte| |VALUE |Set to apply max value.|-2048 |2047 |0 padding,hex,3byte| *example*: If you want to apply **100** as max value to device **0**, send command below. ``` >ma00064 ``` ### >MI (Set a Min Value) |Args |Roles |Min (dec)|Max (dec)|Format | |:--------|:----------------------|:-------:|:-------:|:--------------------| |DEVICE_ID|Set a device id. |0 |23 |0 padding,hex,2byte| |VALUE |Set to apply min value.|-2048 |2047 |0 padding,hex,3byte| *example*: If you want to apply **-1** as min value to device **10**, send command below. ``` >mi0afff ``` ## Group of Getter Command ### , "min": , "home": }, ... ] ``` ### , "codename": , "version": } ```