Skip to main content

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
versionv 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
versionv 1.0.0

Definitions

Group containing definitions databases.

ParameterValue
typeorigin
v1.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 to enums since "enum" is often a reserved keyword
  • meas field removed (measure now assumed from unit)

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 to e_id (event ID) to avoid confusion
  • sid removed (additional IDs may be added as needed)
  • int changed to interval (int is commonly reserved keyword)
  • dur, interval, and open are now derived fields from t_start and t_end
  • added struct_event_type and struct_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.