Files
Uni-Lab-OS/unilabos/resources/container.py
2025-06-15 12:51:37 +08:00

61 lines
1.7 KiB
Python

import json
from unilabos_msgs.msg import Resource
from unilabos.ros.msgs.message_converter import convert_from_ros_msg
class RegularContainer(object):
# 第一个参数必须是id传入
# noinspection PyShadowingBuiltins
def __init__(self, id: str, data: dict = None):
self.id = id
self.ulr_resource = Resource()
self.ulr_resource_data = data
@property
def ulr_resource_data(self):
return json.loads(self.ulr_resource.data) if self.ulr_resource.data else {}
@ulr_resource_data.setter
def ulr_resource_data(self, value: dict):
self.ulr_resource.data = json.dumps(value)
@property
def liquid_type(self):
return self.ulr_resource_data.get("liquid_type", None)
@liquid_type.setter
def liquid_type(self, value: str):
if value is not None:
self.ulr_resource_data["liquid_type"] = value
else:
self.ulr_resource_data.pop("liquid_type", None)
@property
def liquid_volume(self):
return self.ulr_resource_data.get("liquid_volume", None)
@liquid_volume.setter
def liquid_volume(self, value: float):
if value is not None:
self.ulr_resource_data["liquid_volume"] = value
else:
self.ulr_resource_data.pop("liquid_volume", None)
def get_ulr_resource(self) -> Resource:
"""
获取UlrResource对象
:return: UlrResource对象
"""
return self.ulr_resource
def get_ulr_resource_as_dict(self) -> Resource:
"""
获取UlrResource对象
:return: UlrResource对象
"""
return convert_from_ros_msg(self.ulr_resource)
def __str__(self):
return f"{self.id}"