Skip to content

Claude/explain codebase mlk9o584mfw0iezv mh0 nt#7

Merged
rilull merged 6 commits into
masterfrom
claude/explain-codebase-mlk9o584mfw0iezv-MH0NT
Feb 22, 2026
Merged

Claude/explain codebase mlk9o584mfw0iezv mh0 nt#7
rilull merged 6 commits into
masterfrom
claude/explain-codebase-mlk9o584mfw0iezv-MH0NT

Conversation

@rilull

@rilull rilull commented Feb 22, 2026

Copy link
Copy Markdown
Owner

Adding exclusive to master to be able to reference it in the work on Cue with Claude. This code has been tested on F303 hardware via the DevKit successfully.

claude and others added 6 commits February 19, 2026 01:40
Adds a new consumer class where a group of GPIO outputs are mutually
exclusive: receiving an event for any output in the group turns that
output on and turns off all others. Useful for signal masts, route
indicators, or any application where only one output should be active
at a time.

Includes CDI configuration support (ExclusiveConsumerConfig) with one
event per output (rather than an on/off pair), and unit tests covering
exclusive switching, identify consumer, and global identify behavior.

https://claude.ai/code/session_01178EKqcoikwTtUC9ybWow1
Modifies the nucleo_io application's STM32F303RE Nucleo target to use
ConfiguredExclusiveConsumer for Port D and Port E output lines 1-6:

- Port D lines 1,2,3: exclusive group 1 (one active at a time)
- Port D lines 4,5,6: exclusive group 2 (one active at a time)
- Port E lines 1,2,3: exclusive group 1 (one active at a time)
- Port E lines 4,5,6: exclusive group 2 (one active at a time)
- Port D/E lines 7,8: remain as standard on/off consumers

Breaks the main.cxx symlink to the F091RC target to create a
target-specific main.cxx. Updates config.hxx CDI layout with
ExclusiveGroup3 entries and bumps CANONICAL_VERSION to force
EEPROM reset on existing boards.

https://claude.ai/code/session_01178EKqcoikwTtUC9ybWow1
Increases exclusive consumer group size from 3 to 4 outputs, which
aligns with the shift register divisibility and supports signal mast
use cases with a marker light (4 aspects). All 8 lines per port are
now covered by two exclusive groups with no remainder:

- Port D group 1: lines 1,2,3,4 (mutually exclusive)
- Port D group 2: lines 5,6,7,8 (mutually exclusive)
- Port E group 1: lines 1,2,3,4 (mutually exclusive)
- Port E group 2: lines 5,6,7,8 (mutually exclusive)

The ConfiguredExclusiveConsumer class itself already supports any
group size (2, 3, 4, etc.) since it is templated on N.

https://claude.ai/code/session_01178EKqcoikwTtUC9ybWow1
@rilull rilull merged commit 116b703 into master Feb 22, 2026
10 of 11 checks passed
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.

3 participants