Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(lights)!: remove individual fixture requirements and constraints #38

Merged
merged 5 commits into from
Jan 26, 2025

Conversation

Yoronex
Copy link
Member

@Yoronex Yoronex commented Jan 25, 2025

Description

This PR includes a large refactor of the processing of fixture settings from colors and positions to actual DMX channel values. The new implementation uses a Strategy design pattern to neatly separate different responsibilities. Then, with the improved framework, the following features are added:

  • A master dimmer channel is no longer required for RGB fixtures. When an RGB still needs to be dimmed, it is applied to the individual channels instead.
  • A shutter channel is no longer required for any fixture. If the fixture still needs to strobe, this is done by switching all lights on and off within Aurora each tick.
  • Each fixture has a specific number of channels it requires to function. This can save massive amounts of space on the DMX bus.
    For example, each fixture on the disco floor only needs 3 channels instead of the previous Aurora-default of 16. This allows for 170 disco floor fixtures in one DMX universe, instead of 32 (increasing the floor size from 8m2 to 42m2).
    It does include breaking changes, as multiple database columns have been renamed. This is caused by moving these columns to separate objects.

Related issues/external references

Fixes #35.
Fixes #36.
Includes refactoring work necessary for #31 and #29.

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Style (Change that do not affect the functionality of the code)

@JustSamuel
Copy link
Contributor

Note that if you want semantic-release to recognize this as a breaking change (major version bump) you should add the BREAKING CHANGE footer and only adding the ! indicator is not enough.

@Yoronex Yoronex merged commit 4a40cc6 into develop Jan 26, 2025
2 checks passed
@Yoronex Yoronex deleted the feature/fixture-options branch January 26, 2025 12:03
Yoronex added a commit to GEWIS/aurora-lights-simulator that referenced this pull request Jan 26, 2025
Yoronex added a commit that referenced this pull request Feb 5, 2025
…#38)

* chore(lights)!: refactor fixtures to strategy design pattern

* chore(lights): refactor master dimmer to relative brightness

* chore(lights)!: move master dim and shutter channels to color strategies

* feat(lights): make master dimmer and shutter optional

* feat(lights): add specific nr of channels required for each fixture

BREAKING CHANGE: new database structure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants