Metric Event

Defined in package com.scandit.datacapture.core.metrics

CameraBackend

Added in version 8.7.0

The camera API a session uses.

UNKNOWN

Added in version 8.7.0

Not known.

CAMERA1

Added in version 8.7.0

The legacy Android camera API.

CAMERA2

Added in version 8.7.0

The Android Camera2 API.

AV_FOUNDATION

Added in version 8.7.0

AVFoundation on iOS.

FocusCalibration

Added in version 8.7.0

How the reported focus distance is calibrated.

UNCALIBRATED_INFINITY_AT_ZERO

Added in version 8.7.0

Uncalibrated, with infinity reported as zero.

UNCALIBRATED_INFINITY_AT_ONE

Added in version 8.7.0

Uncalibrated, with infinity reported as one.

APPROXIMATE

Added in version 8.7.0

Approximately calibrated.

CALIBRATED

Added in version 8.7.0

Calibrated.

CameraEvent

Added in version 8.7.0

A camera lifecycle transition.

START

Added in version 8.7.0

The camera started.

STOP

Added in version 8.7.0

The camera stopped.

WAKE

Added in version 8.7.0

The camera woke from standby.

FAILURE

Added in version 8.7.0

The camera failed mid-session.

CameraResult

Added in version 8.7.0

The outcome of a camera transition.

SUCCESS

Added in version 8.7.0

The transition succeeded.

FAILURE

Added in version 8.7.0

The transition failed.

LifecycleEvent

Added in version 8.7.0

An app lifecycle transition. Only transitions are reported: a session does not open with an event for the state it starts in, so its first lifecycle event can be either value.

RESUME

Added in version 8.7.0

The app came back to the foreground. On iOS this is when the app becomes active again. On Android it is when one of the app’s activities starts after none was started.

PAUSE

Added in version 8.7.0

The app left the foreground. On iOS this is, by default, when the app resigns active, so system alerts such as permission prompts and overlays such as Control Center also pause it. On Android it is when none of the app’s activities is started, so dialogs and permission prompts do not pause it.

CaptureFormat

Added in version 8.7.0

The encoding of a captured frame image.

JXL

Added in version 8.7.0

JPEG XL.

PNG

Added in version 8.7.0

PNG.

GRAY8

Added in version 8.7.0

8-bit grayscale, Width * Height bytes, row-major with no padding.

BatteryHealth

Added in version 8.7.0

The battery health the platform reports.

UNKNOWN

Added in version 8.7.0

Not known.

GOOD

Added in version 8.7.0

Good.

OVERHEAT

Added in version 8.7.0

Overheating.

DEAD

Added in version 8.7.0

Dead.

OVER_VOLTAGE

Added in version 8.7.0

Over voltage.

UNSPECIFIED_FAILURE

Added in version 8.7.0

An unspecified failure.

COLD

Added in version 8.7.0

Cold.

CameraConfigTrigger

Added in version 8.7.0

What prompted a camera-configuration snapshot.

ATTACH

Added in version 8.7.0

The camera was attached to the context.

APPLY

Added in version 8.7.0

Camera settings were applied.

FRAME_SOURCE_CHANGED

Added in version 8.7.0

The context’s frame source changed.

MetricsConfig
class MetricsConfig

Added in version 8.7.0

The configuration a session runs under, reported as the first event of a session and whenever the configuration changes. SuppressedFields names what the configuration withheld and UnavailableFields names what the platform cannot measure at all, so a suppressed field is distinguishable from an absent one.

MetricsConfig()
MetricsConfig(schemaVersion: Int,
        enabledGroups: HashSet<MetricGroup>,
        suppressedFields: HashSet<SensitiveField>,
        unavailableFields: HashSet<String>,
        unavailableGroups: HashSet<MetricGroup>,
        frameMetricsSampleRate: Int,
        maxBufferedCaptures: Int,
        maxCaptureBytes: Long,
        sdkVersion: String,
        platform: String,
        osVersion: String,
        deviceManufacturer: String,
        deviceModel: String)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

schemaVersion
val schemaVersion: Int

Added in version 8.7.0

The schema version the session emits.

enabledGroups
val enabledGroups: Set<MetricGroup>

Added in version 8.7.0

The signal groups emitted in this session.

suppressedFields
val suppressedFields: Set<SensitiveField>

Added in version 8.7.0

The sensitive fields the configuration withholds.

unavailableFields
val unavailableFields: Set<String>

Added in version 8.7.0

The environment fields this platform cannot measure, spelled as the record spells them.

unavailableGroups
val unavailableGroups: Set<MetricGroup>

Added in version 8.7.0

The signal groups this platform never emits, so enabling one yields no events.

frameMetricsSampleRate
val frameMetricsSampleRate: Int

Added in version 8.7.0

Every Nth processed frame contributes a frame-metrics event.

maxBufferedCaptures
val maxBufferedCaptures: Int

Added in version 8.7.0

The most frame captures copied but not yet delivered at once. A recognition arriving while this many are in flight is dropped and counted.

maxCaptureBytes
val maxCaptureBytes: Long

Added in version 8.7.0

The largest capture delivered, in bytes.

sdkVersion
val sdkVersion: String

Added in version 8.7.0

The SDK version.

platform
val platform: String

Added in version 8.7.0

The platform the session runs on.

osVersion
val osVersion: String

Added in version 8.7.0

The operating system version.

deviceManufacturer
val deviceManufacturer: String

Added in version 8.7.0

The device manufacturer, when the platform reports it; empty otherwise.

deviceModel
val deviceModel: String

Added in version 8.7.0

The device model.

ScanMetrics
class ScanMetrics

Added in version 8.7.0

One recognition, with the timings and geometry that led to it. The fields describing the run-up, the localization counts, timings and sizes, cover the scan: the frames since the previous recognition, up to and including this one. Every barcode recognized in the same frame repeats them, so summing them across recognitions over-counts.

ScanMetrics()
ScanMetrics(frameId: Int,
        symbology: Symbology,
        data: String?,
        framesToFirstLocalization: Int,
        msToFirstLocalization: Long,
        msBetweenRecognitions: Long?,
        localizedCount: Int,
        minBarcodeSizePx: Double,
        maxBarcodeSizePx: Double,
        avgBarcodeSizePx: Double,
        pixelsPerElement: Double?,
        scanIntention: ScanIntention,
        torchEnabled: Boolean,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

frameId
val frameId: Int

Added in version 8.7.0

Joins this recognition to the frame it came from, as the engine numbers frames. The same value as the frame id of the recognized barcode, which is not the frame signal’s own ordinal.

symbology
val symbology: Symbology

Added in version 8.7.0

The symbology of the recognized barcode. On iOS it is the symbology’s JSON identifier, for example ean13, because the symbology enum is declared in ScanditBarcodeCapture, which core does not import.

data
val data: String?

Added in version 8.7.0

The barcode content. Absent unless the ScanData sensitive field is enabled and the license includes AnalyticsScanContent.

framesToFirstLocalization
val framesToFirstLocalization: Int

Added in version 8.7.0

Frames from the start of the scan to the first localization, counting the scan’s first frame as 1. Zero when nothing was localized before the barcode was recognized.

msToFirstLocalization
val msToFirstLocalization: Long

Added in version 8.7.0

Milliseconds from the first frame of the scan that carried a timestamp to the first localization. Zero when the first localization happened on that frame, when nothing was localized, and when the frame source reports no capture timestamp.

msBetweenRecognitions
val msBetweenRecognitions: Long?

Added in version 8.7.0

Absent where there is no previous recognition to measure from: the first recognition of a session, the first after a discarded scan, and every frame source that reports no capture timestamp.

localizedCount
val localizedCount: Int

Added in version 8.7.0

Barcodes localized but not yet recognized during the scan.

minBarcodeSizePx
val minBarcodeSizePx: Double

Added in version 8.7.0

The smallest longer side, in pixels, of the axis-aligned bounding box of a barcode counted in LocalizedCount. Rotation moves this away from the symbol’s true side length in either direction: it shrinks for an elongated symbol and grows by up to sqrt(2) for a square one. Zero when LocalizedCount is zero.

maxBarcodeSizePx
val maxBarcodeSizePx: Double

Added in version 8.7.0

The largest longer side, in pixels, of the axis-aligned bounding box of a barcode counted in LocalizedCount, under the same rotation caveat as MinBarcodeSizePx. Zero when LocalizedCount is zero.

avgBarcodeSizePx
val avgBarcodeSizePx: Double

Added in version 8.7.0

The mean longer side, in pixels, over the barcodes counted in LocalizedCount, under the same rotation caveat as MinBarcodeSizePx. Zero when LocalizedCount is zero.

pixelsPerElement
val pixelsPerElement: Double?

Added in version 8.7.0

Pixels per smallest symbol element, absent when the symbology does not define one.

scanIntention
val scanIntention: ScanIntention

Added in version 8.7.0

The scan intention in force when the barcode was recognized.

torchEnabled
val torchEnabled: Boolean

Added in version 8.7.0

Whether the torch was on.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

MsarMetrics
class MsarMetrics

Added in version 8.7.0

MatrixScan AR tracking counts, for a frame in which barcodes entered or left tracking and once more when the session ends. TrackedCount is the frame’s own; the other counts run from the start of the session, or from the last interruption of metrics collection within it.

MsarMetrics()
MsarMetrics(frameSeq: Long,
        trackedCount: Int,
        newlyTracked: Int,
        lostCount: Int,
        avgCodesPerFrame: Double,
        processedFrames: Int?,
        droppedFrames: Int?,
        processedFrameRatio: Double?,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

frameSeq
val frameSeq: Long

Added in version 8.7.0

The ordinal of the processed frame within the session.

trackedCount
val trackedCount: Int

Added in version 8.7.0

Barcodes tracked in this frame.

newlyTracked
val newlyTracked: Int

Added in version 8.7.0

Barcodes that started being tracked, counted from the start of the session.

lostCount
val lostCount: Int

Added in version 8.7.0

Barcodes whose tracking ended, counted from the start of the session.

avgCodesPerFrame
val avgCodesPerFrame: Double

Added in version 8.7.0

The running average of tracked barcodes per frame.

processedFrames
val processedFrames: Int?

Added in version 8.7.0

Frames the session processed. This and DroppedFrames are present only on the session-end event, which their presence marks.

droppedFrames
val droppedFrames: Int?

Added in version 8.7.0

Frames the session dropped, present alongside ProcessedFrames.

processedFrameRatio
val processedFrameRatio: Double?

Added in version 8.7.0

ProcessedFrames / (ProcessedFrames + DroppedFrames), on the session-end event of a session that saw any frame.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

FrameMetrics
class FrameMetrics

Added in version 8.7.0

Processing cost of one sampled frame, with its resolution. Emitted every Nth processed frame, N being MetricsSettings.frameMetricsSampleRate.

FrameMetrics()
FrameMetrics(frameSeq: Long,
        frameId: Int?,
        totalProcessingMs: Double,
        engineMs: Double,
        fpsRunningAvg: Double,
        droppedFrames: Int,
        widthPx: Int,
        heightPx: Int,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

frameSeq
val frameSeq: Long

Added in version 8.7.0

The ordinal of the processed frame within the session.

frameId
val frameId: Int?

Added in version 8.7.0

The engine frame ordinal, present only when this frame produced a recognition.

totalProcessingMs
val totalProcessingMs: Double

Added in version 8.7.0

Milliseconds the frame spent in the processing pipeline.

engineMs
val engineMs: Double

Added in version 8.7.0

Milliseconds the engine spent on the frame.

fpsRunningAvg
val fpsRunningAvg: Double

Added in version 8.7.0

The running average of processed frames per second.

droppedFrames
val droppedFrames: Int

Added in version 8.7.0

Frames dropped since the previous frame-metrics event.

widthPx
val widthPx: Int

Added in version 8.7.0

The frame width in pixels.

heightPx
val heightPx: Int

Added in version 8.7.0

The frame height in pixels.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

EnvironmentMetrics
class EnvironmentMetrics

Added in version 8.7.0

Ambient and device conditions around the scan, sampled at most once per second while frames are being processed. An absent value means it was not available for that sample, never that the configuration suppressed it: the platform cannot measure the signal, the camera backend or that frame did not report it, or the SDK does not read it yet. MetricsConfig.unavailableFields names only the first of those.

EnvironmentMetrics()
EnvironmentMetrics(illuminationEstimate: Double?,
        exposureMs: Double?,
        iso: Double?,
        focusDistance: Double?,
        focusCalibration: FocusCalibration?,
        isFixedFocus: Boolean?,
        batteryPct: Double?,
        batteryHealth: BatteryHealth?,
        powerSaveMode: Boolean?,
        torchEnabled: Boolean,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

illuminationEstimate
val illuminationEstimate: Double?

Added in version 8.7.0

Smoothed 1 / (exposure x ISO). Unitless and higher when brighter; comparable only against other estimates from the same device. Present only where the SDK computes the smoothed estimate, which is narrower than where exposure and ISO themselves are reported.

exposureMs
val exposureMs: Double?

Added in version 8.7.0

The camera exposure time in milliseconds.

iso
val iso: Double?

Added in version 8.7.0

The camera ISO sensitivity.

focusDistance
val focusDistance: Double?

Added in version 8.7.0

The focus distance as the platform reports it; see the calibration for its unit.

focusCalibration
val focusCalibration: FocusCalibration?

Added in version 8.7.0

How the focus distance is calibrated.

isFixedFocus
val isFixedFocus: Boolean?

Added in version 8.7.0

Whether the camera has a fixed focus.

batteryPct
val batteryPct: Double?

Added in version 8.7.0

Charge remaining, 0 to 100.

batteryHealth
val batteryHealth: BatteryHealth?

Added in version 8.7.0

The battery health the platform reports.

powerSaveMode
val powerSaveMode: Boolean?

Added in version 8.7.0

Whether the device is in a power-saving mode.

torchEnabled
val torchEnabled: Boolean

Added in version 8.7.0

The torch state the mode asked for, not the light the sensor saw: an automatic torch firing on the user’s behalf reads as false.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

CameraMetrics
class CameraMetrics

Added in version 8.7.0

One camera lifecycle transition, so entering and leaving scanning is readable from the stream alone wherever the camera was stopped rather than torn down: a camera destroyed while on, or one whose metrics session closes before its stop is delivered, leaves a start with no stop against it. Start and wake carry Result and DurationMs, plus the resolution once the camera reached on. A mid-session failure carries Code, Reason and SessionUptimeMs, and stop carries SessionUptimeMs. Event identifies the transition, so the fields outside its set are absent.

CameraMetrics()
CameraMetrics(event: CameraEvent,
        result: CameraResult?,
        durationMs: Long?,
        widthPx: Int?,
        heightPx: Int?,
        api: CameraBackend,
        facing: CameraPosition,
        code: String?,
        reason: String?,
        sessionUptimeMs: Long?,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

event
val event: CameraEvent

Added in version 8.7.0

The lifecycle transition this event reports.

result
val result: CameraResult?

Added in version 8.7.0

Whether the transition succeeded.

durationMs
val durationMs: Long?

Added in version 8.7.0

Milliseconds the transition took.

widthPx
val widthPx: Int?

Added in version 8.7.0

The frame width in pixels after the transition.

heightPx
val heightPx: Int?

Added in version 8.7.0

The frame height in pixels after the transition.

api
val api: CameraBackend

Added in version 8.7.0

The camera API in use.

facing
val facing: CameraPosition

Added in version 8.7.0

The camera position in use.

code
val code: String?

Added in version 8.7.0

The platform error code of a failure.

reason
val reason: String?

Added in version 8.7.0

The platform error description of a failure.

sessionUptimeMs
val sessionUptimeMs: Long?

Added in version 8.7.0

Time the camera has been on since it last left the off state.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

CameraConfigMetrics
class CameraConfigMetrics

Added in version 8.7.0

One snapshot of a camera’s complete configuration. DesiredSettingsJson is what was last requested and CurrentSettingsJson what the camera last put into effect; the two differ only while a request is pending. The typed properties are a projection of CurrentSettingsJson. Both are the settings as the SDK requested them, so a resolution or frame rate the platform substituted is not reflected; the delivered resolution is on the camera start event.

CameraConfigMetrics()
CameraConfigMetrics(revision: Long,
        trigger: CameraConfigTrigger,
        facing: CameraPosition,
        api: CameraBackend,
        preferredResolution: VideoResolution,
        maxFrameRate: Double,
        zoomFactor: Double,
        torchLevel: Double,
        focusStrategy: String,
        desiredSettingsJson: JSONObject,
        currentSettingsJson: JSONObject,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows. A focusStrategy that is not a known focus strategy identifier reaches a sink as auto.

revision
val revision: Long

Added in version 8.7.0

Counts this session’s camera-config events from 1, in the order they were emitted.

trigger
val trigger: CameraConfigTrigger

Added in version 8.7.0

What prompted this snapshot.

facing
val facing: CameraPosition

Added in version 8.7.0

The camera position.

api
val api: CameraBackend

Added in version 8.7.0

The camera API.

preferredResolution
val preferredResolution: VideoResolution

Added in version 8.7.0

The preferred resolution in the settings.

maxFrameRate
val maxFrameRate: Double

Added in version 8.7.0

The maximum frame rate in the settings.

zoomFactor
val zoomFactor: Double

Added in version 8.7.0

The zoom factor in the settings.

torchLevel
val torchLevel: Double

Added in version 8.7.0

The torch brightness in the settings. Whether the torch is on is not part of the settings.

focusStrategy
val focusStrategy: String

Added in version 8.7.0

The focus strategy as its JSON identifier, for example onlyOnRequest. On Android, an unknown identifier passed to the constructor reads as auto.

desiredSettingsJson
val desiredSettingsJson: JSONObject

Added in version 8.7.0

The settings last requested, as a JSON object: an org.json.JSONObject on Android and a dictionary on iOS.

currentSettingsJson
val currentSettingsJson: JSONObject

Added in version 8.7.0

The settings the camera last put into effect, as a JSON object: an org.json.JSONObject on Android and a dictionary on iOS.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

FrameCaptureMetrics
class FrameCaptureMetrics

Added in version 8.7.0

The tabular row for one captured frame. The pixels travel separately, so a sink that only writes rows never has to carry an image.

FrameCaptureMetrics()
FrameCaptureMetrics(frameSeq: Long,
        frameId: Int?,
        captureId: String,
        format: CaptureFormat,
        widthPx: Int,
        heightPx: Int,
        bytes: Long,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

frameSeq
val frameSeq: Long

Added in version 8.7.0

The ordinal of the processed frame within the session.

frameId
val frameId: Int?

Added in version 8.7.0

The engine frame ordinal, present only when this frame produced a recognition.

captureId
val captureId: String

Added in version 8.7.0

Ties this row to the encoded image delivered alongside it.

format
val format: CaptureFormat

Added in version 8.7.0

The encoding of the captured image.

widthPx
val widthPx: Int

Added in version 8.7.0

The captured image width in pixels.

heightPx
val heightPx: Int

Added in version 8.7.0

The captured image height in pixels.

bytes
val bytes: Long

Added in version 8.7.0

The encoded image size in bytes.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

FrameCapture
class FrameCapture

Added in version 8.7.0

One captured frame image, raw or encoded as Format says, delivered to a sink alongside the frame-capture row it belongs to.

FrameCapture()
FrameCapture(captureId: String,
        format: CaptureFormat,
        width: Int,
        height: Int,
        data: ByteBuffer)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

captureId
val captureId: String

Added in version 8.7.0

Ties the image to the frame-capture row describing it.

format
val format: CaptureFormat

Added in version 8.7.0

The encoding of the image.

width
val width: Int

Added in version 8.7.0

Pixel width of the image in Data.

height
val height: Int

Added in version 8.7.0

Pixel height of the image in Data.

data
val data: ByteBuffer

Added in version 8.7.0

The encoded image bytes. On Android the buffer is a view that is valid only for the duration of the onFrameCaptured call, so copy it to keep the image; on iOS the capture owns the bytes for as long as you hold it.

LifecycleMetrics
class LifecycleMetrics

Added in version 8.7.0

One app lifecycle transition.

LifecycleMetrics()
LifecycleMetrics(event: LifecycleEvent,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

event
val event: LifecycleEvent

Added in version 8.7.0

The lifecycle transition this event reports.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

ContextMetrics
class ContextMetrics

Added in version 8.7.0

One data capture context status, as reported to the context listeners: the state in force rather than a change. A StatusCode of zero means the context has reached no verdict, either none yet or one since withdrawn. IsValid is true only for an outright success, so it reads false for a withdrawn verdict as well as for a failure; count failures by StatusCode, not by IsValid.

ContextMetrics()
ContextMetrics(statusCode: Int,
        isValid: Boolean,
        message: String,
        extras: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

statusCode
val statusCode: Int

Added in version 8.7.0

The context status code. Zero when no verdict is in force.

isValid
val isValid: Boolean

Added in version 8.7.0

Whether the context is valid in this status. False both for a failure and for a verdict that was withdrawn, so counting failures by this alone over-counts.

message
val message: String

Added in version 8.7.0

The context status message.

extras
val extras: Map<String, String>

Added in version 8.7.0

Fields not yet stable enough for their own column.

CustomEvent
class CustomEvent

Added in version 8.7.0

One event the app injected into the metric stream.

CustomEvent()
CustomEvent(name: String,
        attributes: HashMap<String, String>)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

name
val name: String

Added in version 8.7.0

The app-defined event name.

attributes
val attributes: Map<String, String>

Added in version 8.7.0

The app-defined attributes of the event.

DroppedEventsMetrics
class DroppedEventsMetrics

Added in version 8.7.0

What the pipeline threw away, so a gap in the data is visible instead of silent.

DroppedEventsMetrics()
DroppedEventsMetrics(droppedEventsCumulative: Long,
        frameCapturesDropped: Long,
        sinkWriteErrors: Long,
        reason: String?)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

droppedEventsCumulative
val droppedEventsCumulative: Long

Added in version 8.7.0

Events dropped since the session started.

frameCapturesDropped
val frameCapturesDropped: Long

Added in version 8.7.0

Frame captures dropped since the session started.

sinkWriteErrors
val sinkWriteErrors: Long

Added in version 8.7.0

Write errors the bundled sink reported since the session started.

reason
val reason: String?

Added in version 8.7.0

Why the drops this event reports happened, as a sorted list separated by semicolons, when known.

MetricEvent
class MetricEvent

Added in version 8.7.0

One production-metrics event: a schema-versioned envelope plus exactly one populated payload, which is what identifies the event’s kind.

MetricEvent()
MetricEvent(schemaVersion: Int,
        tsUtc: Long,
        monotonicMs: Long,
        sessionId: String,
        deviceId: String,
        sdkVersion: String,
        config: MetricsConfig?,
        scan: ScanMetrics?,
        msar: MsarMetrics?,
        frame: FrameMetrics?,
        environment: EnvironmentMetrics?,
        camera: CameraMetrics?,
        frameCapture: FrameCaptureMetrics?,
        lifecycle: LifecycleMetrics?,
        context: ContextMetrics?,
        custom: CustomEvent?,
        dropped: DroppedEventsMetrics?,
        cameraConfig: CameraConfigMetrics?)

Added in version 8.7.0

Creates an instance, for tests and mocks. Later versions add parameters as the event schema grows.

schemaVersion
val schemaVersion: Int

Added in version 8.7.0

The schema version this event follows.

tsUtc
val tsUtc: Long

Added in version 8.7.0

Wall-clock epoch milliseconds. Subject to clock changes, so it orders events across sessions but not reliably within one.

monotonicMs
val monotonicMs: Long

Added in version 8.7.0

Steady-clock milliseconds, comparable only against other events from the same process run.

sessionId
val sessionId: String

Added in version 8.7.0

Identifies the session; every event of a session repeats it.

deviceId
val deviceId: String

Added in version 8.7.0

The hashed device identifier.

sdkVersion
val sdkVersion: String

Added in version 8.7.0

The SDK version.

config
val config: MetricsConfig?

Added in version 8.7.0

The configuration in force. Set on the first event of a session, when the instance is enabled, whenever the configuration changes, and on the first event a newly registered sink receives.

scan
val scan: ScanMetrics?

Added in version 8.7.0

One recognition.

msar
val msar: MsarMetrics?

Added in version 8.7.0

One frame of MatrixScan AR tracking.

frame
val frame: FrameMetrics?

Added in version 8.7.0

One sampled processed frame.

environment
val environment: EnvironmentMetrics?

Added in version 8.7.0

Ambient and device conditions.

camera
val camera: CameraMetrics?

Added in version 8.7.0

One camera lifecycle transition.

frameCapture
val frameCapture: FrameCaptureMetrics?

Added in version 8.7.0

One captured frame; its pixels arrive through the sink separately.

lifecycle
val lifecycle: LifecycleMetrics?

Added in version 8.7.0

One app lifecycle transition.

context
val context: ContextMetrics?

Added in version 8.7.0

The data capture context status in force.

custom
val custom: CustomEvent?

Added in version 8.7.0

One app-injected event.

dropped
val dropped: DroppedEventsMetrics?

Added in version 8.7.0

What the pipeline threw away.

cameraConfig
val cameraConfig: CameraConfigMetrics?

Added in version 8.7.0

One snapshot of a camera’s complete configuration.