Exemplo n.º 1
0
def test_Device():
    print "Test Device"
    d = Device("COM6", "COM7")
    servos = [0, 1]
    for servo_id in servos:
        print "-- servo:", servo_id
        print "Go Home"
        d.go_home()
        print "Get Errors"
        print d.get_errors()

        print "Get Position"
        pos = d.get_position(servo_id)
        print pos

        newsetpos = pos - 50
        print "Set Target:", newsetpos
        d.set_target(servo_id, newsetpos)
        d.wait_until_at_target()
        newpos = d.get_position(servo_id)
        print "%s==%s" % (newsetpos, newpos),
        print newsetpos == newpos

        newsetpos = pos + 50
        print "Set Target:", newsetpos
        d.set_target(servo_id, newsetpos)
        d.wait_until_at_target()
        newpos = d.get_position(servo_id)
        print "%s==%s" % (newsetpos, newpos),
        print newsetpos == newpos

        d.go_home()
        print d.get_errors()
    del d
    print "Device tested"
class LegacyCameraDriver(object):
  def __init__(self,x_servo=0,y_servo=1,z_servo=2):
    self.x_servo = x_servo
    self.y_servo = y_servo
    self.z_servo = z_servo
    self.device = Device()
    self.device.set_acceleration(self.x_servo,10)
    self.device.set_speed(self.x_servo,10)
    self.device.set_acceleration(self.y_servo,10)
    self.device.set_speed(self.y_servo,10)
    self.device.set_acceleration(self.z_servo,10)
    self.device.set_speed(self.z_servo,10)
    self.device.go_home()

  def __del__(self):
    del(self.device)
    
  def status_report(self):
    return "X: %s\tY: %s\tZ: %s" % (self.device.get_position(self.x_servo),self.device.get_position(self.y_servo),self.device.get_position(self.z_servo))

  def pan(self,dx):
    x = self.device.get_position(self.x_servo)
    x += dx
    self.device.set_target(self.x_servo,x)
    self.device.wait_until_at_target()
 
  def tilt(self,dy):
    y = self.device.get_position(self.y_servo)
    y += dy
    self.device.set_target(self.y_servo,y)
    self.device.wait_until_at_target()

  def rotate(self,dz):
    z = self.device.get_position(self.z_servo)
    z += dz
    self.device.set_target(self.z_servo,z)
    self.device.wait_until_at_target()
    
  def goto(self,x,y,z=0):
    self.device.set_target(self.x_servo,x)
    self.device.set_target(self.y_servo,y)
    self.device.set_target(self.z_servo,z)
    self.device.wait_until_at_target()
    
  def reset(self):
    self.device.go_home()
    self.device.wait_until_at_target()