summaryrefslogtreecommitdiff
path: root/decoders
AgeCommit message (Collapse)Author
2013-09-12uart: Output data in separate RX and TX annotation types.Uwe Hermann
There is one annotation type for the RX side of the communication/data output now, and another one for the TX side. This allows GUIs to show them in two different traces, and/or show them in the same trace but with different colors. This also has the additional benefit that it is clear which databyte belongs to which direction. Previously the annotations had to look like "RX: 5F" or "TX: 11001011", but the "RX: " and "TX: " prefixes are now no longer required, making the GUI traces (and CLI output too) much more readable.
2013-09-12uart: Use same length for data output in all cases.Uwe Hermann
Until now you could get e.g. "d" or "df" as hex output from the UART PD. This will now be a common-length "0D" and "DF". When all data byte annotations are of the same lengths the readability in GUI traces is a lot better. Also, hardcode hex characters to be upper-case (for now). The same applies to oct ("021" instead of "21") and bin output ("00001001" instead of "1001").
2013-09-12uart: Put annotations into proper annotation types.Uwe Hermann
There are now extra annotation types for data, start/stop/parity bits and for warnings (e.g. "invalid parity" or "frame error" or such). This allows users to select which of the annotation types they want to see (they can select one/multiple/all annotations as needed), and also allows them to use different visual representation for the different annotation types in GUIs (e.g. different colors for the blobs, different fonts, rectangle/round/elliptic blobs, and so on; how the annotation blobs are displayed is entirely up to the GUI and its configuration by the user).
2013-09-12uart: Move OUTPUT_PROTO format description to pd.py.Uwe Hermann
This is information that a user (when viewing PD info in a GUI/CLI) should not see (and doesn't care to see), it is meant for developers only. Thus, make it a comment in pd.py instead.
2013-09-12uart: Drop extensive protocol info (moved to wiki).Uwe Hermann
Move the full details of the protocol to the wiki, the docs in the PD itself should only be a short description and/or a collection of notes that could be useful for a user in a GUI (or CLI) to decide which PD to select, which options to set how, what PDs to stack where, and so on. The full protocol description (including photos, examples, ...) is here: http://sigrok.org/wiki/Protocol_decoder:Uart
2013-09-12uart: Make data format selection a PD option.Uwe Hermann
Until now we (ab)used annotation types for outputting the same data (numbers) in different formats (hex, ascii, binary, and so on). Turn this into a proper PD option, since annotation types should rather be used for different _types_ of annotations (e.g. "CRC", "Stop bit", "Preamble", "Sequence counter", "Warnings", and similar things), not different _formats_ for the same annotation type. Old sigrok-cli invocation for hex output: sigrok-cli ... -P uart:rx=0:tx=1 -A uart=hex New: sigrok-cli ... -P uart:rx=0:tx=1:format=hex In GUIs there is now a new "Data format" option where the user can select the output format for UART data (default is 'ascii').
2013-09-12uart: Use T for stop bit, P for parity bit.Uwe Hermann
The short(est) annotations for "Stop bit" and "Parity bit" have both been "P" until now, which is confusing for users (on certain zoom levels in GUIs). Use "T" for stop bits now instead.
2013-09-12uart: Don't prefix databyte output numbers.Uwe Hermann
Previously the output was 0x41 or 0o101 or 0b1000001, now it is 41 or 101 or 1000001. We drop these prefixes, since they decrease the readability of the PD output (especially when displayed in GUIs) and are not needed anyway since the user knowingly selected the number format before running the respective PD.
2013-09-12uart: Fix corner-case that can occur with LA triggers.Uwe Hermann
Assume that the initial pin state is 1/high for the RX and TX lines. This fixes the decode when an LA triggers on e.g. TX=low (the first sample would be low in that case, so the falling edge for the start bit would be missed by the decoder).
2013-09-12uart: Fix start-/end-sample numbers.Uwe Hermann
This now makes the UART decoder suitable for use in GUIs. This fixes bug #148.
2013-09-10can: Use annotation abbreviations.Uwe Hermann
Supply long, middle, and short versions for most annotations, so that GUIs can show nicely readable and useful annotations on various zoom levels.
2013-09-10can: Fix annotation start/end samples.Uwe Hermann
With this change pretty much all CAN annotations that are currently output should have the correct values, including single-bit and multi-bit fields, standard and extended CAN frames, and so on. This fixes #146.
2013-09-10can: Prepare for fixing annotation start/end samples.Uwe Hermann
2013-09-08i2c: Fix corner-case that can occur with LA triggers.Uwe Hermann
Until now the I2C PD was basically ignoring the very first sample, and using that as the initial 'oldscl'/'oldsda' value. However, if your logic analyzers trigger on, say, SDA=low that will result in a file where the first sample is really important since it is the one which the PD will need to know that there's a falling edge on SDA. Thus, assume both SCL and SDA are high/1 when the PD starts. This is a good assumption since both pins have pullups on them in practice and are thus high/1 when the bus is idle. Later on we might want to have config options to let the PD assume other states of SDA/SCL initially.
2013-09-03i2s: Fixed annotation sample numbersJoel Holdsworth
2013-09-02pan1321: Improve commands documentation.Uwe Hermann
2013-09-02pan1321: Initial JSDA support.Uwe Hermann
2013-09-02pan1321: Add support for JAAC.Uwe Hermann
2013-09-02pan1321: Properly check for \r\n, not just \n.Uwe Hermann
2013-09-02pan1321: Code simplifications.Uwe Hermann
2013-09-02pan1321: Add warnings for invalid protocol usage.Uwe Hermann
2013-09-02pan1321: Support JSEC and JPRO.Uwe Hermann
2013-08-31xfp: Decoder for XFP I2C structuresBert Vermeulen
2013-08-14lpc: Bugfix: Sample data at rising clock edges.Uwe Hermann
2013-08-14lpc: Various fixes to make the PD actually work.Uwe Hermann
2013-04-23GPL headers: Use correct project name.Uwe Hermann
2013-03-12ds1307: Fix date/day-of-week printing.Uwe Hermann
2013-03-12Add Dallas DS1307 RTC protocol decoderMatt Ranostay
Dallas DS1307 RTC protocol decoder that works stacked with the I2C PD. Based on the rtc8564 protocol decoder. Signed-off-by: Matt Ranostay <mranostay@gmail.com>
2013-01-30can: Temporary quickfix for a bug.Uwe Hermann
2013-01-13Cosmetics, fix typos.Uwe Hermann
2013-01-01Small cosmetic/consistency fixes in the PDs.Uwe Hermann
2012-12-17Add intial CAN protocol decoder.Uwe Hermann
2012-11-24mlx90614: "Kelvin", not "degrees Kelvin".Uwe Hermann
2012-11-24Fix bugs in "Invalid state" printing/exceptions.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.
2012-11-24configure.ac/Makefile.am: Alphabetical order.Uwe Hermann
2012-11-24tlc5620: Refactoring, add initial LOAD support.Uwe Hermann
2012-11-21Initial TI TLC5620 (8-bit quad DAC) protocol decoder.Uwe Hermann
2012-08-31srd: uart: Fix regression.Uwe Hermann
Thanks Iztok Jeras <iztok.jeras@gmail.com> for the report.
2012-08-29Add initial SD card (SPI mode) decoder.Uwe Hermann
This is work in progress, but it already works partially, and can be used for actual decodes of some commands. This PD stacks on top of the SPI protocol decoder.
2012-07-28srd: lm75: s/degrees Kelvin/Kelvin/.Uwe Hermann
The temperature unit is nowadays called just "Kelvin", not "degrees Kelvin" (even though this was not always the case).
2012-07-28srd: avr_isp: Improve Chip Erase handling.Uwe Hermann
2012-07-28srd: avr_isp: Factor out part numbers/names to part.py.Uwe Hermann
2012-07-28srd: Initial decoder for AVR ISP protocol.Uwe Hermann
2012-07-21srd: onewire_link: Annotations shouldn't be ALLCAPS.Uwe Hermann
While states in the PD should be ALLCAPS per guidelines (for consistency), the annotations that a PD outputs (and are shown in a console via sigrok-cli or in a GUI) should be "normal" human-readable text/formatting usually, i.e. not ALLCAPS.
2012-07-21srd: maxim_ds28ea00: Factor out putx(), small fixes.Uwe Hermann
2012-07-21srd: maxim_ds28ea00: Cosmetics, cleanups.Uwe Hermann
2012-07-21srd: maxim_ds28ea00: Fix to only handle DS28EA00.Uwe Hermann
2012-07-21srd: Rename onewire_transport to maxim_ds28ea00.Uwe Hermann
It doesn't make sense to have one "generic" onewire_transport PD, as this layer is very much device-specific and such a generic PD would have to contain an accumulation of all possible features and commands and handling code of all existing (now and in the future) 1-Wire devices, which is neither possible nor useful nor elegant. There are (for example) 1-Wire thermometers, RTCs, EEPROMs, special-purpose security chips with passwords/keys, battery monitoring chips, and many many others. They all have a different set of features, commands and command codes, RAM areas/sizes/partitioning/contents, protocols, and so on. Thus, the layering for 1-Wire PD stacks should look like this: onewire_link -> onewire_network -> <specificdevice> Examples: onewire_link -> onewire_network -> maxim_ds28ea00 (special thermometer) onewire_link -> onewire_network -> maxim_ds2431 (1kbit EEPROM) onewire_link -> onewire_network -> maxim_ds2417 (RTC) onewire_link -> onewire_network -> maxim_ds2762 (battery monitor) onewire_link -> onewire_network -> maxim_ds1961s (SHA-1 eCash iButton) and so on... So, renaming onewire_transport to maxim_ds28ea00. The non-DS28EA00 specific code will be dropped and/or moved to other PDs on top of onewire_network later.
2012-07-21srd: onewire_network: Fix typo, command is 0x69.Uwe Hermann
The 'Overdrive match ROM' command is 0x69, not 0x6d. Verified in various datasheets and the original 1-Wire/iButton spec.