summaryrefslogtreecommitdiff
path: root/decoders/dmx512/__init__.py
AgeCommit message (Collapse)Author
2020-01-05dmx512: stack DMX512 on top of UART and improve usabilityGerhard Sittig
It was unfortunate that the previous DMX512 decoder implementation re-invented UART decoder features and introduced new issues in the process. Automatic polarity detection is just impossible when the full set of valid DMX timings is to get supported. Sample numbers suffered from floating point rounding errors. Introduce a stacked decoder on top of UART which exclusively deals with DMX512 details, and transparently benefits from all available UART features (adjustable polarity, robust and correct sampling, data byte accumulation, BREAK detection while silencing false STOP violations). On one hand this requires users to specify the bitrate (250kbps), on the other hand it results in reliable operation for all captures that have become available so far. Provide Python output for stacked decoders which can process protocol extensions like RDM. Prepare the DMX512 decoder itself to handle simple cases of protocol extensions (start codes other than 0). Add support for additional constraint checks, emit warnings when user specified limits are violated: short BREAK, long MARK, long RESET to RESET and short BREAK to BREAK intervals. This shall speedup the identification of bus health issues (data loss or corruption) or improper controller timing. Also hide all-zero values by default, to make used channels visually stand out, and help users focus their attention. For special cases (like 16bit data, or zero being a valid set-point for the channels) users can enforce the display of all values. Provide an option to present byte values to users in the most appropriate format for the use case. This resolves bug #1442.
2020-01-05dmx512: remove previous implementation before replacing itGerhard Sittig
The existing DMX512 decoder implementation duplicates UART specific knowledge, and implements some of the redundant logic in ways which fail to interpret correct input data. See bug #1442 for details. This commit removes the previous decoder implementation before adding a more recent version, to gain a more readable history across that decoder replacement.
2017-01-07license: remove FSF postal address from boiler plate license textGerhard Sittig
Remove the FSF postal address as it might change (it did in the past). Reference the gnu.org website instead which is more stable.
2016-07-06Add a DMX512 protocol decodercbdev