Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 19 additions & 17 deletions docs/reference/ni-data-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ A **TestResult** represents a complete test session or test execution run for a
- `end_date_time` (timestamp) - When the test execution finished
- `outcome` (enum) - Overall test result (PASSED, FAILED, INDETERMINATE, UNSPECIFIED)
- `link` (string) - Optional link to additional resources
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation
- `error_information` (ErrorInformation) - Error details if test result failed

Expand All @@ -36,13 +36,13 @@ A **Step** represents an individual test procedure or operation within a larger
- `test_result_id` (string) - ID of the associated TestResult
- `test_id` (string) - ID of the test definition/specification
- `name` (string) - Human-readable name for the step
- `type` (string) - Type/category of the step
- `step_type` (string) - Type/category of the step
- `notes` (string) - Additional notes about the step
- `start_date_time` (timestamp) - When the step started executing
- `end_date_time` (timestamp) - When the step finished executing
- `outcome` (enum) - Result of this step (PASSED, FAILED, INDETERMINATE, UNSPECIFIED)
- `link` (string) - Optional link to additional resources
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation
- `error_information` (ErrorInformation) - Error details if step failed

Expand All @@ -68,7 +68,7 @@ A **PublishedMeasurement** represents actual measurement data captured during a
- `hardware_item_ids` (list of strings) - Hardware used to capture this measurement
- `test_adapter_ids` (list of strings) - Test adapters used to capture this measurement
- `name` (string) - Name used to group related measurements
- `data_type` (string) - Type of data (e.g., "Scalar", "AnalogWaveform", "Spectrum")
- `value_type` (string) - Type of data (e.g., "Scalar", "AnalogWaveform", "Spectrum")
- `notes` (string) - Additional notes about the measurement
- `start_date_time` (timestamp) - When measurement capture started
- `end_date_time` (timestamp) - When measurement capture finished
Expand All @@ -77,13 +77,15 @@ A **PublishedMeasurement** represents actual measurement data captured during a
- `error_information` (ErrorInformation) - Error details if measurement failed

**Supported Data Types:**
- **Scalar** - Single numeric values (voltage, current, frequency, etc.)
- **Vector** - Arrays of numeric values
- **AnalogWaveform** - Time-domain waveforms (double or int16)
- **ComplexWaveform** - Complex-valued waveforms (double or int16)
- **DigitalWaveform** - Digital/logic waveforms
- **Spectrum** - Frequency-domain data
- **XYData** - X-Y paired data sets
- **Scalar** - Single float, int, str or boolean values
- **Vector** - Arrays of float, int, str or boolean values
- **DoubleAnalogWaveform** - Analog waveform with double precision
- **DoubleXYData** - XY coordinate data with double precision
- **I16AnalogWaveform** - Analog waveform with 16-bit integer precision
- **DoubleComplexWaveform** - Complex waveform with double precision
- **I16ComplexWaveform** - Complex waveform with 16-bit integer precision
- **DoubleSpectrum** - Frequency spectrum data with double precision
- **DigitalWaveform** - Digital waveform data

**Real-world examples**:
- A voltage reading: `3.297V` from a multimeter
Expand All @@ -99,7 +101,7 @@ A **PublishedCondition** represents environmental or contextual information that
- `moniker` (Moniker) - Data location identifier for retrieving the condition value
- `id` (string) - Unique identifier for this condition
- `name` (string) - Name of the condition (e.g., "Temperature", "Supply Voltage")
- `type` (string) - Type/category of the condition (e.g., "Environment", "Input Parameter")
- `condition_type` (string) - Type/category of the condition (e.g., "Environment", "Input Parameter")
- `step_id` (string) - ID of the associated Step
- `test_result_id` (string) - ID of the associated TestResult

Expand All @@ -113,10 +115,10 @@ A **PublishedCondition** represents environmental or contextual information that

#### **Outcome Enum**
Represents the result of a test or measurement:
- `OUTCOME_UNSPECIFIED` (0) - No outcome specified
- `OUTCOME_PASSED` (1) - Test/measurement passed
- `OUTCOME_FAILED` (2) - Test/measurement failed
- `OUTCOME_INDETERMINATE` (3) - Result is unclear/indeterminate
- `UNSPECIFIED` - The outcome is not specified or unknown
- `PASSED` - The measurement or test passed successfully
- `FAILED` - The measurement or test failed
- `INDETERMINATE` - The measurement or test result is indeterminate or inconclusive

#### **ErrorInformation**
Contains error details when operations fail:
Expand All @@ -140,7 +142,7 @@ TestResult (Test session for Serial# ABC123)

This hierarchical structure allows you to:
- **Organize data logically** - Group related measurements by test step
- **Drill down progressively** - From test sessions → steps → individual measurements
- **Drill down progressively** - From test results → steps → individual measurements
- **Track context** - Associate environmental conditions with specific measurements
- **Enable powerful queries** - Search and filter data at any level of the hierarchy
- **Maintain traceability** - Link every measurement back to its test context
Expand Down
34 changes: 18 additions & 16 deletions docs/reference/ni-metadata-store.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@ The NI Metadata Store supports the digital thread weaving together measurement r

**Based on:** [`metadata_store.proto`](https://github.com/ni/ni-apis/blob/main/ni/measurements/metadata/v1/metadata_store.proto)

## **Operator**
## **Core Entities**

### **Operator**
An **Operator** represents a person who performs tests or operates test equipment. This captures the human element in your test process.

**Fields:**
- `id` (string) - The id of the operator
- `name` (string) - The name of the operator
- `role` (string) - The role of the operator (e.g., "Test Engineer", "Lab Technician")
- `link` (string) - URI to resource describing the operator
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -27,10 +29,10 @@ A **Test Station** represents a physical location or setup where testing is perf

**Fields:**
- `id` (string) - The id of the test station
- `test_station_name` (string) - The name of the test station
- `name` (string) - The name of the test station
- `asset_identifier` (string) - For tracking and inventory purposes
- `link` (string) - URI to resource describing the test station
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -51,7 +53,7 @@ A **UUT** represents a product definition or model being tested. This is the "wh
- `manufacturers` (list of strings) - List of manufacturers of the UUT
- `part_number` (string) - The part number of the UUT
- `link` (string) - URI to resource describing the UUT
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -73,7 +75,7 @@ A **UUT Instance** represents an individual physical device with a unique serial
- `firmware_version` (string) - Version of the firmware on the UUT instance
- `hardware_version` (string) - Hardware version of the UUT instance
- `link` (string) - URI to resource describing the UUT instance
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -95,7 +97,7 @@ A **Hardware Item** represents test equipment, instruments, or tools used during
- `asset_identifier` (string) - For tracking and inventory purposes
- `calibration_due_date` (string) - When calibration expires
- `link` (string) - URI to resource describing the hardware item
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -114,7 +116,7 @@ A **Software Item** represents software tools, environments, or versions used du
- `product` (string) - The software product name (letters, numbers, spaces, hyphens, underscores, parentheses, periods; must begin and end with letter or number)
- `version` (string) - The version of the software item
- `link` (string) - URI to resource describing the software item
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -132,9 +134,9 @@ A **Test Description** represents a defined test procedure or specification for
**Fields:**
- `id` (string) - The id of the test description
- `uut_id` (string) - The ID of the UUT this test is designed for
- `test_description_name` (string) - Name of the test description
- `name` (string) - Name of the test description
- `link` (string) - URI to resource describing the test description
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -148,10 +150,10 @@ A **Test** represents an individual test procedure or method. This is more granu

**Fields:**
- `id` (string) - The id of the test
- `test_name` (string) - Name of the test
- `name` (string) - Name of the test
- `description` (string) - Explanation of what the test does
- `link` (string) - URI to resource describing the test
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand All @@ -173,7 +175,7 @@ A **Test Adapter** represents a test fixture, mechanical setup, or interface use
- `asset_identifier` (string) - For tracking and inventory purposes
- `calibration_due_date` (string) - When calibration expires
- `link` (string) - URI to resource describing the test adapter
- `extensions` (dict) - Custom key-value pairs for additional metadata
- `extension` (dict) - Custom key-value pairs for additional metadata
- `schema_id` (string) - ID of the schema for extension validation

**Real-world examples**:
Expand Down Expand Up @@ -269,7 +271,7 @@ hardware_item = HardwareItem(
manufacturer="NI",
model="PXIe-5171",
serial_number="SCOPE001",
extensions={
extension={
"bandwidth": "1 GHz",
"manufacture_date": "2024-03-15",
"calibration_certificate": "CAL-2024-001234",
Expand Down Expand Up @@ -349,7 +351,7 @@ hardware_item = HardwareItem(
model="PXIe-5171",
serial_number="SCOPE001",
schema_id=schema_id, # Links to registered schema
extensions={
extension={
"bandwidth": "1 GHz", # Required by schema
"manufacture_date": "2024-03-15", # Required by schema
"asset_tag": "SCOPE-789" # Optional field
Expand Down Expand Up @@ -390,7 +392,7 @@ hardware_item = HardwareItem(
manufacturer="NI",
model="PXIe-4081",
# schema_id automatically inherited from test_result
extensions={
extension={
# Fields validated against inherited schema
}
)
Expand Down
Loading