summaryrefslogtreecommitdiff
path: root/decoders/usb_signalling/pd.py
AgeCommit message (Collapse)Author
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-20usb_signalling: Move another edge detection to common backend codeGerhard Sittig
Rephrase how the 'WAIT IDLE' stage skips over all-low input signals. Have the next high level on either line detected in common code.
2017-06-16usb_signalling: 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.
2015-12-04usb*: Minor cosmetics.Uwe Hermann
2015-12-01usb_signalling: detect PREamble PIDStefan Brüns
PID decoding is normally done in the packet layer, but the signalling layer has to switch behaviour on detection of an PREamble PID.
2015-12-01usb_signalling: add signaling states needed after LS PREamble PIDStefan Brüns
2015-11-30usb_signalling: fix SOP detection after an error conditionStefan Brüns
If the oldsym is not set to 'J' before entering IDLE state, the SOP detection will never trigger
2015-11-30usb_signalling: add option to automatically set signalling speedStefan Brüns
In automatic mode, the bus is assumed to be in IDLE state. After a RESET, the bus state is checked again.
2015-11-30usb_signalling: decode RESET and Keep-Alive signalling conditionsStefan Brüns
Resets are at least 10ms at the root hub downstream facing port and 2.5us at the device (root hub reset may be shortened by itermediate hubs). Keep-alive is a low-speed only signalling condition, as low-speed has no SOFs to inhibit devices to enter suspend
2015-11-30usb_signalling: use explicit positions for packet start/endStefan Brüns
Instead of centering the block around the sampleposition, which shows some visual glitches due to rounding, use the edge positions already known. Remove unused halfbit symbol.
2015-11-30usb_signalling: handle symbol errors in EOP stateStefan Brüns
Only SE0 and J are valid symbols during EOP
2015-11-30usb_signalling: remove unneeded syms arrayStefan Brüns
Do not call get_eop() from get_bit(), but directly issue the symbol. As get_eop() is only called during the GET EOP state, the SE0 is implicit and there is no need to save it into the syms array.
2015-11-30usb_signalling: remove unused ss_sop memberStefan Brüns
2015-11-30usb_signalling: detect bit stuffing errorsStefan Brüns
More than six consecutive 1's are an error
2015-11-30usb_signalling: consolidate symbol outputStefan Brüns
No need to replicate the symbol formatting in several places
2015-10-06usb_{signalling,packet}: Minor cosmetics.Uwe Hermann
2015-10-06usb_signalling: Track USB symbol width to compensate frequency errorsStefan Brüns
USB low/full speed allows for frequency tolerance of 1.5%/0.25%. At maximum packet size (sync + PID + data + CRC16) of 12 bytes/1027 bytes this amounts to 1.4 bits/20 bits, so the decoder has to lock to the actual symbol frequency to avoid any symbol misdetections. The signal is sampled twice, once at the symbol center and once at the expected edge position. Comparing the symbol at both positions gives an indication if the current bit width is too low or too high. Adjust accordingly.
2014-07-15All PDs: Minor whitespace and consistency fixes.Uwe Hermann
- No newlines at the end of files. - No trailing ';' characters. - Comparison with None: Use 'is None' or 'is not None'. - Comparison with True/False: Use 'if cond:' or 'if not cond:'. - Various minor whitespace fixes.
2014-07-09Various PDs: Throw SamplerateError instead of Exception.Uwe Hermann
Also, use the "if not self.samplerate" form, which catches both the case where self.samplerate is None, as well as the case where it is 0.
2014-07-09All PDs: Drop unneeded exceptions.Uwe Hermann
In all current PDs it is not necessary to raise an exception upon invalid states (of the PD's state machine), since we can guarantee that no such invalid state can ever be reached in these PDs.
2014-04-15All PDs: Bump api_version to 2.Uwe Hermann
Older libsigrokdecode versions are no longer able to use the current versions of the PDs (various changes in syntax etc).
2014-04-13Rename 'probe' to 'channel' everywhere.Uwe Hermann
Variables of type 'struct srd_channel *' are consistently named 'pdch' to make them easily distinguishable from libsigrok's 'struct sr_channel *' variables that are consistently named 'ch'.
2014-03-18usb_signalling: Make each symbol an annotation class.Uwe Hermann
2014-03-18usb_signalling: Provide better short/long annotations.Uwe Hermann
2014-03-10Probes, optional probes and annotations now take a tuple.Bert Vermeulen
Annotation entries also consist of a tuple, not a list.
2014-03-10Remove unused probes and optionsBert Vermeulen
2014-03-10Change PD options to be a tuple of dictionaries.Bert Vermeulen
Each option consists of a dictionary with the following keys: id The option id, which is passed in when setting a value. desc A description of the option, suitable for display. def The default value for this option. values (optional) If present, a tuple containing values the option may take. They must be of the same type as the default. Valid types for the options are UTF-8-encoded strings, integers, and floating point values.
2014-02-01usb_signalling: Define annotation rows.Uwe Hermann
2014-01-30s/out_proto/out_python/.Uwe Hermann
The output type is now called OUTPUT_PYTHON, adapt all PDs to that.
2014-01-28All PDs: Drop unneeded comments.Uwe Hermann
The single comment re-stating the PD's name / description / purpose in each pd.py file is not really needed, that info is available in the Decoder class' attributes already.
2013-11-15Drop obsolete report() method.Bert Vermeulen
2013-11-15Use the new Decoder.register() APIBert Vermeulen
2013-11-07Rename inter-PD output type to SRD_OUTPUT_PYTHONBert Vermeulen
This better reflects what it is: a python object generated and processed by python code.
2013-10-30Receive samplerate via metadata(), not start()Bert Vermeulen
2013-10-11usb_signalling: Drop packet handling.Uwe Hermann
The usb_signalling PD should not care about packets, only symbols and bits. The new (fixed) usb_packet PD constructs packets out of individual bits now.
2013-10-11usb_signalling: Document protocol output format.Uwe Hermann
Also, add missing output for some packet types.
2013-09-29usb_signalling: Fix packet annotation.Uwe Hermann
2013-09-29usb_signalling: Fix EOP handling and annotation.Uwe Hermann
2013-09-29usb_signalling: Properly use different annotation types.Uwe Hermann
2013-09-29usb_signalling: Fix decode of individual bits.Uwe Hermann
After a Start of Packet (SOP) has been detected, "sample" the individual USB symbolѕ/bits in the middle of the respective bittime (depending on whether full-speed or low-speed signalling is used). This fixes various incorrectly decoded cases (bug #158).
2013-09-20usb_signalling: Simplify symbols handling a bit.Uwe Hermann
2013-09-20usb_signalling: Refactor/simplify bitrate/bitwidth handling.Uwe Hermann
2013-09-15usb_signalling: Fix start/end sample numbers.Uwe Hermann
This makes the decoder suitable for GUI usage. This fixes bug #155.
2013-04-23GPL headers: Use correct project name.Uwe Hermann
2013-01-01Small cosmetic/consistency fixes in the PDs.Uwe Hermann
2012-11-24All PDs: Name the files pd.py consistently.Uwe Hermann
The Python module name is determined by the directory name (e.g. dcf77), the *.py file names in that directory don't matter and can be kept consistent.