Skip to content

Commit

Permalink
Add water temperature property
Browse files Browse the repository at this point in the history
  • Loading branch information
sindrehan committed May 29, 2024
1 parent 2a20a40 commit e8f1a45
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
13 changes: 13 additions & 0 deletions blueye/sdk/drone.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,3 +497,16 @@ def ping(self, timeout: float = 1.0):
Raises a ResponseTimeout exception if the drone does not respond within the timeout period.
"""
self._req_rep_client.ping(timeout)

@property
def water_temperature(self) -> Optional[float]:
"""Get the water temperature in degrees Celsius
*Returns*:
* temperature (float): The water temperature in degrees Celsius
"""
water_temperature_tel = self.telemetry.get(blueye.protocol.WaterTemperatureTel)
if water_temperature_tel is None:
return None
return water_temperature_tel.temperature.value
12 changes: 12 additions & 0 deletions tests/test_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,3 +288,15 @@ def test_get_deserializer(self, mocked_drone):
mocked_drone._telemetry_watcher._state[bp.DepthTel] = depth_tel_serialized
assert mocked_drone.telemetry.get(bp.DepthTel, deserialize=True) == depth_tel
assert mocked_drone.telemetry.get(bp.DepthTel, deserialize=False) == depth_tel_serialized


def test_water_temperature_returns_expected_value(mocked_drone):
water_temp = 10.5
water_temp_tel = bp.WaterTemperatureTel(temperature={"value": water_temp})
water_temp_tel_serialized = bp.WaterTemperatureTel.serialize(water_temp_tel)
mocked_drone._telemetry_watcher._state[bp.WaterTemperatureTel] = water_temp_tel_serialized
assert mocked_drone.water_temperature == water_temp


def test_water_temperature_returns_none_on_missing_telemetry(mocked_drone):
assert mocked_drone.water_temperature is None

0 comments on commit e8f1a45

Please sign in to comment.