Plug-in Examples

Top  Previous  Next

The examples are not production ready code.  They are intended to demonstrate how to write plug-ins.  As such, they focus on clarity more than completeness.  Additionally, some of them were tested with manufactured data. For example, the Track2 plug-in is written from a specification and tested with generic SYNC signals.  We did not actually test it against captured credit card swipes.  The point is that these examples are focused on demonstrating the mechanics of writing plug-ins. It is very likely they would require additional modifications for actual use but provide a solid, working baseline.


A minimal, yet functional plug-in in 24 lines of code.  It is based on the STATE pre-processor.  It simply prints each state in YELLOW.


A mini plug-in based on the STATE pre-processor.  Demonstrates adding a few simple user options, performing framing and simple formatting.


A full plug-in implementing a basic state parser.  Demonstrates parsing raw data events, edge detection, and use of FindChannelLimits and pack().


A mini plug-in based on the I2C pre-processor. It is an exact replacement for the internal post-processor.  It demonstrates using multiple field formats, lookup tables, framing and zero-length fields.  This is a good starting point for implementing higher level protocols or project specific substitutions (addr 0x5 = 'D/A' or 'U3'...).


A mini plug-in based on the ASYNC pre-processor.  Starts a new frame whenever a specific character is received.  Uses a specific escape character to allow the start-of-frame character to appear in the payload.


A hybrid plug-in based on the ASYNC pre-processor.  It specifies a new signal (Direction) to watch.  The Direction line determines which end of the bus is sending.  The plug-in modifies the field formatting to indicate which end of the link sent the data. It also starts a new frame each time the bus changes directions.


A mini plug-in based on the ASYNC pre-processor. In addition to formatting and printing each ASYNC character, it looks for excessive bus dead time.  If the time between characters exceeds the user specified value, it forces a save of this capture, and/or halts any auto-run sequence.  Demonstrates use of TimeScale, calculating timing, and use of control fields. Also shows inserting non-data related fields into the data display; very useful for auto-searches.


A full plug-in to decode track 2 from magnetic strip cards (like credit cards).  Demonstrates channel extraction, edge detect, using channel invert option, and parity calculation.


A mini-plug-in based on the SPI pre-processor.  This customizes the SPI parser to decode the data sent to a Nation Semiconductor DAC8045S085.  Demonstrates use of multiple data slices and lookup tables to do in-place data decoding.  It is less pretty than a full decoder, but is still very functional and easy.


A full plug-in to parse the Nation Semiconductor DAC8045S085.  Demonstrates edge detection, framing, idle fields, lookup tables and maintaining context through static vars and a state-machine.


A full plug-in to demonstrate glitch filtering across a group of signals.