XJIntegration is a .NET DLL that allows other .NET programs to open XJPack files (XJRunner projects) and to run the tests and functions they contain. Calling programs can easily obtain test results and integrate them into part of a larger test environment. XJIntegration also allows an XJAnalyser-style interface to be used to control individual pins and to read their values.
XJRunner Integration and XJAnalyser Integration can therefore be used in applications written in C# or other languages using the .NET framework. Python code can also make use of this by, for example, utilising third-party software such as Python.NET.
A set of training videos is available in the XJTAG Academy.
Languages that can interact with Microsoft’s .NET Framework, such as C#, Visual Basic, F#, and Microsoft C++/CLI, can access data structures and methods that allow XJTAG projects to be opened and their tests to be run.
To help you implement the features of XJRunner Integration and XJAnalyser Integration in your own test programs, the standard XJTAG installation comes with example C# files that are heavily commented. They can be freely copied to form additions to your code or used to help understand the principles that apply.
Code Examples Using XJRunner Integration
The C# files demonstrate how to create an XJLink instance and open a project, and how subsequently to use XJIntegration’s most important methods and events. They include examples of using XJRunner Integration to perform the following:
- Running the project’s complete test list with its default settings
- Running one particular test from the project’s test list
- Modifying the default settings that came from the test list
- Calling an underlying XJEase function rather than a complete test
- Returning control before a test has completed
Code Examples Using XJAnalyser Integration
The files include examples of using XJAnalyser Integration that show how to perform the following:
- Starting, pausing, and stopping the JTAG chain
- Accessing details of individual pins on the JTAG devices
- Setting and reading pins
Code Examples for Using Window Forms with XJIntegration
Another example is included that demonstrates how to use the XJIntegration assembly to set up a dialog using XJTAG output. It shows how to:
- Load an XJRunner project
- Populate a TreeView with the project’s tests
- Use a checkbox to show which tests will run
- Run selected tests using the TreeView
- Stop testing early
Using XJIntegration With Python
Because XJIntegration is a .NET DLL, your Python code can access XJTAG’s powerful boundary scan functionality by using IronPython or third-party software such as Python.NET.
You can then open an XJPack file and run its boundary scan tests and functions from your code. If you’re using Python to create your own test executive, XJIntegration provides the perfect way to incorporate JTAG boundary scan in your production test process.
Calling XJTAG From Python in Console Applications
The standard XJTAG installation comes with heavily commented example Python code that demonstrates how to use Python.NET to access the .NET framework and call the XJRunner Integration methods. The main example is based around testing the XJDemo board and illustrates how to perform the following:
- Adding the XJTAG install to the system path and referencing XJIntegration.dll
- Opening an XJPack file
- Initialising the JTAG controller
- Error handling
- How to incorporate user interaction during a test via the console
- Running a test list that was created in XJDeveloper
- Displaying test results in the console
- Selecting and deselecting tests from the test list
How to Call XJEase Functions from Your Python Script
The examples also demonstrate how you can call XJEase functions directly from the project rather than running tests from the test list, and how to use .NET arrays for a function’s input and output arguments.
Using Windows Forms to Host the XJTAG Output Box
Another example demonstrates how to use a graphical I/O box rather than the Python console interface. This can be used to provide more detailed text output, closer in style to XJRunner’s.
The example shows how to create an application window that hosts an output box by using the .NET framework’s Windows Forms library with Python.NET. It illustrates this by displaying the XJLink2’s self-test results in an XJTAG output box, which also handles the tests’ user input.
Locating Example Code
Example code in C# and Python can be found in directories below XJIntegration .NET Examples in the XJTAG Shared Files folder. Search the Help System for “Directory Structure” for assistance in locating it. The Python files are available in XJTAG version 3.11.3 and later.