diff --git a/unilabos/resources/container.py b/unilabos/resources/container.py index 23b044c7..150d2a3a 100644 --- a/unilabos/resources/container.py +++ b/unilabos/resources/container.py @@ -17,7 +17,7 @@ class RegularContainer(Container): kwargs["size_z"] = 0 self.kwargs = kwargs self.state = {} - super().__init__(*args, **kwargs) + super().__init__(*args, category="container", **kwargs) def load_state(self, state: Dict[str, Any]): self.state = state diff --git a/unilabos/resources/graphio.py b/unilabos/resources/graphio.py index 28edcae4..9a26f290 100644 --- a/unilabos/resources/graphio.py +++ b/unilabos/resources/graphio.py @@ -833,11 +833,12 @@ def initialize_resource(resource_config: dict, resource_type: Any = None) -> Uni if resource_class_config["type"] == "pylabrobot": resource_plr = RESOURCE(name=resource_config["name"]) if resource_type != ResourcePLR: - r = resource_plr_to_ulab(resource_plr=resource_plr, parent_name=resource_config.get("parent", None)) - # r = resource_plr_to_ulab(resource_plr=resource_plr) - if resource_config.get("position") is not None: - r["position"] = resource_config["position"] - r = tree_to_list([r]) + tree_sets = ResourceTreeSet.from_plr_resources([resource_plr]) + # r = resource_plr_to_ulab(resource_plr=resource_plr, parent_name=resource_config.get("parent", None)) + # # r = resource_plr_to_ulab(resource_plr=resource_plr) + # if resource_config.get("position") is not None: + # r["position"] = resource_config["position"] + r = tree_sets.dump() else: r = resource_plr elif resource_class_config["type"] == "unilabos": diff --git a/unilabos/ros/nodes/resource_tracker.py b/unilabos/ros/nodes/resource_tracker.py index adfc1467..2a01b315 100644 --- a/unilabos/ros/nodes/resource_tracker.py +++ b/unilabos/ros/nodes/resource_tracker.py @@ -60,7 +60,7 @@ class ResourceDict(BaseModel): icon: str = Field(description="Resource icon", default="") parent_uuid: Optional["str"] = Field(description="Parent resource uuid", default=None) # 先设定parent_uuid parent: Optional["ResourceDict"] = Field(description="Parent resource object", default=None, exclude=True) - type: Literal["device"] | str = Field(description="Resource type") + type: Union[Literal["device"], str] = Field(description="Resource type") klass: str = Field(alias="class", description="Resource class name") position: ResourceDictPosition = Field(description="Resource position", default_factory=ResourceDictPosition) pose: ResourceDictPosition = Field(description="Resource position", default_factory=ResourceDictPosition)