summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-24gpib: drop obscure "total number of samples" optionGerhard Sittig
The gpib decoder tried to "flush" input data at a user specified sample number when the input data lacked the respective edge which triggers the processing during regular operation. This is rather obscure a feature, not seen in any other decoder, perhaps a workaround for bug #292, rather unaccessible to users (units of sample numbers not times nor automatic detection of the EOF condition), highly confusing according to user reports, and not covered by existing tests. The mere presence of this option caused severe issues in application code (see bug #1444). While there is no apparent fix that won't affect other decoders. So let's drop this questionable feature. Valid and complete captures should contain all relevent edges and thus decode properly.
2019-11-24decoder: accept skip count 0 (onewire_link, usb_signalling)Gerhard Sittig
A recent commit tightened the check for acceptable 'skip' sample counts. This broke the onewire_link and usb_signalling decoders' test sequences, which no longer pass with a minimum count of one. Relax the condition and accept a count of zero. This breaks gpib again for low total sample count option values, but this needs to get addressed differently.
2019-11-24decoder: internal 'always false' term, handle invalid skip and channelGerhard Sittig
Introduce an "always false" type for .wait() terms. Map invalid counts of skip conditions (zero or negative numbers) as well as invalid channel references for level/edge conditions to this type which never matches. Keep this "always false" term type an internal detail of the common support code. This is most robust and least intrusive at the same time, it keeps the existing API, and simplifies the implementation of Python decoders for rare edge cases (optional input signals or optional features, handling of initial samples at the very start of a capture). This commit passes sample counts internally in a signed data type. This is essential for proper operation, and the loss of one bit out of 64 shall not be considered a severe limitation. This fixes bug #1444.
2019-11-24tdm_audio: Place each channel on its own annotation row.Uwe Hermann
2019-11-24tdm_audio: Add initial decoderBen Dooks
2019-11-24amulet_ascii: Drop unneeded rxtx_channels.Uwe Hermann
2019-11-24amulet_ascii: Drop a few unneeded parenthesis.Uwe Hermann
2019-11-24Initial Amulet LCD ASCII PDVesa-Pekka Palmu
This is a protocol decoder for the 'ASCII' protocol used by Amulet Technologies LCDs. Currently some commands are not implemented yet. I also lack capture data from a display that will use replies other than ACK and NACK. Reads are untested as I have no suitable captures. The PD copes with bus errors (there is an actual bug in the device I'm reverse engineering) and most of the commands are implemented. The unimplemented commands should generally consume the correct number of bytes from the bus, the exception to this are the drawing commands, because there are actually at least two revisions of them with different payloads, that are really hard to detect in greedy algorithm.
2019-11-23Fix three -fsanitize=undefined issues.Uwe Hermann
instance.c:62:2: runtime error: null pointer passed as argument 1, which is declared to never be null instance.c:858:45: runtime error: shift exponent -1 is negative instance.c:836:45: runtime error: shift exponent -1 is negative
2019-11-23Avoid using Py_IncRef/Py_DecRef for consistency.Uwe Hermann
We currently use a mix of Py_IncRef/Py_DecRef and Py_XINCREF/Py_XDECREF or Py_INCREF/Py_DECREF in the code-base. Only use the latter variants for the time being (for consistency).
2019-11-23srd_inst_option_set(): Fix multiple memory leaks.Uwe Hermann
These were reported when compiling with "-fsanitize=address" and running "PYTHONMALLOC=malloc make check": ================================================================= ==42879==ERROR: LeakSanitizer: detected memory leaks Direct leak of 317 byte(s) in 6 object(s) allocated from: #0 0x7f08e4809538 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144 #1 0x7f08e3f37622 in PyUnicode_New ../Objects/unicodeobject.c:1365 Direct leak of 28 byte(s) in 1 object(s) allocated from: #0 0x7f08e4809538 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144 #1 0x7f08e3f7e1a5 in _PyLong_New ../Objects/longobject.c:275 Direct leak of 24 byte(s) in 1 object(s) allocated from: #0 0x7f08e4809538 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144 #1 0x7f08e3f91521 in PyFloat_FromDouble ../Objects/floatobject.c:122 SUMMARY: AddressSanitizer: 369 byte(s) leaked in 8 allocation(s). session
2019-11-23spiflash: lists.py: Use None for unsupported features.Uwe Hermann
2019-11-23spiflash: Minor fixes for Atmel AT25 chips.Uwe Hermann
2019-11-20spiflash: Add support for Atmel AT25xxxSoeren Apel
2019-11-19Fix multiple PyObject_SetAttrString() related leaks.Uwe Hermann
This fixes bug #1374.
2019-11-16condition_list_free(): Fix a memory leak.Uwe Hermann
2019-11-12uart: Add [rx|tx]_packet_len options.Uwe Hermann
Similar to the recently added [rx|tx]_packet_delimiter options, these emit summary annotations ("packets") when a certain number of data values have been decoded. This is a convenience feature which can be useful when a user wants to view data which doesn't have a specified delimiter value (as last data value in the "packet"), but rather fixed-length "packets". This is just an (intentionally very simple) helper/convenience improvement and is NOT meant to replace "proper" stacked decoders for UART-based protocols.
2019-11-12uart: Add [rx|tx]_packet_delimiter options.Uwe Hermann
This is a convenience feature that emits summary annotations ("packets") that comprise all data values that were decoded until a specified delimiter value is seen (as last data value of the "packet"). Example use-cases include ASCII data where it can be convenient to "packetize" whenever a 10/0x0A value (newline) is seen, or some protocols which have a fixed "marker" value (e.g. 0x55) as last value in the "packet". The annotations are affected by the selected 'format' option, i.e. the user can get summaries in ASCII or hex or other formats. This is just an (intentionally very simple) helper/convenience improvement and is NOT meant to replace "proper" stacked decoders for UART-based protocols.
2019-11-12configure.ac: Add support for Python 3.8.Uwe Hermann
This fixes bug #1438.
2019-11-09eeprom93xx: Use fixed-width hex output.Uwe Hermann
This improves readability a bit in most cases.
2019-11-09eeprom93xx: Add OUTPUT_BINARY support.Uwe Hermann
2019-11-06seven_segment: Simplify two code snippets.Uwe Hermann
2019-11-06seven_segment: Initial commit.Benedikt Otto
2019-11-05spiflash: Add "EEPROM" to descriptions.Uwe Hermann
There are various different names that these types of memories are being referred to in the wild: SPI flash, flash chip, flash, flash EEPROM, SPI EEPROM, serial flash, serial memory, flash memory, and various others. In order to make UI decoder selection more useful to the user, we add the "EEPROM" string to some of the decoder metadata fields, so the decoder will (for example) show up in PulseView's list of decoders when the user types "eeprom" to narrow down the listed decoders.
2019-11-05can: Mention CAN-FD support in the description.Uwe Hermann
2019-10-06can: Factor out dlc2len().Uwe Hermann
2019-10-06can: Random whitespace and cosmetic fixes.Uwe Hermann
2019-10-06can: introduce fast bitrateStephan Thiele
2019-10-06can: proper annotation on CAN-FD extended framesstephan.thiele
2019-10-06can: add basic CAN-FD handling of non BRS extended framesstephan.thiele
2019-10-06can: make PD temporary compatible to existing testsStephan Thiele
2019-10-06can: correct decoding of CRC-21Stephan Thiele
2019-09-13can: decode CAN-FD DLCStephan Thiele
2019-09-13can: display CRC type + correct decoding of CRC-17Stephan Thiele
2019-09-13can: implement decoding of CAN-FD header when FDF bit is setStephan Thiele
2019-09-13can: implement basic CAN-FD decoding (SRR and FDF bits)Stephan Thiele
2019-08-30eeprom93xx: Add ascii format supportSylvain Pelissier
2019-08-23mrf24j40: Add TX retries/fails and CCAFAIL support.Uwe Hermann
2019-08-06mrf24j40: Add RX/TX frame annotations.Uwe Hermann
2019-07-06pca9571: Shorten names a bit.Uwe Hermann
2019-07-05Add an NXP PCA9571 decoder.Mickael Bosch
2019-07-01modbus: Make the 'framegap' option an integer.Uwe Hermann
2019-06-30modbus: Make C->S and S->C configurable, add framegap option.Andrew Gregory
Change client->server and server->client to be separately configurable, allowing decoding at both the server (where client->server is RX and server->client is TX) and client (where client->server is TX and server->client is RX) ends of the link. It also allows monitoring of the bus on a single channel (where client->server and server->client are both RX (or TX)). When I tried to decode a bus capture, I found that when the transmitter was turned off it generated a false start bit, which in turn resulted in a false trailing byte from the UART decoder. This narrowed the inter-frame gap to the point where the Modbus decoder failed to recognise a new frame. The result was only the first frame of the capture decoded - all the rest of the frames failed to decode. I had to reduce the frame gap to allow subsequent frames to decode, and so made it a configurable option that defaults to the existing gap. Lastly, I fixed a call to puti() that incorrectly included the annotation prefix.
2019-06-30sdcard_spi: Add "Card is busy" annotations for CMD24.Pierre Poulain
This fixes bug #1376.
2019-06-30sdcard_spi: Fix incorrect handling of CMD17.Pierre Poulain
This fixes bug #1377.
2019-06-20usb_request: Allow configuration of BULK IN transfer displayStefan Brüns
From a protocol level, a BULK IN transfer starts when the host starts polling the respective endpoint. For analysis, it is sometimes useful to show when the devices starts to answer the requests. As both are useful for different use cases (the old, default one emphasizes the host behavior, the new one shows the endpoint/device behavior), make the display configurable.
2019-06-20usb_request: Use separate annotation rows for IN, OUT and CONTROLStefan Brüns
E.g. CONTROL and BULK IN transfers may overlap each other, and as a result only one of the two can be seen in pulseview. Partly solves bug #1046. In case a device has multiple IN/OUT endpoints, transfers would still overlap, but many simple devices have just one each.
2019-06-17usb_request: Fix some decoding errorsStefan Brüns
Append OUT data only if it has been ACKed. OUT transfers (BULK OUT or CONTROL transfer DATA stage) are typically NACKed to create backpressure. Always keep IN and OUT transfers separate. On the physical layer, the endpoint number only uses 4 bits, and IN and OUT use separate tokens. In case the transfer is an IN transfer, set the high bit as used in the endpoint descriptors (i.e. 0x81 is IN enpoint 1, 0x01 is OUT endpoint 1).
2019-05-15enc28j60: Rename self.ann to self.out_ann.Uwe Hermann
(for consistency with all other decoders)
2019-05-15enc28j60: Shorten various self.put*() calls.Uwe Hermann