About serializing the “state”.
I agree, the issue is that we have drawn the line for what is “static” or “mutable” in different places.
In my case, the only static things are the shapes of labware (tips, racks, plates, etc), the shape of the deck (and any slots in it), and the parameters of tools, which you could get from datasheets. Then, all of the mutable stuff exists in the instance of a deck: locations, volumes, etc.
Given this, I’d ask how to get a file for the “whole state”, that can be linked back (hopefully easily) to the resources in the “regular” serialization. I have only seen hints of this in the code. Are there docs for it i can read?
Hmm, this is part of the life of well-plates too, and can be said of many other kinds of plastic labware.
A Tube
is considered to be a resource, even though it does the same things that a Tip
does: holds liquid, can be moved around, can be placed in a “spot”, can be discarded, will fit differently in different tip racks, and maybe more stuff. Perhaps the Tip
should be a Container
even.
As a side note, I’d also argue that nothing in the “deck” is fixed, it is actually the part that is meant to change. Consider, for example, moving resources around: all it takes is a gripper, or a person, to move a plate as part of a protocol.
The only things that are fixed are wells in a plate. Or are they…?
Yes I will PR.
And yes, granted, it sounds strange to allow Wells to move around, but i see it as an exception in a more general case.
What will happen when the robot gains a CO2 laser tool, and cuts out wells from the plate (!?).
Ok, I understand. What I would like to have in PLR is a property that saves the abstract parameters inside ItemizedResource
, and makes the information available by serialization. You already have some of these “abstract” parameters as properties (num_items_x
and num_items_y
) but most are missing.
What we have implemented is regular labware, and then added a “CUSTOM” type, which has spots for containers in arbitrary locations. I could use this for PLR resources instead of my usual types, which would make things simpler at the cost of making PLR decks a second-class citizen in the UI (for now).