Skip to content

Commit 47e6f76

Browse files
committed
debuged resource tracking
1 parent 2df405a commit 47e6f76

4 files changed

Lines changed: 516 additions & 68 deletions

File tree

src/opentrons_resources.py

Lines changed: 88 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def load_labware(self, command, ot_log):
8080
result = command.get('result', {})
8181

8282
#get labware id
83-
location = params.get(location, {})
83+
location = params.get('location', {})
8484
#labware TYPE
8585
load_name = params.get('loadName', 'unknown')
8686
#string number 1-11
@@ -115,29 +115,34 @@ def load_labware(self, command, ot_log):
115115
if slot_name in self.deck_slots:
116116
slot_resource = self.deck_slots[slot_name]
117117
try:
118-
#check if slot already has labware (child)
119-
# query for existing labware in slot
118+
# #check if slot already has labware (child)
119+
# # query for existing labware in slot
120120

121-
# Grid resource if tip rack
121+
# # Grid resource if tip rack
122122
if 'tip' in load_name.lower():
123123
#tip rack always 8x12 grid
124-
labware_resource = Grid(
125-
resource_name = f"{self.node_name}_{display_name}_{slot_name}",
126-
resource_class = "tip_rack",
127-
rows = 8,
128-
columns = 12,
129-
attributes = {
130-
"ot2_labware_id": labware_id,
131-
"load_name": load_name,
132-
"slot": slot_name
133-
}
134-
)
135-
labware_resource = self.client.add_resource(labware_resource)
136-
137-
138-
#set as child of the deck slot
139-
self.client.set_child(resource=slot_resource, key="labware", child=labware_resource)
140-
self.labware_id_to_resource[labware_id] = labware_resource
124+
# labware_resource = Grid(
125+
# resource_name = f"{self.node_name}_{display_name}_{slot_name}",
126+
# resource_class = "tip_rack",
127+
# rows = 8,
128+
# columns = 12,
129+
# attributes = {
130+
# "ot2_labware_id": labware_id,
131+
# "load_name": load_name,
132+
# "slot": slot_name
133+
# }
134+
# )
135+
# labware_resource = self.client.add_resource(labware_resource)
136+
137+
labware_resource = self.client.create_resource_from_template(
138+
template_name = load_name,
139+
resource_name = labware_id
140+
)
141+
142+
143+
#set as child of the deck slot
144+
self.client.set_child(resource=slot_resource, key="labware", child=labware_resource)
145+
self.labware_id_to_resource[labware_id] = labware_resource
141146

142147
elif 'plate' in load_name.lower() or 'well' in load_name.loawer():
143148
#plate as grid, either 96 or 384
@@ -149,34 +154,44 @@ def load_labware(self, command, ot_log):
149154
else:
150155
rows, cols = 8, 12 #96 well by default
151156

152-
labware_resource = Grid(
153-
resource_name=f"{self.node_name}_{display_name}_{slot_name}",
154-
resource_class="plate",
155-
rows=rows,
156-
columns=cols,
157-
attributes={
158-
"ot2_labware_id": labware_id,
159-
"load_name": load_name,
160-
"slot": slot_name
161-
}
162-
)
163-
labware_resource = self.client.add_resource(labware_resource)
157+
# labware_resource = Grid(
158+
# resource_name=f"{self.node_name}_{display_name}_{slot_name}",
159+
# resource_class="plate",
160+
# rows=rows,
161+
# columns=cols,
162+
# attributes={
163+
# "ot2_labware_id": labware_id,
164+
# "load_name": load_name,
165+
# "slot": slot_name
166+
# }
167+
# )
168+
# labware_resource = self.client.add_resource(labware_resource)
169+
labware_resource = self.client.create_resource_from_template(
170+
template_name = load_name,
171+
resource_name = labware_id
172+
)
173+
164174
self.client.set_child(resource=slot_resource, key="labware", child=labware_resource)
165175
self.labware_id_to_resource[labware_id] = labware_resource
166176

167177
else:
168178
#TODO: add addional labware types, tuberacks and modules etc, generic container for now
169-
labware_resource = Container(
170-
resource_name=f"{self.node_name}_{display_name}_{slot_name}",
171-
resource_class="labware",
172-
capacity=100, # Generic capacity
173-
attributes={
174-
"ot2_labware_id": labware_id,
175-
"load_name": load_name,
176-
"slot": slot_name
177-
}
178-
)
179-
labware_resource = self.client.add_resource(labware_resource)
179+
# labware_resource = Container(
180+
# resource_name=f"{self.node_name}_{display_name}_{slot_name}",
181+
# resource_class="labware",
182+
# capacity=100, # Generic capacity
183+
# attributes={
184+
# "ot2_labware_id": labware_id,
185+
# "load_name": load_name,
186+
# "slot": slot_name
187+
# }
188+
# )
189+
190+
# labware_resource = self.client.add_resource(labware_resource)
191+
labware_resource = self.client.create_resource_from_template(
192+
template_name = load_name,
193+
resource_name = labware_id
194+
)
180195
self.client.set_child(resource=slot_resource, key="labware", child=labware_resource)
181196
self.labware_id_to_resource[labware_id] = labware_resource
182197

@@ -200,32 +215,38 @@ def load_pipette(self, command, ot_log):
200215
'pipette_name': pipette_name
201216
}
202217

203-
#TODO: pipette = Pool?
218+
# #TODO: pipette = Pool?
204219
if mount in self.pipette_slots:
205220
mount_resource = self.pipette_slots[mount]
206221

222+
207223
try:
208-
if 'p20' in pipette_name.lower():
209-
capacity = 20.0
210-
elif 'p300' in pipette_name.lower():
211-
capacity = 300.0
212-
elif 'p1000' in pipette_name.lower():
213-
capacity = 1000.0
214-
#TODO: error handling
215-
else:
216-
capacity = 0.0
224+
# if 'p20' in pipette_name.lower():
225+
# capacity = 20.0
226+
# elif 'p300' in pipette_name.lower():
227+
# capacity = 300.0
228+
# elif 'p1000' in pipette_name.lower():
229+
# capacity = 1000.0
230+
# #TODO: error handling
231+
# else:
232+
# capacity = 0.0
217233

218-
pipette_resource = Pool(
219-
resource_name=f"{self.node_name}_{pipette_name}_{mount}",
220-
resource_class="pipette",
221-
capacity=capacity,
222-
attributes={
223-
"ot2_pipette_id": pipette_id,
224-
"pipette_name": pipette_name,
225-
"mount": mount
226-
}
227-
)
228-
pipette_resource = self.client.add_resource(pipette_resource)
234+
# pipette_resource = Pool(
235+
# resource_name=f"{self.node_name}_{pipette_name}_{mount}",
236+
# resource_class="pipette",
237+
# capacity=capacity,
238+
# attributes={
239+
# "ot2_pipette_id": pipette_id,
240+
# "pipette_name": pipette_name,
241+
# "mount": mount
242+
# }
243+
# )
244+
pipette_resource = self.client.create_resource_from_template(
245+
template_name = pipette_name,
246+
resource_name = mount_resource
247+
)
248+
249+
# pipette_resource = self.client.add_resource(pipette_resource) #TODO: create_resource_from_template
229250
self.client.set_child(resource=mount_resource, key='pipette', child=pipette_resource)
230251
self.pipette_id_to_resource[pipette_id] = pipette_resource
231252

@@ -286,7 +307,7 @@ def aspirate(self, command, ot_log):
286307

287308
params = command.get('params', {})
288309

289-
labware_id = params.get('labwareID')
310+
labware_id = params.get('labwareId')
290311
well_name = params.get('wellName')
291312
volume = params.get('volume', 0.0)
292313

@@ -323,7 +344,7 @@ def dispense(self, command, ot_log):
323344
# For Grid resources (plates), try to get the sample/liquid at this well
324345
if isinstance(dest_labware, Grid):
325346
try:
326-
grid_key = self._well_name_to_grid_key(well_name)
347+
grid_key = self.well_name_to_grid_key(well_name)
327348
well_contents = dest_labware.get_child(grid_key)
328349

329350
# If the well contains a Consumable resource, increase its quantity

0 commit comments

Comments
 (0)