FrameInfo

Per-frame metadata (capture timestamp, software version that produced it, …).

class FrameInfo

Various information for a frame.

Public Functions

FrameInfo()

Default constructor.

explicit FrameInfo(const std::string &fileName)

Construct FrameInfo by loading from file.

std::string serialize() const

Serialize to a string.

See also fromSerialized. The returned string is formatted in YAML, and is compatible with the contents of files saved using save.

template<typename ...Args>
inline explicit FrameInfo(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing FrameInfo then invoking set(args).

The provided arguments must be descendants of FrameInfo. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of FrameInfo. These types can be provided:

template<typename ...Args>
inline FrameInfo copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this FrameInfo object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of FrameInfo. These types can be provided:

inline const Diagnostics &diagnostics() const

Get Diagnostics.

inline Diagnostics &diagnostics()

Get Diagnostics.

inline FrameInfo &set(const Diagnostics &value)

Set Diagnostics.

inline FrameInfo &set(const Diagnostics::PacketLoss &value)

Set Diagnostics::PacketLoss.

inline const Metrics &metrics() const

Get Metrics.

inline Metrics &metrics()

Get Metrics.

inline FrameInfo &set(const Metrics &value)

Set Metrics.

inline FrameInfo &set(const Metrics::AcquisitionTime &value)

Set Metrics::AcquisitionTime.

inline FrameInfo &set(const Metrics::CaptureTime &value)

Set Metrics::CaptureTime.

inline FrameInfo &set(const Metrics::KernelComputeTime &value)

Set Metrics::KernelComputeTime.

inline FrameInfo &set(const Metrics::ReprocessingTime &value)

Set Metrics::ReprocessingTime.

inline FrameInfo &set(const Metrics::ThrottlingTime &value)

Set Metrics::ThrottlingTime.

inline const SoftwareVersion &softwareVersion() const

Get SoftwareVersion.

inline SoftwareVersion &softwareVersion()

Get SoftwareVersion.

inline FrameInfo &set(const SoftwareVersion &value)

Set SoftwareVersion.

inline FrameInfo &set(const SoftwareVersion::Core &value)

Set SoftwareVersion::Core.

inline const SystemInfo &systemInfo() const

Get SystemInfo.

inline SystemInfo &systemInfo()

Get SystemInfo.

inline FrameInfo &set(const SystemInfo &value)

Set SystemInfo.

inline FrameInfo &set(const SystemInfo::CPU &value)

Set SystemInfo::CPU.

inline FrameInfo &set(const SystemInfo::CPU::Model &value)

Set SystemInfo::CPU::Model.

inline FrameInfo &set(const SystemInfo::ComputeDevice &value)

Set SystemInfo::ComputeDevice.

inline FrameInfo &set(const SystemInfo::ComputeDevice::Model &value)

Set SystemInfo::ComputeDevice::Model.

inline FrameInfo &set(const SystemInfo::ComputeDevice::Vendor &value)

Set SystemInfo::ComputeDevice::Vendor.

inline FrameInfo &set(const SystemInfo::OperatingSystem &value)

Set SystemInfo::OperatingSystem.

inline const TimeStamp &timeStamp() const

Get TimeStamp.

inline TimeStamp &timeStamp()

Get TimeStamp.

inline FrameInfo &set(const TimeStamp &value)

Set TimeStamp.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const FrameInfo &other) const

Equality operator.

bool operator!=(const FrameInfo &other) const

Inequality operator.

std::string toString() const

Get the value as string.

void save(const std::string &fileName) const

Save to the given file.

void load(const std::string &fileName)

Load from the given file.

Public Static Functions

static FrameInfo fromSerialized(const std::string &value)

Construct a new FrameInfo instance from a previously serialized string.

See also serialize.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {""}

The full path for this value.

static constexpr const char *name = {"FrameInfo"}

The name of this value.

static constexpr const char * description   = { R"description(Various information for a frame)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const FrameInfo &value)

Operator to send the value as string to a stream.

class Diagnostics

Diagnostic information for frame.

Public Functions

Diagnostics()

Default constructor.

template<typename ...Args>
inline explicit Diagnostics(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing Diagnostics then invoking set(args).

The provided arguments must be descendants of Diagnostics. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of Diagnostics. These types can be provided:

template<typename ...Args>
inline Diagnostics copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this Diagnostics object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of Diagnostics. These types can be provided:

inline const PacketLoss &packetLoss() const

Get PacketLoss.

inline PacketLoss &packetLoss()

Get PacketLoss.

inline Diagnostics &set(const PacketLoss &value)

Set PacketLoss.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const Diagnostics &other) const

Equality operator.

bool operator!=(const Diagnostics &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"Diagnostics"}

The full path for this value.

static constexpr const char *name = {"Diagnostics"}

The name of this value.

static constexpr const char * description   = { R"description(Diagnostic information for frame)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Diagnostics &value)

Operator to send the value as string to a stream.

class PacketLoss

Is frame missing any data.

Public Types

using ValueType = bool

The type of the underlying value.

Public Functions

PacketLoss() = default

Default constructor.

inline explicit constexpr PacketLoss(bool value)

Constructor.

bool value() const

Get the value.

std::string toString() const

Get the value as string.

inline explicit operator bool() const

Convert to bool where appropriate.

inline bool operator==(const PacketLoss &other) const

Comparison operator.

inline bool operator!=(const PacketLoss &other) const

Comparison operator.

Public Static Functions

static inline std::set<bool> validValues()

All valid values of PacketLoss.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Diagnostics/PacketLoss"}

The full path for this value.

static constexpr const char *name = {"PacketLoss"}

The name of this value.

static constexpr const char * description   = { R"description(Is frame missing any data)description" }

The description for this value.

static const PacketLoss yes

On/enabled.

static const PacketLoss no

Off/disabled.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const PacketLoss &value)

Operator to serialize the value to a stream.

class Metrics

Metrics related to this capture.

Public Functions

Metrics()

Default constructor.

template<typename ...Args>
inline explicit Metrics(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing Metrics then invoking set(args).

The provided arguments must be descendants of Metrics. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of Metrics. These types can be provided:

template<typename ...Args>
inline Metrics copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this Metrics object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of Metrics. These types can be provided:

inline const AcquisitionTime &acquisitionTime() const

Get AcquisitionTime.

inline AcquisitionTime &acquisitionTime()

Get AcquisitionTime.

inline Metrics &set(const AcquisitionTime &value)

Set AcquisitionTime.

inline const CaptureTime &captureTime() const

Get CaptureTime.

inline CaptureTime &captureTime()

Get CaptureTime.

inline Metrics &set(const CaptureTime &value)

Set CaptureTime.

inline const KernelComputeTime &kernelComputeTime() const

Get KernelComputeTime.

inline KernelComputeTime &kernelComputeTime()

Get KernelComputeTime.

inline Metrics &set(const KernelComputeTime &value)

Set KernelComputeTime.

inline const ReprocessingTime &reprocessingTime() const

Get ReprocessingTime.

inline ReprocessingTime &reprocessingTime()

Get ReprocessingTime.

inline Metrics &set(const ReprocessingTime &value)

Set ReprocessingTime.

inline const ThrottlingTime &throttlingTime() const

Get ThrottlingTime.

inline ThrottlingTime &throttlingTime()

Get ThrottlingTime.

inline Metrics &set(const ThrottlingTime &value)

Set ThrottlingTime.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const Metrics &other) const

Equality operator.

bool operator!=(const Metrics &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"Metrics"}

The full path for this value.

static constexpr const char *name = {"Metrics"}

The name of this value.

static constexpr const char * description   = { R"description(Metrics related to this capture.)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Metrics &value)

Operator to send the value as string to a stream.

class AcquisitionTime

Acquisition Time is the duration from the start of the capture to when the camera has acquired the last image.

After this time, the camera has finished its acquisition and you can move the robot, or capture with another camera with overlapping field of view. Acquisition Time is equal to the time it takes for the Camera::capture(settings) API function call to return.

Public Types

using ValueType = std::chrono::microseconds

The type of the underlying value.

Public Functions

AcquisitionTime() = default

Default constructor.

inline explicit constexpr AcquisitionTime(std::chrono::microseconds value)

Constructor.

std::chrono::microseconds value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const AcquisitionTime &other) const

Comparison operator.

inline bool operator!=(const AcquisitionTime &other) const

Comparison operator.

inline bool operator<(const AcquisitionTime &other) const

Comparison operator.

inline bool operator>(const AcquisitionTime &other) const

Comparison operator.

inline bool operator<=(const AcquisitionTime &other) const

Comparison operator.

inline bool operator>=(const AcquisitionTime &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::microseconds> validRange()

The range of valid values for AcquisitionTime.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Metrics/AcquisitionTime"}

The full path for this value.

static constexpr const char *name = {"AcquisitionTime"}

The name of this value.

static constexpr const char * description  {R"description(Acquisition Time is the duration from the start of the capture to when the camera has acquired thelast image. After this time, the camera has finished its acquisition and you can move the robot,or capture with another camera with overlapping field of view. Acquisition Time is equal to thetime it takes for theCamera::capture(settings) API function call to return.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const AcquisitionTime &value)

Operator to serialize the value to a stream.

class CaptureTime

Capture Time is the duration from the start of the capture to when all of the data transfer and processing has completed.

After this time the 3D point cloud and/or 2D color image is ready and available on the GPU memory, and can be copied to the system memory (RAM).

Public Types

using ValueType = std::chrono::microseconds

The type of the underlying value.

Public Functions

CaptureTime() = default

Default constructor.

inline explicit constexpr CaptureTime(std::chrono::microseconds value)

Constructor.

std::chrono::microseconds value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const CaptureTime &other) const

Comparison operator.

inline bool operator!=(const CaptureTime &other) const

Comparison operator.

inline bool operator<(const CaptureTime &other) const

Comparison operator.

inline bool operator>(const CaptureTime &other) const

Comparison operator.

inline bool operator<=(const CaptureTime &other) const

Comparison operator.

inline bool operator>=(const CaptureTime &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::microseconds> validRange()

The range of valid values for CaptureTime.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Metrics/CaptureTime"}

The full path for this value.

static constexpr const char *name = {"CaptureTime"}

The name of this value.

static constexpr const char * description  {R"description(Capture Time is the duration from the start of the capture to when all of the data transfer andprocessing has completed. After this time the 3D point cloud and/or 2D color image is ready andavailable on the GPU memory, and can be copied to the system memory (RAM).)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CaptureTime &value)

Operator to serialize the value to a stream.

class KernelComputeTime

Kernel Compute Time is the duration of the compute on the GPU.

It is a subset of Capture Time. Kernel Compute Time depends on the capture settings and the compute power of the GPU. Note that Kernel Compute Time + Acquisition Time is not equal to Capture Time, as acquisition and processing operations can be performed in parallel.

Public Types

using ValueType = std::chrono::microseconds

The type of the underlying value.

Public Functions

KernelComputeTime() = default

Default constructor.

inline explicit constexpr KernelComputeTime(std::chrono::microseconds value)

Constructor.

std::chrono::microseconds value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const KernelComputeTime &other) const

Comparison operator.

inline bool operator!=(const KernelComputeTime &other) const

Comparison operator.

inline bool operator<(const KernelComputeTime &other) const

Comparison operator.

inline bool operator>(const KernelComputeTime &other) const

Comparison operator.

inline bool operator<=(const KernelComputeTime &other) const

Comparison operator.

inline bool operator>=(const KernelComputeTime &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::microseconds> validRange()

The range of valid values for KernelComputeTime.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Metrics/KernelComputeTime"}

The full path for this value.

static constexpr const char *name = {"KernelComputeTime"}

The name of this value.

static constexpr const char * description  {R"description(Kernel Compute Time is the duration of the compute on the GPU. It is a subset of Capture Time. KernelCompute Time depends on the capture settings and the compute power of the GPU. Note that Kernel ComputeTime + Acquisition Time is not equal to Capture Time, as acquisition and processing operations can beperformed in parallel.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const KernelComputeTime &value)

Operator to serialize the value to a stream.

class ReprocessingTime

Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on a previously acquired frame.

Reprocessing is available in Zivid Studio for captures with Diagnostics Mode enabled. The ReprocessingTime field is only set if this frame was reprocessed after it was initially captured, otherwise it will be unset.

Reprocessing Time is the duration from the start of the reprocessing action and until all processing of the new frame has finished. After this time the 3D point cloud and/or 2D color image is ready and available on the GPU memory and can be copied to the system memory (RAM).

Reprocessing Time depends on the processing settings that are enabled, which capture engine that was used, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends on the compute power of the compute device.

Note that for a frame that has been re-processed, the Acquisition Time and Capture Time refers to the originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.

Public Types

using ValueType = std::chrono::microseconds

The type of the underlying value.

Public Functions

ReprocessingTime() = default

Default constructor.

inline explicit constexpr ReprocessingTime(std::chrono::microseconds value)

Constructor.

std::chrono::microseconds value() const

Get the value.

If this object does not contain a value (see hasValue) then this method throws an exception.

bool hasValue() const

Check if the value is set.

void reset()

Reset the node to unset state.

std::string toString() const

Get the value as string.

inline bool operator==(const ReprocessingTime &other) const

Comparison operator.

inline bool operator!=(const ReprocessingTime &other) const

Comparison operator.

inline bool operator<(const ReprocessingTime &other) const

Comparison operator.

inline bool operator>(const ReprocessingTime &other) const

Comparison operator.

inline bool operator<=(const ReprocessingTime &other) const

Comparison operator.

inline bool operator>=(const ReprocessingTime &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::microseconds> validRange()

The range of valid values for ReprocessingTime.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Metrics/ReprocessingTime"}

The full path for this value.

static constexpr const char *name = {"ReprocessingTime"}

The name of this value.

static constexpr const char * description  {R"description(Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on apreviously acquired frame. Reprocessing is available in Zivid Studio for captures withDiagnosticsModeenabled. TheReprocessingTime field is only set if this framewas reprocessed after it was initiallycaptured, otherwise it will be unset.Reprocessing Time is the duration from the start of the reprocessing action and until all processingof the newframehas finished. After this time the 3D point cloud and/or 2D color image is ready andavailable on the GPU memory and can be copied to the system memory (RAM).Reprocessing Time depends on the processing settings that are enabled, which capture engine that wasused, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends onthe compute power of the compute device.Note that for aframethat has been re-processed, the Acquisition Time and Capture Time refers tothe originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const ReprocessingTime &value)

Operator to serialize the value to a stream.

class ThrottlingTime

Throttling Time is the duration that the capture was paused due to thermal or other constraints on the camera’s components while it was capturing this frame.

This duration is part of the overall Acquisition Time. If the camera throttled during a capture, it will result in a longer Acquisition Time.

Whether or not the camera will throttle depends on the ambient temperature, the capture settings, and the how frequently the camera is capturing.

Public Types

using ValueType = std::chrono::microseconds

The type of the underlying value.

Public Functions

ThrottlingTime() = default

Default constructor.

inline explicit constexpr ThrottlingTime(std::chrono::microseconds value)

Constructor.

std::chrono::microseconds value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const ThrottlingTime &other) const

Comparison operator.

inline bool operator!=(const ThrottlingTime &other) const

Comparison operator.

inline bool operator<(const ThrottlingTime &other) const

Comparison operator.

inline bool operator>(const ThrottlingTime &other) const

Comparison operator.

inline bool operator<=(const ThrottlingTime &other) const

Comparison operator.

inline bool operator>=(const ThrottlingTime &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::microseconds> validRange()

The range of valid values for ThrottlingTime.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Metrics/ThrottlingTime"}

The full path for this value.

static constexpr const char *name = {"ThrottlingTime"}

The name of this value.

static constexpr const char * description  {R"description(Throttling Time is the duration that the capture was paused due to thermal or other constraints on thecamera's components while it was capturing this frame. This duration is part of the overall AcquisitionTime. If the camera throttled during a capture, it will result in a longer Acquisition Time.Whether or not the camera will throttle depends on the ambient temperature, the capture settings, andthe how frequently the camera is capturing.)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const ThrottlingTime &value)

Operator to serialize the value to a stream.

class SoftwareVersion

The version information for installed software at the time of image capture.

Public Functions

SoftwareVersion()

Default constructor.

template<typename ...Args>
inline explicit SoftwareVersion(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing SoftwareVersion then invoking set(args).

The provided arguments must be descendants of SoftwareVersion. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of SoftwareVersion. These types can be provided:

template<typename ...Args>
inline SoftwareVersion copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this SoftwareVersion object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of SoftwareVersion. These types can be provided:

inline const Core &core() const

Get Core.

inline Core &core()

Get Core.

inline SoftwareVersion &set(const Core &value)

Set Core.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const SoftwareVersion &other) const

Equality operator.

bool operator!=(const SoftwareVersion &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"SoftwareVersion"}

The full path for this value.

static constexpr const char *name = {"SoftwareVersion"}

The name of this value.

static constexpr const char * description  {R"description(Theversioninformation for installed software at the time of image capture)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const SoftwareVersion &value)

Operator to send the value as string to a stream.

class Core

Core version.

Public Types

using ValueType = std::string

The type of the underlying value.

Public Functions

Core() = default

Default constructor.

inline explicit Core(std::string value)

Constructor.

const std::string &value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const Core &other) const

Comparison operator.

inline bool operator!=(const Core &other) const

Comparison operator.

inline bool operator<(const Core &other) const

Comparison operator.

inline bool operator>(const Core &other) const

Comparison operator.

inline bool operator<=(const Core &other) const

Comparison operator.

inline bool operator>=(const Core &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<ValueType::size_type> validSize()

The valid sizes for Core.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"SoftwareVersion/Core"}

The full path for this value.

static constexpr const char *name = {"Core"}

The name of this value.

static constexpr const char * description   = { R"description(Core version)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Core &value)

Operator to serialize the value to a stream.

class SystemInfo

Information about the system that captured this frame.

Public Functions

SystemInfo()

Default constructor.

template<typename ...Args>
inline explicit SystemInfo(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing SystemInfo then invoking set(args).

The provided arguments must be descendants of SystemInfo. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of SystemInfo. These types can be provided:

template<typename ...Args>
inline SystemInfo copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this SystemInfo object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of SystemInfo. These types can be provided:

inline const CPU &cpu() const

Get CPU.

inline CPU &cpu()

Get CPU.

inline SystemInfo &set(const CPU &value)

Set CPU.

inline SystemInfo &set(const CPU::Model &value)

Set CPU::Model.

inline const ComputeDevice &computeDevice() const

Get ComputeDevice.

inline ComputeDevice &computeDevice()

Get ComputeDevice.

inline SystemInfo &set(const ComputeDevice &value)

Set ComputeDevice.

inline SystemInfo &set(const ComputeDevice::Model &value)

Set ComputeDevice::Model.

inline SystemInfo &set(const ComputeDevice::Vendor &value)

Set ComputeDevice::Vendor.

inline const OperatingSystem &operatingSystem() const

Get OperatingSystem.

inline OperatingSystem &operatingSystem()

Get OperatingSystem.

inline SystemInfo &set(const OperatingSystem &value)

Set OperatingSystem.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const SystemInfo &other) const

Equality operator.

bool operator!=(const SystemInfo &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"SystemInfo"}

The full path for this value.

static constexpr const char *name = {"SystemInfo"}

The name of this value.

static constexpr const char * description  {R"description(Information about the system that captured thisframe)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const SystemInfo &value)

Operator to send the value as string to a stream.

class ComputeDevice

Compute device.

Public Functions

ComputeDevice()

Default constructor.

template<typename ...Args>
inline explicit ComputeDevice(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing ComputeDevice then invoking set(args).

The provided arguments must be descendants of ComputeDevice. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of ComputeDevice. These types can be provided:

template<typename ...Args>
inline ComputeDevice copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this ComputeDevice object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of ComputeDevice. These types can be provided:

inline const Model &model() const

Get Model.

inline Model &model()

Get Model.

inline ComputeDevice &set(const Model &value)

Set Model.

inline const Vendor &vendor() const

Get Vendor.

inline Vendor &vendor()

Get Vendor.

inline ComputeDevice &set(const Vendor &value)

Set Vendor.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const ComputeDevice &other) const

Equality operator.

bool operator!=(const ComputeDevice &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"SystemInfo/ComputeDevice"}

The full path for this value.

static constexpr const char *name = {"ComputeDevice"}

The name of this value.

static constexpr const char * description   = { R"description(Compute device)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const ComputeDevice &value)

Operator to send the value as string to a stream.

class Model

Compute device model.

Public Types

using ValueType = std::string

The type of the underlying value.

Public Functions

Model() = default

Default constructor.

inline explicit Model(std::string value)

Constructor.

const std::string &value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const Model &other) const

Comparison operator.

inline bool operator!=(const Model &other) const

Comparison operator.

inline bool operator<(const Model &other) const

Comparison operator.

inline bool operator>(const Model &other) const

Comparison operator.

inline bool operator<=(const Model &other) const

Comparison operator.

inline bool operator>=(const Model &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<ValueType::size_type> validSize()

The valid sizes for Model.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"SystemInfo/ComputeDevice/Model"}

The full path for this value.

static constexpr const char *name = {"Model"}

The name of this value.

static constexpr const char * description   = { R"description(Compute device model)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Model &value)

Operator to serialize the value to a stream.

class Vendor

Compute device vendor.

Public Types

using ValueType = std::string

The type of the underlying value.

Public Functions

Vendor() = default

Default constructor.

inline explicit Vendor(std::string value)

Constructor.

const std::string &value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const Vendor &other) const

Comparison operator.

inline bool operator!=(const Vendor &other) const

Comparison operator.

inline bool operator<(const Vendor &other) const

Comparison operator.

inline bool operator>(const Vendor &other) const

Comparison operator.

inline bool operator<=(const Vendor &other) const

Comparison operator.

inline bool operator>=(const Vendor &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<ValueType::size_type> validSize()

The valid sizes for Vendor.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"SystemInfo/ComputeDevice/Vendor"}

The full path for this value.

static constexpr const char *name = {"Vendor"}

The name of this value.

static constexpr const char * description   = { R"description(Compute device vendor)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Vendor &value)

Operator to serialize the value to a stream.

class CPU

CPU.

Public Functions

CPU()

Default constructor.

template<typename ...Args>
inline explicit CPU(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing CPU then invoking set(args).

The provided arguments must be descendants of CPU. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of CPU. These types can be provided:

template<typename ...Args>
inline CPU copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this CPU object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of CPU. These types can be provided:

inline const Model &model() const

Get Model.

inline Model &model()

Get Model.

inline CPU &set(const Model &value)

Set Model.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const CPU &other) const

Equality operator.

bool operator!=(const CPU &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"SystemInfo/CPU"}

The full path for this value.

static constexpr const char *name = {"CPU"}

The name of this value.

static constexpr const char * description   = { R"description(CPU)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CPU &value)

Operator to send the value as string to a stream.

class Model

CPU model.

Public Types

using ValueType = std::string

The type of the underlying value.

Public Functions

Model() = default

Default constructor.

inline explicit Model(std::string value)

Constructor.

const std::string &value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const Model &other) const

Comparison operator.

inline bool operator!=(const Model &other) const

Comparison operator.

inline bool operator<(const Model &other) const

Comparison operator.

inline bool operator>(const Model &other) const

Comparison operator.

inline bool operator<=(const Model &other) const

Comparison operator.

inline bool operator>=(const Model &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<ValueType::size_type> validSize()

The valid sizes for Model.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"SystemInfo/CPU/Model"}

The full path for this value.

static constexpr const char *name = {"Model"}

The name of this value.

static constexpr const char * description   = { R"description(CPU model)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Model &value)

Operator to serialize the value to a stream.

class OperatingSystem

Operating system.

Public Types

using ValueType = std::string

The type of the underlying value.

Public Functions

OperatingSystem() = default

Default constructor.

inline explicit OperatingSystem(std::string value)

Constructor.

const std::string &value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const OperatingSystem &other) const

Comparison operator.

inline bool operator!=(const OperatingSystem &other) const

Comparison operator.

inline bool operator<(const OperatingSystem &other) const

Comparison operator.

inline bool operator>(const OperatingSystem &other) const

Comparison operator.

inline bool operator<=(const OperatingSystem &other) const

Comparison operator.

inline bool operator>=(const OperatingSystem &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<ValueType::size_type> validSize()

The valid sizes for OperatingSystem.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"SystemInfo/OperatingSystem"}

The full path for this value.

static constexpr const char *name = {"OperatingSystem"}

The name of this value.

static constexpr const char * description   = { R"description(Operating system)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const OperatingSystem &value)

Operator to serialize the value to a stream.

class TimeStamp

The time of frame capture.

Public Types

using ValueType = std::chrono::system_clock::time_point

The type of the underlying value.

Public Functions

TimeStamp() = default

Default constructor.

inline explicit constexpr TimeStamp(std::chrono::system_clock::time_point value)

Constructor.

std::chrono::system_clock::time_point value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const TimeStamp &other) const

Comparison operator.

inline bool operator!=(const TimeStamp &other) const

Comparison operator.

inline bool operator<(const TimeStamp &other) const

Comparison operator.

inline bool operator>(const TimeStamp &other) const

Comparison operator.

inline bool operator<=(const TimeStamp &other) const

Comparison operator.

inline bool operator>=(const TimeStamp &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<std::chrono::system_clock::time_point> validRange()

The range of valid values for TimeStamp.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"TimeStamp"}

The full path for this value.

static constexpr const char *name = {"TimeStamp"}

The name of this value.

static constexpr const char * description   = { R"description(The time of frame capture)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const TimeStamp &value)

Operator to serialize the value to a stream.

struct FrameInfo

Various information for a frame.

Public Functions

System::String ^ Serialize ()

Serialize to a string.

See also FromSerialized. The returned string is formatted in YAML, and is compatible with the contents of files saved using Save.

void Save (System::String ^ fileName)

Save to the given file.

void Load (System::String ^ fileName)

Load from the given file.

inline FrameInfo()

Constructor.

FrameInfo ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

FrameInfo ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::DateTime^ TimeStamp

The time of frame capture.

Public Static Attributes

static FrameInfo(System::String ^ fileName) FrameInfo FromSerialized )(System::String ^ value)

Construct FrameInfo by loading from file.

Construct a new FrameInfo instance from a previously serialized string

See also Serialize.

struct DiagnosticsGroup

Diagnostic information for frame.

Public Functions

inline DiagnosticsGroup()

Constructor.

DiagnosticsGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

DiagnosticsGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

bool PacketLoss

Is frame missing any data.

struct MetricsGroup

Metrics related to this capture.

Public Functions

MetricsGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

MetricsGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Public Members

property::Zivid::NET::Duration AcquisitionTime   = {                     ::Zivid::NET::Durationget(){{                             const auto &cppNode = *AcquisitionTimeCppWrapper->GetNativePtr();                              return::Zivid::NET::Duration::FromMicroseconds(cppNode.value().count());                         }}void set(::Zivid::NET::Durationvalue){{                             auto &cppNode = *AcquisitionTimeCppWrapper->GetNativePtr();                              cppNode = Zivid::FrameInfo::Metrics::AcquisitionTime{ std::chrono::microseconds{                                 value.Microseconds } };                         }}}private:ref struct CaptureTimeCppWrapperType{private:   Zivid::FrameInfo::Metrics::CaptureTime  * m_pClass = nullptr; bool m_isDisposed = false; public:;}

Acquisition Time is the duration from the start of the capture to when the camera has acquired the last image.

After this time, the camera has finished its acquisition and you can move the robot, or capture with another camera with overlapping field of view. Acquisition Time is equal to the time it takes for the Camera::capture(settings) API function call to return.

property::Zivid::NET::Duration CaptureTime   = {                     ::Zivid::NET::Durationget(){{                             const auto &cppNode = *CaptureTimeCppWrapper->GetNativePtr();                              return ::Zivid::NET::Duration::FromMicroseconds(cppNode.value().count());                         }}void set(::Zivid::NET::Durationvalue){{                             auto &cppNode = *CaptureTimeCppWrapper->GetNativePtr();                              cppNode = Zivid::FrameInfo::Metrics::CaptureTime{ std::chrono::microseconds{                                 value.Microseconds } };                         }}}private:ref struct KernelComputeTimeCppWrapperType{private:   Zivid::FrameInfo::Metrics::KernelComputeTime  * m_pClass = nullptr; bool m_isDisposed = false; public:;}

Capture Time is the duration from the start of the capture to when all of the data transfer and processing has completed.

After this time the 3D point cloud and/or 2D color image is ready and available on the GPU memory, and can be copied to the system memory (RAM).

property::Zivid::NET::Duration KernelComputeTime   = {                     ::Zivid::NET::Durationget(){{                             const auto &cppNode = *KernelComputeTimeCppWrapper->GetNativePtr();                              return ::Zivid::NET::Duration::FromMicroseconds(cppNode.value().count());                         }}void set(::Zivid::NET::Durationvalue){{                             auto &cppNode = *KernelComputeTimeCppWrapper->GetNativePtr();                              cppNode = Zivid::FrameInfo::Metrics::KernelComputeTime{ std::chrono::microseconds{                                 value.Microseconds } };                         }}}private:ref struct ReprocessingTimeCppWrapperType{private:   Zivid::FrameInfo::Metrics::ReprocessingTime  * m_pClass = nullptr; bool m_isDisposed = false; public:;}

Kernel Compute Time is the duration of the compute on the GPU.

It is a subset of Capture Time. Kernel Compute Time depends on the capture settings and the compute power of the GPU. Note that Kernel Compute Time + Acquisition Time is not equal to Capture Time, as acquisition and processing operations can be performed in parallel.

property::Zivid::NET::Duration ThrottlingTime

Throttling Time is the duration that the capture was paused due to thermal or other constraints on the camera’s components while it was capturing this frame.

This duration is part of the overall Acquisition Time. If the camera throttled during a capture, it will result in a longer Acquisition Time.

Whether or not the camera will throttle depends on the ambient temperature, the capture settings, and the how frequently the camera is capturing.

Properties

System::Nullable<::Zivid::NET::Duration> ReprocessingTime

Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on a previously acquired frame.

Reprocessing is available in Zivid Studio for captures with Diagnostics Mode enabled. The ReprocessingTime field is only set if this frame was reprocessed after it was initially captured, otherwise it will be unset.

Reprocessing Time is the duration from the start of the reprocessing action and until all processing of the new frame has finished. After this time the 3D point cloud and/or 2D color image is ready and available on the GPU memory and can be copied to the system memory (RAM).

Reprocessing Time depends on the processing settings that are enabled, which capture engine that was used, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends on the compute power of the compute device.

Note that for a frame that has been re-processed, the Acquisition Time and Capture Time refers to the originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.

struct SoftwareVersionGroup

The version information for installed software at the time of image capture.

Public Functions

inline SoftwareVersionGroup()

Constructor.

SoftwareVersionGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

SoftwareVersionGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::String^ Core

Core version.

struct SystemInfoGroup

Information about the system that captured this frame.

Public Functions

inline SystemInfoGroup()

Constructor.

SystemInfoGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

SystemInfoGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::String^ OperatingSystem

Operating system.

struct ComputeDeviceGroup

Compute device.

Public Functions

inline ComputeDeviceGroup()

Constructor.

ComputeDeviceGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

ComputeDeviceGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::String^ Model

Compute device model.

System::String^ Vendor

Compute device vendor.

struct CPUGroup

CPU.

Public Functions

inline CPUGroup()

Constructor.

CPUGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

CPUGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

System::String^ Model

CPU model.

See zivid.FrameInfo in zivid-python.