diff --git a/pyproject.toml b/pyproject.toml index 677523f..aef011f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ classifiers = [ "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development :: Libraries", ] -dependencies = ["alitra", "isar>=1.24.4"] +dependencies = ["alitra", "isar>=1.25.6"] dynamic = ["version"] [project.urls] diff --git a/requirements.txt b/requirements.txt index 2273fb5..dd6cab7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -83,7 +83,7 @@ idna==3.10 # requests injector==0.22.0 # via isar -isar==1.25.3 +isar==1.25.6 # via isar-robot (pyproject.toml) isodate==0.7.2 # via diff --git a/src/isar_robot/config/settings.env b/src/isar_robot/config/settings.env index 5608545..5afff0b 100644 --- a/src/isar_robot/config/settings.env +++ b/src/isar_robot/config/settings.env @@ -1,2 +1,2 @@ -CAPABILITIES = '["take_thermal_image", "take_image", "take_video", "take_thermal_video", "record_audio", "localize", "return_to_home", "docking_procedure"]' +CAPABILITIES = '["take_thermal_image", "take_image", "take_video", "take_thermal_video", "record_audio", "localize", "return_to_home", "docking_procedure", "take_gas_measurement"]' ROBOT_MODEL = Robot diff --git a/src/isar_robot/inspections.py b/src/isar_robot/inspections.py index 7d387c7..1e5a5d1 100644 --- a/src/isar_robot/inspections.py +++ b/src/isar_robot/inspections.py @@ -16,6 +16,8 @@ ThermalVideoMetadata, Video, VideoMetadata, + GasMeasurement, + GasMeasurementMetadata, ) from robot_interface.models.mission.task import ( RecordAudio, @@ -23,6 +25,7 @@ TakeThermalImage, TakeThermalVideo, TakeVideo, + TakeGasMeasurement, ) from isar_robot import telemetry @@ -115,6 +118,25 @@ def create_audio(task_actions: RecordAudio): return Audio(metadata=audio_metadata, id=task_actions.inspection_id, data=data) +def create_gas_measurement(task_actions: TakeGasMeasurement): + now: datetime = datetime.now(timezone.utc) + gas_measurement_metadata: GasMeasurementMetadata = GasMeasurementMetadata( + start_time=now, + pose=telemetry.get_pose(), + file_type="wav", + ) + gas_measurement_metadata.tag_id = task_actions.tag_id + gas_measurement_metadata.analysis_type = ["test1", "test2"] + gas_measurement_metadata.additional = task_actions.metadata + + filepath: Path = random.choice(list(example_thermal_videos.iterdir())) + data = _read_data_from_file(filepath) + + return GasMeasurement( + metadata=gas_measurement_metadata, id=task_actions.inspection_id, data=data + ) + + def _read_data_from_file(filename: Path) -> bytes: try: with open(filename, "rb") as f: diff --git a/src/isar_robot/robotinterface.py b/src/isar_robot/robotinterface.py index d3f2817..6101f1b 100644 --- a/src/isar_robot/robotinterface.py +++ b/src/isar_robot/robotinterface.py @@ -17,6 +17,7 @@ TakeThermalVideo, TakeVideo, Task, + TakeGasMeasurement, ) from robot_interface.models.robots.media import MediaConfig from robot_interface.robot_interface import RobotInterface @@ -85,6 +86,8 @@ def get_inspection(self, task: InspectionTask) -> Inspection: return inspections.create_video(task) elif type(task) is TakeThermalVideo: return inspections.create_thermal_video(task) + elif type(task) is TakeGasMeasurement: + return inspections.create_gas_measurement(task) elif type(task) is RecordAudio: return inspections.create_audio(task) else: