#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# PyAX-12

# The MIT License
#
# Copyright (c) 2010,2015 Jeremie DECOCK (http://www.jdhp.org)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

"""
A PyAX-12 demo.

Move the specified Dynamixel unit to 0° (0) then go to 300° (1024) then go back
to 150° (512).
"""

import pyax12.packet as pk

from pyax12.connection import Connection
from pyax12.argparse_default import common_argument_parser

import time

def main():
    """
    A PyAX-12 demo.

    Move the specified Dynamixel unit to 0° (0) then go to 300° (1023) then go
    back to 150° (511).
    """

    # Parse options
    parser = common_argument_parser(desc=main.__doc__)
    args = parser.parse_args()

    # Connect to the serial port
    serial_connection = Connection(args.port, args.baudrate, args.timeout)

    ###

    # Goto to 0°
    params = (0x00, 0x00, 0x00, 0x02)
    serial_connection.write_data(args.dynamixel_id, pk.GOAL_POSITION, params)

    # Wait 2 seconds
    time.sleep(2)

    # Go back to 300°
    params = (0xff, 0x03, 0x00, 0x02)
    serial_connection.write_data(args.dynamixel_id, pk.GOAL_POSITION, params)

    # Wait 2 seconds
    time.sleep(2)

    # Go back to 150°
    params = (0xff, 0x01, 0x00, 0x02)
    serial_connection.write_data(args.dynamixel_id, pk.GOAL_POSITION, params)

    ###

    # Close the serial connection
    serial_connection.close()

if __name__ == '__main__':
    main()

@@ -1855,46 +1855,8 @@
  0%C2%B0%0A
-    params = (0x00, 0x00, 0x00, 0x02)%0A
     
@@ -1869,34 +1869,28 @@
 _connection.
-write_data
+goto
 (args.dynami
@@ -1901,32 +1901,23 @@
 id, 
-pk.GOAL_POSITION, params
+0, degrees=True
 )%0A%0A 
@@ -1943,33 +1943,33 @@
 %0A    time.sleep(
-2
+1
 )%0A%0A    # Go back
@@ -1981,46 +1981,8 @@
 00%C2%B0%0A
-    params = (0xff, 0x03, 0x00, 0x02)%0A
     
@@ -1995,34 +1995,28 @@
 _connection.
-write_data
+goto
 (args.dynami
@@ -2027,32 +2027,25 @@
 id, 
-pk.GOAL_POSITION, params
+300, degrees=True
 )%0A%0A 
@@ -2109,46 +2109,8 @@
 50%C2%B0%0A
-    params = (0xff, 0x01, 0x00, 0x02)%0A
     
@@ -2131,18 +2131,12 @@
 ion.
-write_data
+goto
 (arg
@@ -2155,32 +2155,25 @@
 id, 
-pk.GOAL_POSITION, params
+150, degrees=True
 )%0A%0A 
@@ -2176,24 +2176,25 @@
 )%0A%0A    ###%0A%0A
+%0A
     # Close 

Use 'Connection.goto' in 'examples/move.py'.