mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-07 07:25:15 +00:00
Compare commits
3 Commits
9a06ef3836
...
feat/add_c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
882c33bd22 | ||
|
|
ad21644db0 | ||
|
|
9dfd58e9af |
@@ -149,6 +149,7 @@ class Registry:
|
|||||||
"res_id": "unilabos_resources", # 将当前实验室的全部物料id作为下拉框可选择
|
"res_id": "unilabos_resources", # 将当前实验室的全部物料id作为下拉框可选择
|
||||||
"device_id": "unilabos_devices", # 将当前实验室的全部设备id作为下拉框可选择
|
"device_id": "unilabos_devices", # 将当前实验室的全部设备id作为下拉框可选择
|
||||||
"parent": "unilabos_nodes", # 将当前实验室的设备/物料作为下拉框可选择
|
"parent": "unilabos_nodes", # 将当前实验室的设备/物料作为下拉框可选择
|
||||||
|
"class_name": "unilabos_class",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"test_latency": {
|
"test_latency": {
|
||||||
|
|||||||
@@ -392,9 +392,12 @@ class BaseROS2DeviceNode(Node, Generic[T]):
|
|||||||
parent_resource = self.resource_tracker.figure_resource(
|
parent_resource = self.resource_tracker.figure_resource(
|
||||||
{"name": bind_parent_id}
|
{"name": bind_parent_id}
|
||||||
)
|
)
|
||||||
for r in rts.root_nodes:
|
for r in rts.root_nodes:
|
||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
r.res_content.parent_uuid = parent_resource.unilabos_uuid
|
r.res_content.parent_uuid = parent_resource.unilabos_uuid
|
||||||
|
else:
|
||||||
|
for r in rts.root_nodes:
|
||||||
|
r.res_content.parent_uuid = self.uuid
|
||||||
|
|
||||||
if len(LIQUID_INPUT_SLOT) and LIQUID_INPUT_SLOT[0] == -1 and len(rts.root_nodes) == 1 and isinstance(rts.root_nodes[0], RegularContainer):
|
if len(LIQUID_INPUT_SLOT) and LIQUID_INPUT_SLOT[0] == -1 and len(rts.root_nodes) == 1 and isinstance(rts.root_nodes[0], RegularContainer):
|
||||||
# noinspection PyTypeChecker
|
# noinspection PyTypeChecker
|
||||||
@@ -920,7 +923,14 @@ class BaseROS2DeviceNode(Node, Generic[T]):
|
|||||||
plr_resources = tree_set.to_plr_resources()
|
plr_resources = tree_set.to_plr_resources()
|
||||||
result, parents = _handle_add(plr_resources, tree_set, additional_add_params)
|
result, parents = _handle_add(plr_resources, tree_set, additional_add_params)
|
||||||
parents: List[Optional["ResourcePLR"]] = [i for i in parents if i is not None]
|
parents: List[Optional["ResourcePLR"]] = [i for i in parents if i is not None]
|
||||||
de_dupe_parents = list(set(parents))
|
# de_dupe_parents = list(set(parents))
|
||||||
|
# Fix unhashable type error for WareHouse
|
||||||
|
de_dupe_parents = []
|
||||||
|
_seen_ids = set()
|
||||||
|
for p in parents:
|
||||||
|
if id(p) not in _seen_ids:
|
||||||
|
_seen_ids.add(id(p))
|
||||||
|
de_dupe_parents.append(p)
|
||||||
new_tree_set = ResourceTreeSet.from_plr_resources(de_dupe_parents) # 去重
|
new_tree_set = ResourceTreeSet.from_plr_resources(de_dupe_parents) # 去重
|
||||||
for tree in new_tree_set.trees:
|
for tree in new_tree_set.trees:
|
||||||
if tree.root_node.res_content.uuid_parent is None and self.node_name != "host_node":
|
if tree.root_node.res_content.uuid_parent is None and self.node_name != "host_node":
|
||||||
@@ -1565,16 +1575,16 @@ class BaseROS2DeviceNode(Node, Generic[T]):
|
|||||||
|
|
||||||
def _convert_resources_sync(self, *uuids: str) -> List["ResourcePLR"]:
|
def _convert_resources_sync(self, *uuids: str) -> List["ResourcePLR"]:
|
||||||
"""同步转换资源 UUID 为实例
|
"""同步转换资源 UUID 为实例
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
*uuids: 一个或多个资源 UUID
|
*uuids: 一个或多个资源 UUID
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
单个 UUID 时返回单个资源实例,多个 UUID 时返回资源实例列表
|
单个 UUID 时返回单个资源实例,多个 UUID 时返回资源实例列表
|
||||||
"""
|
"""
|
||||||
if not uuids:
|
if not uuids:
|
||||||
raise ValueError("至少需要提供一个 UUID")
|
raise ValueError("至少需要提供一个 UUID")
|
||||||
|
|
||||||
uuids_list = list(uuids)
|
uuids_list = list(uuids)
|
||||||
future = self._resource_clients["c2s_update_resource_tree"].call_async(SerialCommand.Request(
|
future = self._resource_clients["c2s_update_resource_tree"].call_async(SerialCommand.Request(
|
||||||
command=json.dumps(
|
command=json.dumps(
|
||||||
|
|||||||
Reference in New Issue
Block a user