Types of Plug-ins
DigiView supports 3 types of plug-ins; mini, full and hybrid.
Mini Plug-ins use one of the built-in parsers as a pre-parser, simplifying your work. The pre-parser handles the low level details of extracting the link level information. Your plug-in can concentrate on higher level issues like formatting, adding another level of protocol, soft triggering or filtering. The plug-in depends on the pre-parser supplied user options for the basic protocol configuration. The mini plug-in can add additional options if needed (see the I2C plug-in example) but can not add new channelselect options. For example, if you have a custom protocol implemented over an ASYNC link, you could write a mini-plug-in based on the internal ASYNC pre-parser. The pre-parser will extract the ASYNC characters for you (like a UART would). Your plug-in would inspect the characters and look for your protocol's commands, parameters and any framing indications. Your plug-in would then display the protocol as you see fit.
A full plug-in is based on the RAW data pre-processor. The RAW pre-processor simple filters out all data samples that do not involve a transition on one of the channels your plug-in is monitoring. It does not provide any user configurable options. All user options for the protocol (including channel-selects) are specified by the plug-in. The plug-in is responsible for all low level interpretations of the signal changes. It looks for bit timing, enable levels, clock edges, etc. and determines what they mean.
A hybrid plug-in is based on an internal pre-parser like the mini-plug-in. However, it also specifies additional channels to watch and assumes all responsibility for them. In this configuration, DigiView sends the plug-in all of the events generated by the pre-parser as well as raw data events whenever one of the additional monitored channels transition. The pre-parser events and raw data events are properly time sequenced. A possible use for a hybrid plug-in might be to add a unique framing signal or additional control signals to an existing built-in protocol. For example, you might be sending ASYNC characters across a half-duplex bus. Your plug-in could monitor the DIRECTION control line and adjust the display formatting to differentiate which end of the link sent the message. The 'HalfDuplex' example plug-in demonstrates this.