Skip to content

Releases: xiallc/PixieSDK

C API test suite

23 Oct 11:26
Compare
Choose a tag to compare

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

06 Aug 18:19
Compare
Choose a tag to compare

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

27 May 10:42
Compare
Choose a tag to compare

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

24 May 11:22
Compare
Choose a tag to compare

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

24 May 11:16
Compare
Choose a tag to compare

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.

Legacy API Removal

02 Aug 21:11
Compare
Choose a tag to compare

Release Notes

New Features

  • Removes Legacy API files, documentation, and support.

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.

Adds support for offline modules

02 Aug 21:09
Compare
Choose a tag to compare

Notice

This is the final release before removal of the Legacy API.

Release Notes

New Features

  • Adds support for tracking modules in various states of the boot process.
  • Adds PLX Mailbox support, which is used to track module information such as how many times the module has been opened.

Updates

  • Migrates all documentation to a separate documentation repository. Documentation can now be accessed via https://docs.pixie16.xia.com
  • Updates omnitool command structure to include command grouping
  • Moves ISO-8601 time string formats to the utility namespace

Bug Fixes

  • Fixes Broadcom search paths on Windows systems.

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.

Crate Simulation added to C API

30 May 21:48
Compare
Choose a tag to compare

Release Notes

New Features

  • Added new statistics function to SDK that returns the hardware statistics as a JSON string.
  • Added support for offline mode in the Pixie-16 C API using the crate simulation framework.

Updates

  • Updated synchronous run logic to check for leader modules before executing a synchronous run.
  • Synchronous runs are now prevented from starting when offline modules are present in the crate.
  • Cleaned up all compiler warnings in Debug builds
  • Debug builds now error out when the compiler issues a warning.

Bug Fixes

  • Fixes issue with GCC 10+ that prevented Legacy C API unit tests to fail when linking.
  • Fixed a bug in example_pixie16api that caused module parameters to be improperly set to 1.
  • Fixed issue in the backplane object that prevented broadcast variables from synchronizing to all modules.
  • Fixed issue in the omnitool that prevented synchronous runs from stopping cleanly.
  • Fixed convergence issue in the adjust offsets routine that caused all baselines to converge to the same value.
  • Fixes bug in CMake function that affected Legacy C API builds.
  • Fixes bug in omnitool where floating point numbers were truncated when writing parameters.
  • Fixes bug in the omnitool where the var-write command didn't accept channel ranges when setting a channel variable.

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 quality of life

17 Feb 12:45
Compare
Choose a tag to compare

Release Notes

New Features

  • Enabled the INTEGRATOR parameter

Updates

  • Updates how the framework handles PCI enumeration to remove red herring errors about PLX_STATUS_INVALID_OBJECT
  • Updates behavior of module::close to ensure that active runs are stopped before attempting to close the module. This mimics the legacy behavior.
  • DRYed out C++ examples where possible.
  • Ensures that components that do not need PLX are not linked to it.
  • Adds the ability to define an output directory for the example code outputs.
  • Disables the MinSizeRel build option since we do not allow customization of the optimization.
  • Omnitool now defaults to debug log level
  • Omnitool parameter commands now order the arguments in increasing specificity.
  • Fixes messaging around module read/write checks that produced error messages as part of normal operation
  • Example code now outputs hardware statistics to 12 digits.
  • Example code now outputs results when an MCA run is forced to end.
  • Example code now outputs hardware statistics during the course of a run.

Bug Fixes

  • Resolved logic errors that attempted to execute baseline control tasks on Rev H modules.
  • MCA runs that use HOST_RT_PRESET to stop no longer need to be forced stopped before starting a new run.
  • Pixie16Compute functions could return error codes instead of computed values, this removes confusion regarding return value usage.
  • Fixes boot modes logic to ensure that users cannot boot the system into a non-functional state.
  • Fixes error in Omnitool that was truncating parameter inputs.
  • Fixes error in the Pixie16Api that may prevent modules from being reported online after a boot.
  • Fixes an error where the synchronization header wasn't installed properly.
  • Resolves an issue where the CMake build type didn't get set properly under certain circumstances
  • Fixes error in the backplane framework that prevented users from modifying the leader module's MODULE_CSRB.
  • Fixes issue in the default trace delay and length values that caused delay to be longer than the length.

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.

Expands support for old CPLD variants

10 Nov 12:41
Compare
Choose a tag to compare

Release Notes

New Features

  • Adds support for old CPLD variants by dynamically checking communication timing for each module.

Updates

  • Legacy example more closely matches SDK examples.
  • Changes file handling logic in list_mode_file_stats to ensure the decoding doesn't consume all available memory for large files.
  • Update data visualization to include information about how to setup environments.
  • Updates example statistics output to ensure no data loss when displayed in scientific notation.
  • Updated functions to ensure that we properly gate functionality based on module revision.
  • Refactors SDK to separate daughter fixtures into

Bug Fixes

  • Fixes an issue in the List-Mode worker statistics accounting where data rates were not getting calculated 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.