summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-03-14uart: Reduce redundancy in sample inspection (state machine)Gerhard Sittig
Factor out the logic which inspects samples that were provided by the PD version 3 query API, and dispatches their processing depending on the progress of UART frame inspection. "Unroll" a loop over the RX and TX signals. This commit replaces some complicated variable assignments by easier to verify invocations.
2017-03-14uart: Convert to PD API version 3Gerhard Sittig
Adjust the UART protocol decoder, to make use of the query based API. Have edges detected and unrelated samples skipped by common code. This implementation keeps some redundancy in place (like checking for having reached specific sample numbers, while the backend managed that for us). This approach reduces the diff and shall simplify review. Only some common checks in decode() were moved to the start of the routine, outside of the sample inspection loop.
2017-03-14uart: Minor readability nit (position of start bit in calculation)Gerhard Sittig
Rephrase the bit slot index calculation for UART frames such that it becomes more apparent whether a start bit is involved or whether an array index needs adjustment due to Python range semantics. This shall improve readability, and reduce the probability of off-by-one errors during maintenance.
2017-03-14uart: Immediately skip reception of parity bits when not applicableGerhard Sittig
When the UART frame does not contain a parity bit, then immediately advance to reception of stop bits after all data bits were received. This eliminates the necessity to run the parity check routine when parity does not apply in the first place. Without this change, some "dummy" sample needs to get inspected for correct operation of the state machine.
2017-03-14uart: Remove an obsolete unused routineGerhard Sittig
2017-03-12decoder: terminate .wait() and .decode(), join threads for v3 instancesGerhard Sittig
Add support to terminate blocking .wait() and .decode() method calls of v3 decoder instances. This terminates the decoder thread's main routine and allows to release associated resources. Cope with requested as well as unexpected termination of decode() calls. Add debug messages to thread related code paths. Make sure to unblock the main thread which feeds the decoder thread. This unbreaks situations where decoders e.g. throw "need samplerate to decode" exceptions. Drain Python errors which might remain from the most recent .decode() execution, to not affect other code paths. This avoids an issue where the creation of a new decoder instance fails in the presence of errors from a previous run. This fixes bug #902.
2017-03-05configure summary: Show linker flags.Uwe Hermann
2017-03-05configure summary: Show whether shared/static build is enabled.Uwe Hermann
2017-03-04rgb_led_ws281x: Use self.samplenum.Uwe Hermann
This is currently just a cosmetic change, but will make the conversion to the PDv3 API slightly easier and more readable.
2017-03-03Drop obsolete workarounds in PDs.Uwe Hermann
Some PDs were using a temporary workaround for (as it turned out) a refcounting issue that was fixed in 066fbafdc3ba734a73b5f7fcfa1dbae67ddebf8a.
2017-02-28srd_decoder_load(): Drop dead code.Uwe Hermann
In 'except_out' the fail_txt variable is always non-NULL.
2017-02-28Fix memory leak in get_current_pinvalues()Marcus Comstedt
The ownership of the tuple reference is transferred to the caller, so the refcount should not be increased.
2017-02-28More refcounting fixesMarcus Comstedt
PyList_SetItem steals a reference, so code calling that must either transfer ownership or increase the refcount.
2017-02-27instance.c: Add a debug message for thread creation.Uwe Hermann
2017-02-26srd_inst_decode(): Slightly more verbose error message.Uwe Hermann
2017-02-26Fix examples to show abs_end_samplenum as exclusiveMarcus Comstedt
2017-02-26Return SRD_ERR_ARG from srd_inst_decode if samplenums are wrongMarcus Comstedt
This validates the requirements that * abs_start_samplenum continues where the previous decode ended * abs_end_samplenum is not lower than abs_start_samplenum Failure to meet these requirements will make v3 decoders crash.
2017-02-26Fix refcounting bug in set_new_condition_list()Marcus Comstedt
py_conditionlist is an owned reference (it gets passed to Py_DecRef() at the end), so we need to increment the refcount when assigning it from the borrowed reference py_conds.
2017-02-26instance.c: fix a 'matched' vs 'matches' typoGerhard Sittig
The Decoder_wait() routine will populate the .matched attribute before returning to the caller. The srd_inst_start() routine used to setup a .matches attribute which is unexpected. Make both routines consistently assign to 'matched' as that is what Python decoder implementations are referencing.
2017-02-25Add an initial serial GPIB (IEC) decoder.Marcus Comstedt
2017-02-21Clarify that {start,end,cur}_samplenum are absolute numbers.Uwe Hermann
2017-02-20instance.c: Fix a compiler warning.Uwe Hermann
../instance.c: In function ‘srd_inst_find_by_id’: ../instance.c:485:3: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (di = srd_inst_find_by_id_stack(inst_id, tmp)) ^~
2017-02-20Look up instances by ID in the full stackKarl Palsson
srd_inst_find_by_id() previously only searched for instance IDs at the bottom of any stacked decoders. Make it properly search all stacks, just like srd_inst_find_by_obj() and more usefully when trying to generate unique instance IDs. No external API change, only the explicit behaviour of the API. This fixes parts of bug #868. Signed-off-by: Karl Palsson <karlp@etactica.com>
2017-02-20Support adding multiple instances of a decoderKarl Palsson
srd_inst_new() used the decoder ID as the instance ID, preventing the use of multiple instances of the same decoder in the same session. Simply append a numerical suffix to later instances to allow more. Required changes to cleanup to reliably free all memory. Valgrind checked. This fixes parts of bug #868. Based on original work by: Soeren Apel <soeren@apelpie.net> Signed-off-by: Karl Palsson <karlp@etactica.com>
2017-02-14Added intial ADF4350/1 decoderJoel Holdsworth
2017-01-18z80: Convert to PD API version 3 (brute force)Gerhard Sittig
This implementation technically uses v3 API calls, but has yet to come up with appropriate wait() conditions, to spend less time in the decoder and have more tedious work done in the backend.
2017-01-18t55xx: Convert to PD API version 3Gerhard Sittig
2017-01-18sdcard_sd: Convert to PD API version 3Gerhard Sittig
2017-01-18qi: Convert to PD API version 3Gerhard Sittig
2017-01-18ps2: Convert to PD API version 3Gerhard Sittig
2017-01-18mdio: Convert to PD API version 3Gerhard Sittig
2017-01-18em4305: Convert to PD API version 3Gerhard Sittig
2017-01-15em4100: Convert to PD API version 3Gerhard Sittig
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-12-26configure.ac: Also check for Python 3.6.Uwe Hermann
2016-12-26avr_pdi: Don't pass self.samplenum (use it), simplify code.Uwe Hermann
2016-12-26avr_pdi: Convert to PD API version 3.Gerhard Sittig
Switch to the v3 decoder API: The decode() methods takes no arguments, instead it calls wait() and has common code find edges on input signals.
2016-12-26avr_pdi: introduce decoder for Atmel Program and Debug InterfaceGerhard Sittig
Introduce a decoder for Atmel's proprietary programming and debugging interface which got introduced with ATxmega chips. This implementation supports the UART style physical (two wires PDI_CLK and PDI_DATA).
2016-12-07usb_power_delivery: Convert to PD API version 3.Uwe Hermann
2016-12-07tlc5620: Convert to PD API version 3.Uwe Hermann
2016-12-07timing: Convert to PD API version 3.Uwe Hermann
2016-12-07swd: Convert to PD API version 3.Uwe Hermann
2016-12-07stepper_motor: Convert to PD API version 3.Uwe Hermann
2016-12-07spdif: Convert to PD API version 3.Uwe Hermann
2016-12-07parallel: Convert to PD API version 3.Uwe Hermann
2016-12-07onewire_link: Convert to PD API version 3.Uwe Hermann
2016-12-07jtag: Convert to PD API version 3.Uwe Hermann
2016-12-07jitter: Convert to PD API version 3.Uwe Hermann
2016-12-07ir_nec: Convert to PD API version 3.Uwe Hermann
2016-12-07i2s: Convert to PD API version 3.Uwe Hermann