@@ -641,12 +641,22 @@ def light_off(self, override_list=None):
641641 else :
642642 self .write_port ()
643643
644- def rotary (self , position , min_speed = 100 , max_speed = 5000 , origin_param = 100 , ** kwgs ):
644+ def rotary (self , position , min_speed = 100 , max_speed = 5000 , acc_time = 100 , ** kwgs ):
645645 self .set_axis_motion_param (min_speed & 0xFFFF , max_speed & 0xFFFF )
646- self .set_axis_origin_param (origin_param )
647- self .move_axis_to (position & 0xFFFF )
646+ self .set_axis_origin_param (acc_time )
647+ pos = position if position >= 0 else - position + 0x80000000
648+ p1 = (pos >> 16 ) & 0xFFFF
649+ p0 = (pos & 0xFFFF )
650+ self .move_axis_to (p0 , p1 )
648651 self .wait_axis ()
649652
653+ def rotary_position (self ):
654+ pos = self .get_axis_pos (0 )
655+ position = pos [1 ] << 16 & pos [2 ]
656+ if position >= 0x80000000 :
657+ return position - 0x80000000
658+ return position
659+
650660 def get_last_xy (self ):
651661 return self ._last_x , self ._last_y
652662
@@ -1469,8 +1479,8 @@ def axis_go_origin(self, p0=0, p1=0):
14691479 def move_axis_to (self , p0 , p1 = 0 , p2 = 0 , p3 = 0 ):
14701480 return self ._command (MoveAxisTo , p0 , p1 , p2 , p3 )
14711481
1472- def get_axis_pos (self ):
1473- return self ._command (GetAxisPos )
1482+ def get_axis_pos (self , index = 0 ):
1483+ return self ._command (GetAxisPos , index )
14741484
14751485 def get_fly_wait_count (self ):
14761486 return self ._command (GetFlyWaitCount )
0 commit comments