summaryrefslogtreecommitdiff
path: root/decoders/dmx512
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.
2020-01-01All PDs: Consistently use singular/plural for annotation classes/rows.Uwe Hermann
2019-11-29decoders: Use a slightly more consistent/logical annotation row setup.Uwe Hermann
Generally show "bits" and other smaller annotations in rows that come before "larger" annotations (in later rows).
2019-04-02decoders: Fix incorrect 'outputs' fields.Uwe Hermann
Only add items to 'outputs' if the respective PD actually has OUTPUT_PYTHON support implemented as of right now. Various decoders might get OUTPUT_PYTHON support later, but the 'outputs' field should reflect the current status.
2019-03-16decoders: Various cosmetic/consistency/typo fixes.Uwe Hermann
2019-03-15decoders: Add/update tags for each PD.Uwe Hermann
2017-12-22all decoders: introduce a reset() methodGerhard Sittig
Move initialization code of protocol decoders from the constructor to a new reset() helper method. The libsigrokdecode backend could run this method several times to clear the decoder's internal state, before new data from another acquisition gets fed to decode() calls.
2017-06-21decoders: Rephrase condition-less .wait() calls (self documentation)Gerhard Sittig
Telling .wait() to "skip one sample" slightly obfuscates the intent of getting the next samples while no condition applies. Explicitly pass no condition arguments instead, to better reflect the purpose. Coincidently these .wait() calls will execute in slightly less expensive code paths in the common code.
2017-06-15dmx512: Use a nicer 'dmx' pin name variable.Uwe Hermann
2017-06-15dmx512: Convert to PD API version 3.Uwe Hermann
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