Skip to content

Releases: xiallc/PixieSDK

Example program overhaul

Choose a tag to compare

@xia-stan xia-stan released this 16 Jul 21:10

Release Notes

Updates

  • Breaks up example_pixie16 into several files that provide much clearer demonstration of the API's capabilities. The new examples also use threaded data readout for the MCA and list-mode data, which is in-line with our thread-safe API.

Fixes PLX search functionality

Choose a tag to compare

@xia-stan xia-stan released this 16 Jul 21:08

Release Notes

Update

  • The PLX device find now mirrors the one found in the PLX Command-line Monitor (PlxCm). This resolves a potential issue where the same device gets reported multiple times by the PLX Driver.

Boot and re-boot

Choose a tag to compare

@xia-stan xia-stan released this 18 Mar 19:43

Release Notes

New Features

  • Adds guardrails to trace length and delay when using Revision H modules. These modules have limitations on maximum length and values that they can take.
  • Adds MIB nodes to manage ADC test modes in Revision H modules.
  • Adds new API call (Pixie16RebootModule), which allows users to reboot a module using a settings file and boot flag.

Updates

  • DEPRECATED Pixie16BootModuleFirmware because the name obfuscated the function's purpose.

Bug Fixes

  • Fixes definition of the BOOTPATTERN_COMFPGA_BIT bit which may lead to incorrect boot behavior when using the legacy boot pattern.
  • Fixes issue in omnitool wait and sysctl commands that may cause incorrect help or execution.
  • Fixes bug in example_pixie16api that prevented offline boots from happening.
  • Fixes argument order in omnitool adc-plot command, which prevented plots from executing properly.

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

Removed deprecated API functions

Choose a tag to compare

@xia-stan xia-stan released this 09 May 21:15

API Replacements

  • fifo_worker_config -> module_fifo_config
  • PixieGetWorkerConfiguration -> PixieGetFifoConfiguration
  • PixieSetWorkerConfiguration -> PixieSetFifoConfiguration
  • Pixie16ComputeProcessedEvents has no replacment as this was only supported on Rev A boards.

Release Notes

Updates

  • Removes Pixie16ComputeProcessedEvents, PixieSetWorkerConfiguration, PixieGetWorkerConfiguration, and fifo_worker_config to align with deprecation notice.

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

GCC 14.2.0 support and quality-of-life fixes

Choose a tag to compare

@xia-stan xia-stan released this 09 May 21:08

Release Notes

New Features

  • Adds new tests to check for issues where list-mode overflows may cause processing issues.
  • Omnitool now has a built-in plotter that allows simple data plotting within the terminal.

Updates

  • Updates code to support GCC 14.2.0
  • Improves MIB compare speed to prevent long MIB processing times.
  • Updates the API error handling to DRY out the code and improve performance.
  • Adds explicit chrono headers to improve compiler compatibility.
  • Omnitool can now execute scripts from within the shell instead of only from the CLI.
  • Improves omnitool's par/var-read display so that it doesn't cut off large numbers like the Channel CSRA.

Bug Fixes

  • Fixes issue when outputting CRC32 string values.
  • Fixes an issue where initializing the crate simulation with a slot map would cause the simulation to crash.
  • Fixes an issue in the omnitool CLI firmware flag that used the wrong delimiter, which caused issues when parsing Windows files.
  • Fixes an issue in list_mode_file_stats example that caused a decoding error.
  • Resolves broken links in READMEs
  • Fixes default install paths so that they're consistent with linux and Windows platforms
  • Fixes spelling, grammar, and content issues in omnitool help messages
  • Fixes issue in the example program where enabling offline mode would require an argument.
  • Fixes error text for invalid_value to be consistent with the error name

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

C API test suite

Choose a tag to compare

@xia-stan xia-stan released this 23 Oct 11:26

Release Notes

New Features

  • Added C API access to the MIB
  • Imported a C test framework to the project
  • Added C API test suite written in C to guard against regressions and bugs

Updates

  • Simulation framework now
    • has a simulated PLX memory block used to emulate module data and responses
    • reflects run status information after starting data runs
    • has full MIB support
    • builds Revision H modules and daughterboards
  • MIB now keeps the last 1000 log messages in memory
  • Omnitool now generates crate reports before loading firmware

Bug Fixes

  • Fixed NULL checks in .cpp files to use nullptr
  • Fixed extension on os compatibility header to be C instead of C++

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

Bug fixes and updates

Choose a tag to compare

@xia-stan xia-stan released this 06 Aug 18:19

Release Notes

New Features

  • Adds compiler warnings for deprecated API components.
  • Adds daughterboard unit and integration tests
  • Adds a variable mode to make a variable write once to prevent overwriting variables.
  • Users may no optionally disable firmware loading from the default path by setting the PIXIE_DISABLE_SYSTEM_FIRMWARE environment variable to TRUE

Updates

  • Updates FindBroadcomAPI.cmake to properly find the 64-bit libraries on Windows.
  • Streamlined firmware report generation to reduce maintenance
  • Updates simulation framework to load EEPROMs
  • Adds JSON output to the sysctl command
  • Migrates all typedefs to using
  • Makes the API crate a static object to ensure that its state isn't lost.
  • Updates the MIB infrastructure to guarantee that it's always destructed last. This ensures we can report up to the point we close the API.
  • Updates GetModuleInfo so that it reports against the resident firmware regardless of the state of the default firmware path.
  • Updates the example code to align with the documentation.

Bug Fixes

  • Fixed issue where destroying a DB object wouldn't clear that object's MIB.
  • Fixes issue where the MCA memory test would impact all output streams
  • Fixes issue where the Slot ID may not get set properly before a boot.
  • Fixes issue where we may attempt to boot modules that were forced offline.
  • Fixes issue where the omnitool wouldn't interpret negative value command arguments

Firmware report fix

Choose a tag to compare

@xia-stan xia-stan released this 27 May 10:42

Release Notes

Bug Fixes

  • Fixes bug in the omnitool firmware reports that prevented reporting on all firmware registered with the crate.

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

Pixie-16 x1 12-500 (DB10) support

Choose a tag to compare

@xia-stan xia-stan released this 24 May 11:22

Release Notes

New Features

  • Adds Pixie-16 x1 12-500 (DB10) support
  • Adds MCA memory tests to omnitool qa commands

Updates

  • Updates boot logging to be less verbose by default.

Bug Fixes

  • Fixes bug where starting MCA runs could clear MCA memory out of valid ranges.
  • Fixes issue where reporting on closed modules would cause a segfault
  • Fixes Windows issue that prevented automatic firmware finding
  • Fixes issue where the serial number and module revision were stored in the PLX mailbox out of order.

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.

Pixie-16 X2 (14-125) Support

Choose a tag to compare

@xia-stan xia-stan released this 24 May 11:16

Release Notes

New Features

  • Implements firmware management infrastructure to automatically detect and load
    firmware found on the system.
  • Added /qa/afe/offset-sweep command to omnitool to test hardware noise and gain.
  • Adds a generic MIB that improves maintainability and reporting.
  • Adds support for Pixie-16 X2 (14-125) modules
  • Adds PixieRegisterCrateFirmware to the C API for registering firmware with the system.
  • Adds the firmware CRC to the PCI mailbox to track module's resident firmware.
  • Adds DB10 EEPROM support.

Updates

  • Updated minimum C++ standard to 17.
  • Updated reporting infrastructure to provide more comprehensive system reports.
  • Moved pixie16_omnitool to the tools directory and refactored for easier maintenance.
  • Updated the boot infrastructure to be compatible with the firmware management.
  • Adds an interactive mode to the omnitool, which is now the default mode.
  • Overhauled the example programs to make them production quality.
  • Adds tab completions to the omnitool interactive mode.
  • Enforces that a Revision H module's DBs all be of the same type.
  • Added run guards to ensure users cannot put the system into an unknown state during a data run.
  • Improved configuration file handling to make it more efficient.
  • Adds the ability to import a configuration for a single module.
  • Finalized removal of legacy settings file support.
  • Clarified supported operating systems.
  • Updated omnitool list-mode commands to allow reading of stats information during a run.
  • Updated omnitool default to using slot number instead of logical mapping.
  • Increases SDK test coverage
  • Updated hardware I/O to ensure that we have access to the hardware before executing.

Bug Fixes

  • Fixed copy_parameters so that it copies module and channel parameters
  • Updated documentation to include settings file handling for parallel boots
  • Fixed a bug in the omnitool that caused settings files to be modified during import.
  • Fixed a thread issue in parallel boot logic that could cause programs to terminate without exceptions
  • Fixed bug in unit tests that caused assertions to vary between executions.

API Update Policy

By necessity, we will be making changes to the public API calls and the SDK. We will adopt a process
of depreciating interfaces then removing them. We will provide notice of

  • no less than 12 months before removing an interface,
  • and no less than 6 months before changing an interface.

Notices will appear in the source code, documentation, and release notes. We will notify users via
email 30 days prior to the deprecation date.

Deprecated interfaces will receive bug fixes during their deprecation phase, but will receive no
added functionality. This policy may not cover all situations, and will evolve over time. For
situations that don’t fit neatly into this policy, we will ensure that the information is available
in all relevant Release Notes.