Coverage for /Users/fmorton/GitHub/BirdBrain-Python-Library-2/src/birdbrain_hummingbird_output.py: 100%
22 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-04 20:20 -0500
1from birdbrain_constant import BirdbrainConstant
2from birdbrain_request import BirdbrainRequest
3from birdbrain_utility import BirdbrainUtility
5class BirdbrainHummingbirdOutput(BirdbrainRequest):
6 @classmethod
7 def led(self, device, port, intensity):
8 """Set led of a certain port requested to a valid intensity."""
9 self.validate_port(port, BirdbrainConstant.VALID_LED_PORTS)
11 calculated_intensity = BirdbrainUtility.bounds(BirdbrainRequest.calculate_intensity(intensity), 0, 255)
13 return BirdbrainRequest.response_status('hummingbird', 'out', 'led', port, calculated_intensity, device)
15 @classmethod
16 def tri_led(self, device, port, r_intensity, g_intensity, b_intensity):
17 """Set TriLED of a certain port requested to a valid intensity."""
18 return self.tri_led_response(device, port, r_intensity, g_intensity, b_intensity, BirdbrainConstant.VALID_TRI_LED_PORTS)
20 @classmethod
21 def position_servo(self, device, port, angle):
22 """Set Position servo of a certain port requested to a valid angle."""
23 BirdbrainRequest.validate_port(port, BirdbrainConstant.VALID_SERVO_PORTS)
25 calculated_angle = BirdbrainUtility.bounds(BirdbrainRequest.calculate_angle(angle), 0, 254)
27 return BirdbrainRequest.response_status('hummingbird', 'out', 'servo', port, calculated_angle, device)
29 @classmethod
30 def rotation_servo(self, device, port, speed):
31 """Set Rotation servo of a certain port requested to a valid speed."""
32 BirdbrainRequest.validate_port(port, BirdbrainConstant.VALID_SERVO_PORTS)
34 calculated_speed = BirdbrainRequest.calculate_speed(BirdbrainUtility.bounds(int(speed), -100, 100))
36 return BirdbrainRequest.response_status('hummingbird', 'out', 'rotation', port, calculated_speed, device)