Skip to content

solectrix/SXIVE-SCT

Solectrix SXIVE Sensor Configuration Tool

Quickstart

  • Install the software requirements: Installation
  • Create a sensor register description SXL file for the sensor you want to configure: Sensor Register Description File Format (SXL)
  • Connect the sensor to the proFRAME grabber card.
  • Start a SXIVE SoftISP instance as the backend for sensor communication: Use SXIVE SoftISP for Sensor Communication
  • Start the Sensor Configuration Tool.
  • Use the Target → Open Target… menu in SXIVE SCT to connect to the running SoftISP instance via the socket interface.
  • Use the File → Open… menu in SXIVE SCT to load a register description SXL file.
  • Select a register or a group of registers and press F1 to read the register values from the sensor.
  • Select a register and press F2 to modify its value. Note that only registers marked as writable in the register description file can be modified.

Requirements

The SXIVE Sensor Configuration Tool (SXIVE SCT) is written in Python and relies on the Solectrix SXIVE SoftISP as a backend for sensor communication. SXIVE SCT can connect remotely to a machine running a SXIVE SoftISP instance acting as a sensor server. Requirements are therefore split between the sensor server and SXIVE SCT itself.

Sensor Server

  • A Solectrix proFRAME PCIe frame grabber card with an adapter card matching the serializer of the camera head for which you want to configure the sensor.
  • A Solectrix SXIVE SoftISP installation on the system where the proFRAME card is installed. Note that SXIVE SoftISP is currently available for Linux only.

SXIVE SCT

  • Python 3.10 or later. See Installation for details.
  • A sensor register description (.sxl) file for the sensor you want to configure. The SXL file is created from the register map provided by the sensor or camera head manufacturer.

Installation

SXIVE SCT is a Python application. Follow the steps below to install it.

  1. Download the SXIVE SCT software package from the repository.

  2. Install Python 3.10 or later.

    • Linux: Most Linux distributions ship with a pre-installed Python interpreter.
    • Windows: Download an installer from python.org.
  3. Install the required Python packages using pip:

    • Linux: pip3 install -r requirements.txt
    • Windows: pip install -r requirements.txt
  4. Refer to the SXIVE SoftISP manual for instructions on installing the software and the proFRAME driver.

Sensor Register Description File Format (SXL)

A detailed description of the SXL format is available here.

Use SXIVE SoftISP for Sensor Communication

SXIVE SCT uses the Solectrix SXIVE SoftISP and the proFRAME grabber card as the backend for sensor communication. SXIVE SoftISP exposes a socket interface through which SXIVE SCT issues I²C read and write commands to the sensor. Because the interface is socket-based, SXIVE SCT can run on a different machine than SXIVE SoftISP via a network connection.

Communication Flow

Either of the following SXIVE SoftISP tools can be used to establish communication with the sensor:

SXIVE SoftISP Tool

The SXIVE SoftISP tool automatically starts a sensor server. Use this tool if you want to record or process the sensor image stream while reading or modifying the sensor configuration:

SoftISP -c $CONFIG proframe3 $OUTPUT --channel $CHANNEL [-d]

  • -c $CONFIG: Path to the SXIVE SoftISP configuration JSON file for the sensor you want to configure.
  • proframe3: The typical input driver name from the SXIVE SoftISP config file for the proFRAME input driver. The proFRAME input driver is required for sensor communication.
  • $OUTPUT: The output driver name from the SXIVE SoftISP config file, e.g. gui to display the output image on screen.
  • --channel $CHANNEL: The proFRAME channel number to which the sensor is connected. Refer to the SXIVE SoftISP documentation for proFRAME channel numbering.
  • -d: Optional. Pass this flag if the sensor is already initialized. Omitting it will run the sensor initialization defined in the config file.

Start SXIVE SoftISP with the -v option to have it log the listening port to the console, e.g. SocketServer listening on port 1234.

SensorServer Tool

If image stream recording or processing is not required, use the SXIVE SensorServer tool. It accepts the same arguments as SXIVE SoftISP, except that no output driver is specified:

SensorServer -c $CONFIG proframe3 --channel $CHANNEL [-d] --server_port $SOCKET_PORT

  • --server_port $SOCKET_PORT: Overrides the default TCP port (1234) for the socket interface server.

For further information on SXIVE SoftISP or SensorServer usage, refer to the SXIVE SoftISP manual.

SXIVE SCT Usage

This section describes how to use SXIVE SCT after the sensor has been initialized, a sensor server backend is running, and a register description SXL file has been created.

Connect to the Sensor Server

  • Select Target → Open Target… in SXIVE SCT.
  • Enter the IP address or hostname of the machine running the sensor server. Use localhost if it is running on the same machine as SXIVE SCT.
  • Enter the port number of the sensor server. See Use SXIVE SoftISP for Sensor Communication for how to determine the port number.
  • The sensor device address can be specified in the SXL file, but it can also be overridden here. Leave the Device field blank or enter the I²C address explicitly.
  • If the connection fails, verify that the sensor server is running and that the port number is correct. If SXIVE SCT is running on a different machine, ensure that a network path exists between both machines and that no firewall or other network device is blocking TCP connections on the configured port.

Load an SXL File

  • Select File → Open… in SXIVE SCT.
  • Browse to the folder containing the SXL file for the sensor you want to configure and select it.

Browse Definitions

After loading an SXL file, the complete sensor register description is displayed as a tree view in the center of SXIVE SCT. Registers are typically grouped into functional sub-blocks. Expand a block by clicking the + symbol in the tree view. The lowest hierarchy level is the signal, which represents a logical data unit of a specific type such as an integer value or a flag. Refer to Sensor Register Description File Format (SXL) for a detailed description of the SXL syntax and structure.

Full Window

The register address is shown in the Info column, merged with the device address. See I²C Addresses in SXIVE SCT for details on the address format.

Read Signal Values

Select a register or signal in the tree view and press F1 to read its current value from the sensor. The value is shown in the Data column and interpreted according to the type definition in the SXL file.

Selecting a sub-block and pressing F1 reads all registers within that block in a single operation.

Modify Signal Values

Select a signal in the tree view and press F2 to modify its value. Single-bit signals toggle their state immediately. For multi-bit signals, a dialog opens allowing you to enter or select the new value. For enum signals, the value cycles to the next defined enum entry. Double-clicking a signal is equivalent to pressing F2.

Note that only signals whose parent register is marked as writable in the SXL file can be modified.

Signal Monitor

The Signal Monitor is a dock panel that allows you to build a persistent list of signals for repeated observation. Drag any signal from the register tree and drop it onto the Signal Monitor panel to add it to the list. Each entry can be individually enabled or disabled using the checkbox in the first column.

  • Poll Once: Reads all enabled signals in the list once.
  • Cycle: Reads all enabled signals repeatedly at the interval configured in the Interval field.
  • Enable: Globally enables or disables the Signal Monitor. When disabled, polling is suspended and all entries are grayed out.

The Signal Monitor list and its settings (enabled state and polling interval) are saved per SXL file and automatically restored the next time that file is loaded.

Filter

The filter field above the tree view restricts the displayed items to those whose name matches the entered expression. The filter applies to one of three target types, selectable from the drop-down:

  • Signal: Matches signal names.
  • Register: Matches register names.
  • Tag: Matches tag annotations defined in the SXL file.

The filter expression supports wildcards: * matches any sequence of characters and ? matches a single character. Matching is case-insensitive.

Filter field

Hint: The example parsers for selected Sony sensors define Category tags, which Sony uses for functional grouping of signals. Filtering by a tag such as Category:42 reduces the tree to only the signals belonging to that group. Tags can be assigned for any grouping purpose during SXL file generation.

I²C Addresses in Context of SXIVE SCT

Device and register I²C addresses are combined into a single 32-bit value. The most significant byte holds the 8-bit device address; the remaining bytes hold the 8-bit or 16-bit register address of the device.

For example, 0x36001234 denotes device address 0x36 and register address 0x1234.

Parser Examples

SXL files are typically generated once from the register-map document provided by the sensor manufacturer. The parsers/ folder contains ready-to-use conversion scripts for selected sensors, as well as a detailed guide on:

  • How the SXL intermediate format fits into the workflow
  • How to run the existing parsers (Excel and IP-XACT XML inputs)
  • How to use the sxl Python library to write a new parser

See the Parsers README for full documentation.

About

SXIVE Sensor Configuration Tool

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages