Struct Definitions Reference
This page provides a reference for the purpose and structure of all structs standard groups and databases.
Structs groups and databases are marked with a JSON object using the key xs_struct
. This will always contain at least two members:
-
"type"
- the name of the type of struct element as a string -
"v"
- the current version this instance of the specified type as a string
The version allows structs elements to be upgraded as the structs definitions evolve. It uses a basic semantic versioning format, specifically MAJOR
.MINOR
.PATCH
, where:
-
MAJOR
changes indicate breaking structural changes -
MINOR
changes add functionality in a backward compatible manner -
PATCH
changes make backward compatible bug fixes
Minor and patch changes will automatically be applied to structs elements in server upgrades, whereas major changes will typically require user interaction. Major changes will be avoided as much as possible to maintain stable workflows.
Groups
Project
Top level struct group. All struct groups and databases must be decendants of a project to be recognized. Name and label are customizable.
Created with the STRUCT CREATE PROJECT
action.
Parameter | Value |
---|---|
type | project |
v | 1.0.0 |
Category
Mid-level struct group for organization. Must be child of project or category. Name and label are customizable. Created with the STRUCT CREATE CATEGORY
action.
Parameter | Value |
---|---|
type | category |
v | 1.0.0 |
Model
Group for which all data is locally co-relevant. Must be child of either project or category. Name and label are customizable. Created with the STRUCT CREATE MODEL
action.
Parameter | Value |
---|---|
type | model |
v | 1.0.0 |
Origin
Group for all data from a single data origin. Must be the child of a model. Name and label are customizable. Created with the STRUCT CREATE ORIGIN
action.
Parameter | Value |
---|---|
type | origin |
v | 1.0.0 |
Definitions
Group containing definitions databases.
Parameter | Value |
---|---|
type | origin |
v | 1.0.0 |
Task
Mnemonic
Mnemonic Bin
Databases
Definitions
Event Def
Mnemonic Def
Holds mnemonic definitions, specifying how they are displayed, interpretted and processed. Must be direct child of definitions group:
<project>.def.mn
or ...<category>.def.mn
or ...<model>.def.mn
Parameter | Value |
---|---|
type | def_mn |
version | 1.0.0 |
name | mn |
label | Mnemonic |
Fields
Name | Type | Req | Description |
---|---|---|---|
mn_id | int(4) |
✓ | unique mnemonic ID |
name | utf8vstring(128) |
✓ | unique mnemonic name |
desc | utf8text |
plain text mnemonic description | |
unit | utf8vstring(32) |
measurement unit (for example, "V" , "mA" ) |
|
state | struct_mn_state |
✓ | current state of mnemonic |
origins | jsonobject |
✓ | map of model(s) to associated origin(s) |
full | asciivstring(32) |
the primary database for the mnemonic, default f8 |
|
bin | set(asciivstring(32)) |
the opt-in bin database(s) to include the mnemonic in | |
format | asciivstring(32) |
printf-style format to render values | |
enums | jsonobject |
mapping of permitted text values to numeric values | |
labels | list(jsonobject) |
mapping of numeric values or ranges to labels | |
aliases | set(asciivstring(128)) |
set of additional names associated with the mnemonic | |
meta | jsonobject |
additional metadata as needed | |
query | asciivstring(32) |
query name for meta-mnemonics | |
conf | jsonobject |
configuration for meta-mnemonics |
Changelog
1.0.0
-
enum
changed toenums
since "enum" is often a reserved keyword -
meas
field removed (measure now assumed fromunit
)
Nominal Def
Plot Def
Profile Def
Events
Event databases come in three forms, simple events, single file per event, and multiple files per event.
Event
Each record is a single event. May be a direct child of either a model or origin:
...<model>.event
or ...<origin>.event
Parameter | Value |
---|---|
type | event |
version | 1.0.1 |
name | event |
label | Event |
Fields
Note that virtual fields are calculated from other fields and cannot be populated manually.
Name | Type | Req | Description |
---|---|---|---|
uuid | uuid |
✓ | event UUID |
e_id | int(8) |
✓ | event ID (default to 0 if not provided) |
t_start | instant(us) |
✓ | start time |
t_end | instant(us) |
end time (if null , event is an open interval) |
|
dur | duration(us) |
✓ | virtual duration in microseconds (null if open) |
interval | boolean |
✓ | virtual t_start != t_end |
open | boolean |
✓ | virtual t_end is null |
type | struct_event_type |
✓ | event type (default to message if not provided) |
level | struct_event_level |
✓ | event level (default to none if not provided) |
name | utf8vstring(128) |
event name (if associated with event definition) | |
label | utf8vstring(128) |
✓ | plain text label |
content | utf8text |
extended event content | |
meta | jsonobject |
additional metadata as needed | |
conf | jsonobject |
configuration for specific event types |
Changelog
1.0.1
- corrected
name
as not required
1.0.0
-
pid
(primary ID) changed toe_id
(event ID) to avoid confusion -
sid
removed (additional IDs may be added as needed) -
int
changed tointerval
(int
is commonly reserved keyword) -
dur
,interval
, andopen
are now derived fields fromt_start
andt_end
- added
struct_event_type
andstruct_event_level
data types - added
name
as event definition association
Event File
Uses same structure as event database, with one additional field.
Name | Type | Req | Description |
---|---|---|---|
file_name | utf8filename |
✓ | safe file name |
Event Files
Mnemonics
Mn Full
Mn Buffer
Mn Delta
Mn Bin Time
Mn Bin Interval
Mn File Archive
Contains all mnemonic archive files for an origin. Parent must be an origin group:
...<origin>.archive
Parameter | Value |
---|---|
type | archive |
version | 1.0.0 |
name | archive |
label | Archive |
Fields
Name | Type | Req | Description |
---|---|---|---|
uuid | uuid |
✓ | file UUID |
t_start | instant(us) |
✓ | start time |
t_end | instant(us) |
✓ | end time |
dur | duration(us) |
✓ | virtual duration in microseconds |
t_min | instant(us) |
✓ | time of first data in file |
t_max | instant(us) |
✓ | time of last data in file |
file_name | utf8filename |
✓ | archive file name |
format | asciivstring(32) |
file format (default "xbin" ) |
|
meta | jsonobject |
additional metadata as needed | |
conf | jsonobject |
configuration for format as needed |
Mn File Buffer
Contains all mnemonic buffer files for an origin. Parent must be an origin group:
...<origin>.buffer
Parameter | Value |
---|---|
type | archive |
version | 1.0.0 |
name | archive |
label | Archive |
Fields
Name | Type | Req | Description |
---|---|---|---|
uuid | uuid |
✓ | file UUID |
file_name | utf8filename |
✓ | buffer file name |
t_min | instant(us) |
✓ | time of first data in file |
t_max | instant(us) |
✓ | time of last data in file |
dur | duration(us) |
✓ | virtual duration in microseconds |
state | struct_buffer_state |
✓ | buffer file state |
flag | struct_buffer_flag |
buffer file flag | |
format | asciivstring(32) |
buffer file format (default "csv" ) |
|
conf | jsonobject |
configuration for format as needed |
The state field may be one of four values:
-
PENDING
- the file data is present in the mnemonic buffer database but has not been processed further -
PROCESSED
- the file has been converted into a standard xbin file format -
ARCHIVED
- the file contents have been distributed to the appropriate archive file(s) -
DEPRECATED
- the file is preserved but no longer included in archive files
The flag field may be one of two values:
-
DEPRECATE
- the file is queued for deprecation -
DELETE
- the file is queued for deletion
Tasks
Archive Task
Mine Task
Spectra
The spectra definition is a property for event databases.
Property | Value | Req | Description |
---|---|---|---|
tabs | array of tab conf(s) | custom tabs for UI | |
presearch | array of presearch confs | custom pre-search components for UI | |
filters | array of filter confs | ||
grouping | array of field name(s) | ||
charts | charts conf | ✓ | |
tables | array of table conf | ||
query | query conf | ||
labels | labels conf |
Spectra Tab Conf
Configuration for a spectra search tab. This may be a string
, referencing the name of a custom tab implementation, or an object with a "type"
property specifying a tab type and additional properties applicable for that type. Currently there are no custom tab types, but they may be added in the future.
Spectra Database Tab
Under Construction
The database tab employs a record search for a separate target database of any type, and a solution for converting a selection from the target database to the spectra database.
Property | Value | Req | Description |
---|---|---|---|
type | "database" |
✓ | tab type name |
database | database specifier | ✓ | target database specifier |
map | see below | ✓ | solution to map target selection to spectra selection |
The "map"
property may be a string
, array
of strings
, or object
.
If a string
, the value must be the name of a custom selection function (none currently exist, they may be added in the future).
Spectra Presearch Conf
Specifies a set of components to display before the main spectra search component.
Spectra Field Presearch
Specifies a standalone component to search a particular field.
Property | Value | Req | Description |
---|---|---|---|
type | "field" |
✓ | presearch type name |
field | field specifier | ✓ | |
options | see below | options for search dropdown |
Spectra Filters Conf
Specifies filters / badges for spectra search.
Property | Value | Req | Description |
---|---|---|---|
name | string |
✓ | system name for filter |
label | string |
display label (uses name if absent) | |
badge | string |
badge label (uses name if absent) | |
desc | string |
description for badge / filter tooltip | |
color | string |
color code or CSS class | |
e | expression |
✓ | expression to apply for filter |
Spectra Charts Conf
Specifies options for each spectra chart.
Property | Value | Req | Description |
---|---|---|---|
summary | spectra chart conf | ✓ | summary chart conf |
spectra | spectra chart conf | ✓ | spectra chart conf |
Spectra Chart Conf
Specifies options for a single spectra chart.
Property | Value | Req | Description |
---|---|---|---|
x | string[] |
✓ | x axis options |
y | string[] |
✓ | y axis options |
tooltip | string |
record format string |
Spectra Tables Conf
Under Construction
Spectra Query Conf
Under Construction
Spectra Labels Conf
Labels are specified as an object
mapping standard label values to custom values. These will be defined as needed.