mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-14 13:14:39 +00:00
Fix workstation startup
Update registry
This commit is contained in:
@@ -134,3 +134,5 @@ WORKFLOW_STEP_IDS = {
|
||||
"observe": ""
|
||||
}
|
||||
}
|
||||
|
||||
LOCATION_MAPPING = {}
|
||||
@@ -54,7 +54,7 @@ workstation.bioyond_dispensing_station:
|
||||
percent_90_3_target_weigh: ''
|
||||
speed: ''
|
||||
temperature: ''
|
||||
handles: []
|
||||
handles: {}
|
||||
result:
|
||||
return_info: return_info
|
||||
schema:
|
||||
@@ -174,7 +174,7 @@ workstation.bioyond_dispensing_station:
|
||||
target_weigh: ''
|
||||
temperature: ''
|
||||
volume: ''
|
||||
handles: []
|
||||
handles: {}
|
||||
result:
|
||||
return_info: return_info
|
||||
schema:
|
||||
@@ -230,12 +230,23 @@ workstation.bioyond_dispensing_station:
|
||||
title: DispenStationSolnPrep
|
||||
type: object
|
||||
type: DispenStationSolnPrep
|
||||
module: unilabos.devices.workstation.bioyond_studio.dispensing_station:BioyondDispendsingStation
|
||||
module: unilabos.devices.workstation.bioyond_studio.dispensing_station:BioyondDispensingStation
|
||||
status_types: {}
|
||||
type: python
|
||||
config_info: []
|
||||
description: ''
|
||||
handles: []
|
||||
icon: ''
|
||||
init_param_schema: {}
|
||||
init_param_schema:
|
||||
config:
|
||||
properties:
|
||||
config:
|
||||
type: string
|
||||
required:
|
||||
- config
|
||||
type: object
|
||||
data:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
version: 1.0.0
|
||||
|
||||
@@ -1361,8 +1361,7 @@ laiyu_liquid:
|
||||
mix_liquid_height: 0.0
|
||||
mix_rate: 0
|
||||
mix_stage: ''
|
||||
mix_times:
|
||||
- 0
|
||||
mix_times: 0
|
||||
mix_vol: 0
|
||||
none_keys:
|
||||
- ''
|
||||
@@ -1492,11 +1491,9 @@ laiyu_liquid:
|
||||
mix_stage:
|
||||
type: string
|
||||
mix_times:
|
||||
items:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
type: array
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
mix_vol:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
|
||||
@@ -3994,8 +3994,7 @@ liquid_handler:
|
||||
mix_liquid_height: 0.0
|
||||
mix_rate: 0
|
||||
mix_stage: ''
|
||||
mix_times:
|
||||
- 0
|
||||
mix_times: 0
|
||||
mix_vol: 0
|
||||
none_keys:
|
||||
- ''
|
||||
@@ -4151,11 +4150,9 @@ liquid_handler:
|
||||
mix_stage:
|
||||
type: string
|
||||
mix_times:
|
||||
items:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
type: array
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
mix_vol:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
@@ -5015,8 +5012,7 @@ liquid_handler.biomek:
|
||||
mix_liquid_height: 0.0
|
||||
mix_rate: 0
|
||||
mix_stage: ''
|
||||
mix_times:
|
||||
- 0
|
||||
mix_times: 0
|
||||
mix_vol: 0
|
||||
none_keys:
|
||||
- ''
|
||||
@@ -5159,11 +5155,9 @@ liquid_handler.biomek:
|
||||
mix_stage:
|
||||
type: string
|
||||
mix_times:
|
||||
items:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
type: array
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
mix_vol:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
@@ -7807,8 +7801,7 @@ liquid_handler.prcxi:
|
||||
mix_liquid_height: 0.0
|
||||
mix_rate: 0
|
||||
mix_stage: ''
|
||||
mix_times:
|
||||
- 0
|
||||
mix_times: 0
|
||||
mix_vol: 0
|
||||
none_keys:
|
||||
- ''
|
||||
@@ -7937,11 +7930,9 @@ liquid_handler.prcxi:
|
||||
mix_stage:
|
||||
type: string
|
||||
mix_times:
|
||||
items:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
type: array
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
type: integer
|
||||
mix_vol:
|
||||
maximum: 2147483647
|
||||
minimum: -2147483648
|
||||
|
||||
@@ -4,11 +4,11 @@ reaction_station.bioyond:
|
||||
- reaction_station_bioyond
|
||||
class:
|
||||
action_value_mappings:
|
||||
auto-add_material:
|
||||
auto-append_to_workflow_sequence:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_data: null
|
||||
web_workflow_name: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
@@ -18,22 +18,21 @@ reaction_station.bioyond:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_data:
|
||||
type: object
|
||||
web_workflow_name:
|
||||
type: string
|
||||
required:
|
||||
- material_data
|
||||
- web_workflow_name
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: add_material参数
|
||||
title: append_to_workflow_sequence参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_90_10_vial_feeding_task:
|
||||
auto-clear_workflows:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
task_data: null
|
||||
goal_default: {}
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
@@ -42,470 +41,13 @@ reaction_station.bioyond:
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
task_data:
|
||||
type: string
|
||||
required:
|
||||
- task_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_90_10_vial_feeding_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_batch_90_10_vial_feeding_task:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
batch_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
batch_data:
|
||||
type: string
|
||||
required:
|
||||
- batch_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_batch_90_10_vial_feeding_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_batch_diamine_solution_task:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
batch_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
batch_data:
|
||||
type: string
|
||||
required:
|
||||
- batch_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_batch_diamine_solution_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_diamine_solution_task:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
solution_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
solution_data:
|
||||
type: string
|
||||
required:
|
||||
- solution_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_diamine_solution_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_order:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
parameters: null
|
||||
task_name: null
|
||||
workflow_name: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
parameters:
|
||||
type: object
|
||||
task_name:
|
||||
type: string
|
||||
workflow_name:
|
||||
type: string
|
||||
required:
|
||||
- workflow_name
|
||||
- task_name
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_order参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-create_resource:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
resource_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
resource_data:
|
||||
type: string
|
||||
required:
|
||||
- resource_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_resource参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-delete_material:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_data:
|
||||
type: string
|
||||
required:
|
||||
- material_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: delete_material参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-device_operation:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
device_id: null
|
||||
operation: null
|
||||
parameters: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
device_id:
|
||||
type: string
|
||||
operation:
|
||||
type: string
|
||||
parameters:
|
||||
type: object
|
||||
required:
|
||||
- device_id
|
||||
- operation
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: device_operation参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-dispensing_material_inbound:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_data:
|
||||
type: string
|
||||
required:
|
||||
- material_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: dispensing_material_inbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-dispensing_material_outbound:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_data:
|
||||
type: string
|
||||
required:
|
||||
- material_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: dispensing_material_outbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-drip_back:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
assign_material_name: Reactor
|
||||
temperature: 25.0
|
||||
time: '0'
|
||||
torque_variation: '1'
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
assign_material_name:
|
||||
default: Reactor
|
||||
type: string
|
||||
temperature:
|
||||
default: 25.0
|
||||
type: number
|
||||
time:
|
||||
default: '0'
|
||||
type: string
|
||||
torque_variation:
|
||||
default: '1'
|
||||
type: string
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: drip_back参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-execute_bioyond_sync_workflow:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
parameters: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
parameters:
|
||||
type: object
|
||||
required:
|
||||
- parameters
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: execute_bioyond_sync_workflow参数
|
||||
type: object
|
||||
type: UniLabJsonCommandAsync
|
||||
auto-execute_bioyond_update_workflow:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
parameters: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
parameters:
|
||||
type: object
|
||||
required:
|
||||
- parameters
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: execute_bioyond_update_workflow参数
|
||||
type: object
|
||||
type: UniLabJsonCommandAsync
|
||||
auto-liquid_feeding_beaker:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_name: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_name:
|
||||
default: ''
|
||||
type: string
|
||||
volume:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: liquid_feeding_beaker参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-liquid_feeding_solvents:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_name: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_name:
|
||||
default: ''
|
||||
type: string
|
||||
volume:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: liquid_feeding_solvents参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-liquid_feeding_titration:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_name: ''
|
||||
time: '120'
|
||||
titration_type: '1'
|
||||
torque_variation: '2'
|
||||
volume: ''
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_name:
|
||||
default: ''
|
||||
type: string
|
||||
time:
|
||||
default: '120'
|
||||
type: string
|
||||
titration_type:
|
||||
default: '1'
|
||||
type: string
|
||||
torque_variation:
|
||||
default: '2'
|
||||
type: string
|
||||
volume:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: liquid_feeding_titration参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-liquid_feeding_vials_non_titration:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_name: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_name:
|
||||
default: ''
|
||||
type: string
|
||||
volume:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: liquid_feeding_vials_non_titration参数
|
||||
title: clear_workflows参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-load_bioyond_data_from_file:
|
||||
@@ -533,74 +75,11 @@ reaction_station.bioyond:
|
||||
title: load_bioyond_data_from_file参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-material_inbound:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
location_name: null
|
||||
material_id: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
location_name:
|
||||
type: string
|
||||
material_id:
|
||||
type: string
|
||||
required:
|
||||
- material_id
|
||||
- location_name
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: material_inbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-material_outbound:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
location_name: null
|
||||
material_id: null
|
||||
quantity: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
location_name:
|
||||
type: string
|
||||
material_id:
|
||||
type: string
|
||||
quantity:
|
||||
type: integer
|
||||
required:
|
||||
- material_id
|
||||
- location_name
|
||||
- quantity
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: material_outbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-merge_workflow_with_parameters:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
name: null
|
||||
workflows: null
|
||||
json_str: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
@@ -610,15 +89,10 @@ reaction_station.bioyond:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
name:
|
||||
json_str:
|
||||
type: string
|
||||
workflows:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
- workflows
|
||||
- json_str
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
@@ -626,31 +100,6 @@ reaction_station.bioyond:
|
||||
title: merge_workflow_with_parameters参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-order_query:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
query_data: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
query_data:
|
||||
type: string
|
||||
required:
|
||||
- query_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: order_query参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-post_init:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
@@ -676,33 +125,11 @@ reaction_station.bioyond:
|
||||
title: post_init参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-reactor_taken_in:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default: {}
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reactor_taken_in参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-reactor_taken_out:
|
||||
auto-process_web_workflows:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
order_id: ''
|
||||
preintake_id: ''
|
||||
json_str: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
@@ -712,18 +139,15 @@ reaction_station.bioyond:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
order_id:
|
||||
default: ''
|
||||
json_str:
|
||||
type: string
|
||||
preintake_id:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
required:
|
||||
- json_str
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reactor_taken_out参数
|
||||
title: process_web_workflows参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-reset_workstation:
|
||||
@@ -747,11 +171,11 @@ reaction_station.bioyond:
|
||||
title: reset_workstation参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-sample_waste_removal:
|
||||
auto-resource_tree_add:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
waste_data: null
|
||||
resources: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
@@ -761,119 +185,42 @@ reaction_station.bioyond:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
waste_data:
|
||||
resources:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- resources
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: resource_tree_add参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-set_workflow_sequence:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
json_str: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
json_str:
|
||||
type: string
|
||||
required:
|
||||
- waste_data
|
||||
- json_str
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: sample_waste_removal参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-solid_feeding_vials:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
material_name: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_name:
|
||||
default: ''
|
||||
type: string
|
||||
volume:
|
||||
default: ''
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: solid_feeding_vials参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-start_scheduler:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default: {}
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: start_scheduler参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-stock_material:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
location: null
|
||||
material_id: null
|
||||
quantity: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
location:
|
||||
type: string
|
||||
material_id:
|
||||
type: string
|
||||
quantity:
|
||||
type: integer
|
||||
required:
|
||||
- material_id
|
||||
- location
|
||||
- quantity
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: stock_material参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-stop_scheduler:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default: {}
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: stop_scheduler参数
|
||||
title: set_workflow_sequence参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-transfer_resource_to_another:
|
||||
@@ -1064,33 +411,6 @@ reaction_station.bioyond:
|
||||
title: transfer_resource_to_another参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
auto-validate_workflow_parameters:
|
||||
feedback: {}
|
||||
goal: {}
|
||||
goal_default:
|
||||
workflows: null
|
||||
handles: {}
|
||||
placeholder_keys: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: ''
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
workflows:
|
||||
items:
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- workflows
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: validate_workflow_parameters参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
bioyond_sync:
|
||||
feedback: {}
|
||||
goal:
|
||||
@@ -1407,11 +727,8 @@ reaction_station.bioyond:
|
||||
module: unilabos.devices.workstation.bioyond_studio.station:BioyondWorkstation
|
||||
protocol_type: []
|
||||
status_types:
|
||||
all_workflows: dict
|
||||
bioyond_status: dict
|
||||
device_list: dict
|
||||
scheduler_status: dict
|
||||
station_info: dict
|
||||
workflow_parameter_template: dict
|
||||
workstation_status: dict
|
||||
type: python
|
||||
config_info: []
|
||||
@@ -1431,24 +748,15 @@ reaction_station.bioyond:
|
||||
type: object
|
||||
data:
|
||||
properties:
|
||||
all_workflows:
|
||||
type: object
|
||||
bioyond_status:
|
||||
type: object
|
||||
device_list:
|
||||
type: object
|
||||
scheduler_status:
|
||||
type: object
|
||||
station_info:
|
||||
type: object
|
||||
workflow_parameter_template:
|
||||
type: object
|
||||
workstation_status:
|
||||
type: object
|
||||
required:
|
||||
- station_info
|
||||
- bioyond_status
|
||||
- workflow_parameter_template
|
||||
- scheduler_status
|
||||
- device_list
|
||||
- all_workflows
|
||||
- workstation_status
|
||||
type: object
|
||||
version: 1.0.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,14 @@
|
||||
import importlib
|
||||
import inspect
|
||||
import json
|
||||
import os.path
|
||||
import traceback
|
||||
from typing import Union, Any, Dict, List, Tuple
|
||||
import networkx as nx
|
||||
from pylabrobot.resources import ResourceHolder
|
||||
from unilabos_msgs.msg import Resource
|
||||
|
||||
from unilabos.config.config import BasicConfig
|
||||
from unilabos.resources.container import RegularContainer
|
||||
from unilabos.resources.itemized_carrier import ItemizedCarrier
|
||||
from unilabos.ros.msgs.message_converter import convert_to_ros_msg
|
||||
@@ -45,6 +47,29 @@ def canonicalize_nodes_data(
|
||||
if node.get("label") is not None:
|
||||
node_id = node.pop("label")
|
||||
node["id"] = node["name"] = node_id
|
||||
if not isinstance(node.get("config"), dict):
|
||||
node["config"] = {}
|
||||
if not node.get("type"):
|
||||
node["type"] = "device"
|
||||
print_status(f"Warning: Node {node.get('id', 'unknown')} missing 'type', defaulting to 'device'", "warning")
|
||||
if not node.get("name"):
|
||||
node["name"] = node.get("id")
|
||||
print_status(f"Warning: Node {node.get('id', 'unknown')} missing 'name', defaulting to {node['name']}", "warning")
|
||||
if not isinstance(node.get("position"), dict):
|
||||
node["position"] = {"position": {}}
|
||||
x = node.pop("x", None)
|
||||
if x is not None:
|
||||
node["position"]["position"]["x"] = x
|
||||
y = node.pop("y", None)
|
||||
if y is not None:
|
||||
node["position"]["position"]["y"] = y
|
||||
z = node.pop("z", None)
|
||||
if z is not None:
|
||||
node["position"]["position"]["z"] = z
|
||||
for k in list(node.keys()):
|
||||
if k not in ["id", "uuid", "name", "description", "schema", "model", "icon", "parent_uuid", "parent", "type", "class", "position", "config", "data"]:
|
||||
v = node.pop(k)
|
||||
node["config"][k] = v
|
||||
|
||||
# 第二步:处理parent_relation
|
||||
id2idx = {node["id"]: idx for idx, node in enumerate(nodes)}
|
||||
@@ -302,6 +327,10 @@ def read_graphml(graphml_file: str) -> tuple[nx.Graph, ResourceTreeSet, List[Dic
|
||||
"nodes": [node.res_content.model_dump(by_alias=True) for node in resource_tree_set.all_nodes],
|
||||
"links": standardized_links,
|
||||
}
|
||||
dump_json_path = os.path.join(BasicConfig.working_dir, os.path.basename(graphml_file).rsplit(".")[0] + ".json")
|
||||
with open(dump_json_path, "w", encoding="utf-8") as f:
|
||||
f.write(json.dumps(graph_data, indent=4, ensure_ascii=False))
|
||||
print_status(f"GraphML converted to JSON and saved to {dump_json_path}", "info")
|
||||
physical_setup_graph = nx.node_link_graph(graph_data, link="links", multigraph=False)
|
||||
handle_communications(physical_setup_graph)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user