In XJTAG 3.9 the previous .NET-based integration has been replaced with a new XJIntegration API.

The new API still uses .NET 4.7.1 and contains all the XJRunner Integration functionality of previous releases – but also introduces XJAnalyser Integration, a new .NET API for XJAnalyser.

Also included in the XJTAG installation is a range of projects demonstrating how to use the API through LabVIEW, TestStand and C#.

The new API provides access to much of the functionality of XJAnalyser, giving direct read and write access to JTAG-enabled devices and pins. This means that the integration could be used in conjunction with external hardware to test or debug the circuit board. The example projects are included in the standard XJTAG installation and reuse of the code in these projects makes it easy to set up your own project in a variety of programming environments.

The methods available in the integration make it straightforward to start reading and driving pins:

    _xjlink = XJLink.GetXJLink();
    _project = new AnalyserProject(projectPath);
    _chainRunner = _project.GetChainRunner(_xjlink);
    var pin = _chainRunner.Chain.GetPinByNumber("IC1", "42");
    pin.ReadValueChanged += Pin_ReadValueChanged;

    _chainRunner.Start();
    pin.SetOutput(PinValue.Low);

Other features of the XJAnalyser Integration include:

  • A single-step mode of running the chain, which allows values to be preloaded onto pins before performing a single scan of the JTAG chain.
  • The ability to set the JTAG device mode of each device in the chain.
  • Configuration of the TCK frequency for the the chain to run at.
  • Custom conflict resolutions – either set a default resolution before running, or decide how to manually resolve a conflict on a particular pin by handling an event.

All classes, methods, properties and events in the XJIntegration assembly are fully documented under the XJIntegration section of the XJTAG Help files.