feat(kbiosystems): add Ultraseal XT Pro driver and share a base sealer class#1172
Merged
Conversation
…r class KBiosystemsSealer holds the serial transport, command-echo handling, the status/error state machine (wait_for_idle, busy/temperature waits), and the temperature and time commands common to the KBiosystems sealers. KBiosystemsUltrasealXTPro drives the inline, pneumatically actuated model: park/unpark/reset shuttle commands, move_shuttle_in/out, a LowAir status bit, its own error table, a 25 C temperature floor, and a seal() without foil, force, distance, or eco parameters (the device advances and cuts its film internally). KBiosystemsUltrasealEPRO now subclasses KBiosystemsSealer; its public API is unchanged and it keeps its foil/force/distance/eco/init/firmware commands. Adds sealer_tests.py (fake-serial wire bytes, status decode, error path, and the shared-base contract) and an Ultraseal XT Pro user-guide notebook. Not tested against hardware; setup() logs a warning. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
KBiosystemsSealer now subclasses abc.ABC with abstract setup() and seal() methods, so it cannot be instantiated directly and the override contract is explicit. Concrete drivers are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a driver for the KBiosystems Ultraseal XT Pro heat sealer and extracts a shared base class for the KBiosystems sealers.
KBiosystemsSealer(new base): serial transport, command-echo stripping, the?/Estatus and error state machine (wait_for_idle, busy/temperature waits), and theA/B/C/D/Ftemperature and time commands.KBiosystemsUltrasealXTPro(new): the inline, pneumatically actuated model. Addspark/unpark/reset,move_shuttle_in/move_shuttle_out, aLowAirstatus bit, its own error table, a 25 °C temperature floor, and aseal()with no foil/force/distance/eco parameters (the device advances and cuts its film internally).KBiosystemsUltrasealEPRO: now subclassesKBiosystemsSealer. Public API unchanged; keeps its foil/force/distance/eco/init/firmware commands.Serial protocol for both: 9600 8-N-1, no handshake, CR terminator; ASCII commands with the command echoed in front of the reply.
Tests
sealer_tests.py(13 tests) covers wire bytes for both models via a fake echoing serial, status decoding, the error path, temperature floors, and the shared-base contract.mypy,ruff check, andruff formatare clean.Status
Not tested against hardware.
setup()logs a warning asking for a follow-up PR to remove it once verified.🤖 Generated with Claude Code