diff --git a/test/experiments/prcxi.json b/test/experiments/prcxi.json index faf06bb..93cd864 100644 --- a/test/experiments/prcxi.json +++ b/test/experiments/prcxi.json @@ -16,13 +16,13 @@ "_resource_child_name": "PRCXI_Deck", "_resource_type": "unilabos.devices.liquid_handling.prcxi.prcxi:PRCXI9300Deck" }, - "host": "192.168.3.9", + "host": "10.181.102.13", "port": 9999, "timeout": 10.0, "axis": "Right", "channel_num": 1, "setup": false, - "debug": true, + "debug": false, "simulator": false, "matrix_id": "fd383e6d-2d0e-40b5-9c01-1b2870b1f1b1" }, diff --git a/unilabos/devices/liquid_handling/prcxi/deck.json b/unilabos/devices/liquid_handling/prcxi/deck.json index 4025b26..7a97961 100644 --- a/unilabos/devices/liquid_handling/prcxi/deck.json +++ b/unilabos/devices/liquid_handling/prcxi/deck.json @@ -5,9 +5,18 @@ "sample_id": null, "children": [ "HPLCPlateT1", + "container_for_nothing1", + "container_for_nothing2", "trash", + "container_for_nothing3", + "container_for_nothing", + "container_for_nothing4", "RackT8", - "PlateT11" + "container_for_nothing5", + "container_for_nothing6", + "PlateT11", + "container_for_nothing7", + "container_for_nothing8" ], "parent": "lh_PRCXI_Deck", "type": "deck", @@ -4007,6 +4016,68 @@ "liquid_history": [] } }, + { + "id": "container_for_nothing1", + "name": "container_for_nothing1", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, + { + "id": "container_for_nothing2", + "name": "container_for_nothing2", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, { "id": "trash", "name": "trash", @@ -4048,6 +4119,99 @@ } } }, + { + "id": "container_for_nothing3", + "name": "container_for_nothing3", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, + { + "id": "container_for_nothing", + "name": "container_for_nothing", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, + { + "id": "container_for_nothing4", + "name": "container_for_nothing4", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, { "id": "RackT8", "name": "RackT8", @@ -8118,6 +8282,68 @@ "pending_tip": null } }, + { + "id": "container_for_nothing5", + "name": "container_for_nothing5", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, + { + "id": "container_for_nothing6", + "name": "container_for_nothing6", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, { "id": "PlateT11", "name": "PlateT11", @@ -13241,5 +13467,67 @@ null ] } + }, + { + "id": "container_for_nothing7", + "name": "container_for_nothing7", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} + }, + { + "id": "container_for_nothing8", + "name": "container_for_nothing8", + "sample_id": null, + "children": [], + "parent": "PRCXI_Deck", + "type": "plate", + "class": "", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "config": { + "type": "PRCXI9300Container", + "size_x": 50, + "size_y": 50, + "size_z": 10, + "rotation": { + "x": 0, + "y": 0, + "z": 0, + "type": "Rotation" + }, + "category": "plate", + "model": null, + "barcode": null, + "ordering": {} + }, + "data": {} } ] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/prcxi.py b/unilabos/devices/liquid_handling/prcxi/prcxi.py index b8e0e53..3e791a1 100644 --- a/unilabos/devices/liquid_handling/prcxi/prcxi.py +++ b/unilabos/devices/liquid_handling/prcxi/prcxi.py @@ -464,7 +464,7 @@ class PRCXI9300Backend(LiquidHandlerBackend): # 检查trash # if ops[0].resource.name == "trash": - + PlateNo = ops[0].resource.parent.children.index(ops[0].resource) + 1 step = self.api_client.UnLoad( @@ -1225,24 +1225,24 @@ if __name__ == "__main__": } }) - container_for_nothing = PRCXI9300Container(name="container_for_nothing", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()) + # container_for_nothing = PRCXI9300Container(name="container_for_nothing", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()) deck.assign_child_resource(plate1, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing1", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing2", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) deck.assign_child_resource(trash, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing3", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing4", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) deck.assign_child_resource(plate8, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing5", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing6", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) deck.assign_child_resource(plate11, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(container_for_nothing, location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing7", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) + deck.assign_child_resource(PRCXI9300Container(name="container_for_nothing8", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()), location=Coordinate(0, 0, 0)) handler = PRCXI9300Handler(deck=deck, host="10.181.102.13", port=9999, - timeout=10.0, setup=False, debug=True, + timeout=10.0, setup=False, debug=False, matrix_id="fd383e6d-2d0e-40b5-9c01-1b2870b1f1b1", channel_num=1) @@ -1262,6 +1262,7 @@ if __name__ == "__main__": print(plate11.get_well(0).tracker.get_used_volume()) asyncio.run(handler.create_protocol(protocol_name="Test Protocol")) # Initialize the backend and setup the connection + print(plate8.children[3]) asyncio.run(handler.pick_up_tips([plate8.children[3]],[0])) asyncio.run(handler.aspirate([plate11.children[0]],[10], [0])) asyncio.run(handler.dispense([plate1.children[3]],[10],[0]))