Source code for wni.az_el

import wni.config as config


[docs]class AzElController(object): """Provides abstraction layer over the motor and actuator.""" _RECV_TIMEOUT = -1 def __init__(self, recv_timeout=-1): from wni.util import ActuatorClient, MotorClient self.actuator = ActuatorClient(recv_timeout=recv_timeout) self.motor = MotorClient(config.MOTOR_ADDR, recv_timeout=recv_timeout) self.last_data = []
[docs] def stop(self): self.motor.stop()
[docs] def go_home(self): self.motor.home()
@property def acceleration(self): acceleration = self.motor.get_acceleration() return acceleration @property def home_angle(self): return self.motor.home_angle @home_angle.setter def home_angle(self, val): self.motor.home_angle = val @acceleration.setter def acceleration(self, value): self.motor.acceleration(value) @property def is_spinning(self): return self.motor.is_spinning
[docs] def spin(self): self.motor.spin()
@property def point(self): return self.motor.get_actual_position() @point.setter def point(self, position): self.motor.point(position) @property def degrees_per_second(self): dps = self.motor.get_degrees_per_second() return dps @degrees_per_second.setter def degrees_per_second(self, value): self.motor.degrees_per_second(value) @property def elevation(self): return self.actuator.position @elevation.setter def elevation(self, value): self.actuator.position = value
if __name__ == '__main__': az_el = AzElController()