Repository navigation
Releases: xiallc/PixieSDK
Release list
Example program overhaul
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
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
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
Pixie16BootModuleFirmwarebecause the name obfuscated the function's purpose.
Bug Fixes
- Fixes definition of the
BOOTPATTERN_COMFPGA_BITbit 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-plotcommand, 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
API Replacements
fifo_worker_config->module_fifo_configPixieGetWorkerConfiguration->PixieGetFifoConfigurationPixieSetWorkerConfiguration->PixieSetFifoConfigurationPixie16ComputeProcessedEventshas no replacment as this was only supported on Rev A boards.
Release Notes
Updates
- Removes
Pixie16ComputeProcessedEvents,PixieSetWorkerConfiguration,PixieGetWorkerConfiguration, andfifo_worker_configto 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
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_valueto 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
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
.cppfiles 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
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_FIRMWAREenvironment variable toTRUE
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
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
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
Release Notes
New Features
- Implements firmware management infrastructure to automatically detect and load
firmware found on the system. - Added
/qa/afe/offset-sweepcommand 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_parametersso 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.