Changelog

1.4.0

  • Fixed:

    • Calibrator now actually supports ELoad DeviceFamily. It was missing this in previous release.

  • Added:

    • New ParallelMeasurement base abstract class for parallel measurements.

    • New ParallelDCIR class, helping you create DCIR Parallel Measurements (based on the ParallelMeasurement abstract class). This includes new API calls and a new example:

      • dcir_parallel_simple.py - a basic parallel DCIR measurement.

    • New ParallelACIR class, helping you create ACIR Parallel Measurements (based on the ParallelMeasurement abstract class). This includes new API calls and a new examples:

      • acir_parallel_simple.py - a basic parallel ACIR measurement.

      • acir_parallel_create_compensation_file.py — basic parallel ACIR compensation with thermocouple.

      • acir_parallel_create_compensation_with_kit.py — parallel ACIR SHORT compensation using a KIT file.

    • New ParallelEIS class, helping you create EIS Parallel Measurements (based on the ParallelACIR and EIS classes). This includes new API calls and a new examples:

      • eis_parallel_simple.py - a basic parallel EIS measurement.

      • eis_parallel_create_compensation_file.py — basic parallel EIS compensation with thermocouple.

      • eis_parallel_create_compensation_with_kit.py — parallel EIS SHORT compensation using a KIT file.

    • New Simulated ELoad Example.

    • Checks for ELoad DeviceFamily in Simulated Device examples.

  • Changed:

    • SwitchAware behaviour is moved from Measurement to a separate SwitchingSupport mixin class.

    • Now only specific measurements using SwitchingSupport have run_with_switching function and complete SwitchAware behaviour.

    • Added type hints to all public API docstrings for improved API Reference documentation.

1.3.0

  • Fixed:

    • Replaced print() warning messages in temperature module with proper Python logging to stderr (issue #56).

  • Added:

    • Custom exception classes for unified error handling in errors.py:

      • BCQError (base class) and specific subclasses for common error scenarios (e.g., EmptySerialNumberError, HardwareIncompatibilityError, etc.):

        • Most of these come from the LabVIEW API.

        • Two are Python specific (DMMParameterError and TemperatureError).

      • These exceptions are now used throughout the codebase for clearer and more maintainable error handling.

  • Changed:

    • Testing is now done with the new Error Handling Framework.

1.2.1

  • Added:

    • TemperatureAware.validate_temperature(target_temperature) - Measures and Validates temperature for measurement classes (ACIR, EIS, etc.).

    • Historical changelog to documentation.

    • New Warnings to temperature validation logic, when delta was overwritten and when target is set but no measurement is available.

    • Two new examples showing error handling with both temperature and switching support is present.

    • New temperature property for TemperatureAware class, containing only the measured temperature value, without the delta limits.

  • Changed:

    • Temperature submodule:

      • Made TemperatureCapability.run_task() public.

      • Made TemperatureCapability.validate_latest_temperature() public.

      • Warning messages now prefixed with [nibcq] for clarity.

      • Renamed TemperatureParameter to a more generic CenteredRange name. The new field names are center and delta.

    • Measurement classes:

      • Now ACIR and EIS run() includes temperature validation when it is necessary and supported.

    • Examples:

      • Examples demonstrating temperature validation workflow in acir_with_temperature.py and eis_with_temperature.py.

      • Error handling in examples with temperature measurement.

    • Updated documentation, including new examples.

    • Renamed temperature_measurement property to temperature_range.

  • Fixed:

    • Temperature validation now correctly uses overridden acceptable_temperature_delta when user sets custom value.

    • Setting temperature delta now actually possible during device creation.

    • Compensation file creation examples set temperature delta correctly.

    • Added None check for target_temperature parameter in validation methods, solving an issue when using No Compensation compensation method.

    • Some typos.

1.2.0

  • Added:

    • Basic functionality for OCV, ACIR, DCIR and EIS measurements.

    • Switching support for multi-channel measurements.

    • Temperature measurement support with thermocouple integration.