Skip to content

Add PRCXI functional modules and fix Deck layout#250

Merged
q434343 merged 6 commits intodeepmodeling:prcix9320from
ALITTLELZ:adaptors
Mar 26, 2026
Merged

Add PRCXI functional modules and fix Deck layout#250
q434343 merged 6 commits intodeepmodeling:prcix9320from
ALITTLELZ:adaptors

Conversation

@ALITTLELZ
Copy link
Copy Markdown
Contributor

Summary

  • Add PRCXI9300ModuleSite (inherits ItemizedCarrier) as a dedicated resource class for functional modules
    (heating/cooling/shaking/magnetic), supporting deck slot placement and plate stacking on top
  • Add PRCXI9300FunctionalModule subclass and factory functions for 5 module types, with registry config
    (modules.yaml)
  • Fix Deck slot Y-axis inversion: T1-T4 now correctly at top, T13-T16 at bottom
  • Add "module" and "plateadapter" to Deck _DEFAULT_CONTENT_TYPE and slim JSON content_type
  • Register module classes in plr_additional_res_reg.py and add "module"/"carrier" to resource_tracker.py
    type maps for proper deserialization

Changed files

  • prcxi.py — New PRCXI9300ModuleSite class, Deck Y-axis fix, content_type update
  • prcxi_modules.py — New PRCXI9300FunctionalModule + 5 factory functions
  • modules.yaml — Registry entries for all 5 module types
  • plr_additional_res_reg.py — Class registration for PLR find_subclass
  • resource_tracker.pyreplace_plr_type and TYPE_MAP additions
  • prcxi_9320_slim.json — Y-axis position fix + content_type update

Test plan

  • PRCXI9300FunctionalModule correctly inherits PRCXI9300ModuleSiteItemizedCarrier
  • Module category is "module" (no longer faking "plate_adapter")
  • Deck slots accept modules via "module" in content_type
  • Module top-face site accepts plates/tip_racks via its own content_type
  • Serialize/deserialize round-trip works with cached cloud data
  • Deck layout renders T1 at top-left, T13 at bottom-left

ALITTLELZ and others added 6 commits March 2, 2026 14:35
…egistry config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	unilabos/devices/liquid_handling/prcxi/prcxi.py
…uleSite

PRCXI9300PlateAdapterSite was already removed by upstream/prcix9320.
Its functionality is now provided by PRCXI9300ModuleSite which serves
as the base class for functional modules (heating/cooling/shaking/magnetic).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Upstream rewrite of PRCXI9300Deck lost the Y-axis flip logic from the
original `(3-row)*96+13` formula. T1-T4 were rendered at the bottom
instead of the top. Reversed _DEFAULT_SITE_POSITIONS Y coordinates and
updated prcxi_9320_slim.json accordingly. Also added "plateadapter" and
"module" to slim JSON content_type entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added PRCXI9300ModuleSite and PRCXI9300FunctionalModule to the PLR
class registration in plr_additional_res_reg.py so find_subclass can
locate them during deserialization of cached cloud data. Also added
"module" and "carrier" to replace_plr_type and TYPE_MAP in
resource_tracker.py to suppress unknown type warnings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@q434343 q434343 merged commit d13d3f7 into deepmodeling:prcix9320 Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants