Coverage for /Users/fmorton/GitHub/Birdbrain-Python-Library-2/src/birdbrain_finch.py: 98%

59 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-21 08:37 -0400

1from birdbrain_constant import BirdbrainConstant 

2from birdbrain_exception import BirdbrainException 

3from birdbrain_finch_input import BirdbrainFinchInput 

4from birdbrain_finch_output import BirdbrainFinchOutput 

5from birdbrain_microbit import BirdbrainMicrobit 

6from birdbrain_microbit_input import BirdbrainMicrobitInput 

7 

8class BirdbrainFinch(BirdbrainMicrobit): 

9 """The Finch class includes the control of the outputs and inputs present 

10 in the Finch robot. When creating an instance, specify which robot by the 

11 device letter used in the BlueBirdConnector device list (A, B, or C).""" 

12 

13 def __init__(self, device='A', raise_exception_if_no_connection = True): 

14 self.device_object = BirdbrainFinch.connect(device, raise_exception_if_no_connection) 

15 

16 if not self.is_finch(): 

17 raise BirdbrainException("Error: Device " + device + " is not a Finch") 

18 

19 def is_moving(self): 

20 return BirdbrainFinchInput.is_moving(self.device) 

21 

22 def beak(self, r_intensity, g_intensity, b_intensity): 

23 return BirdbrainFinchOutput.beak(self.device, r_intensity, g_intensity, b_intensity) 

24 

25 def tail(self, port, r_intensity, g_intensity, b_intensity): 

26 return BirdbrainFinchOutput.tail(self.device, port, r_intensity, g_intensity, b_intensity) 

27 

28 def move(self, direction, distance, speed, wait_to_finish_movement = True): 

29 return BirdbrainFinchOutput.move(self.device, direction, distance, speed, wait_to_finish_movement) 

30 

31 def turn(self, direction, angle, speed, wait_to_finish_movement = True): 

32 return BirdbrainFinchOutput.turn(self.device, direction, angle, speed, wait_to_finish_movement) 

33 

34 def motors(self, left_speed, right_speed): 

35 return BirdbrainFinchOutput.motors(self.device, left_speed, right_speed) 

36 

37 def wait(self, device): 

38 return BirdbrainFinchOutput.wait(self.device) 

39 

40 def stop(self): 

41 return BirdbrainFinchOutput.stop(self.device) 

42 

43 def reset_encoders(self): 

44 return BirdbrainFinchOutput.reset_encoders(self.device) 

45 

46 def light(self, side): 

47 return BirdbrainFinchInput.light(self.device, side) 

48 

49 def distance(self): 

50 return BirdbrainFinchInput.distance(self.device) 

51 

52 def line(self, side): 

53 return BirdbrainFinchInput.line(self.device, side) 

54 

55 def encoder(self, side): 

56 return BirdbrainFinchInput.encoder(self.device, side) 

57 

58 def orientation(self): 

59 return BirdbrainFinchInput.orientation(self.device) 

60 

61 def acceleration(self): 

62 return BirdbrainFinchInput.acceleration(self.device) 

63 

64 def compass(self): 

65 return BirdbrainFinchInput.compass(self.device) 

66 

67 def magnetometer(self): 

68 return BirdbrainFinchInput.magnetometer(self.device) 

69 

70 getAcceleration = acceleration 

71 setBeak = beak 

72 getCompass = compass 

73 getDistance = distance 

74 getEncoder = encoder 

75 getLight = light 

76 getLine = line 

77 getMagnetometer = magnetometer 

78 setMotors = motors 

79 setMove = move 

80 getOrientation = orientation 

81 resetEncoders = reset_encoders 

82 setTail = tail 

83 setTurn = turn