Struct Actions
Struct actions are complex data actions designed to be used with the XINA Data Model Standards.
STRUCT_BUFFER_IMPORT
The STRUCT_BUFFER_IMPORT action imports a buffer source file into a model.
| Property | Value | Required | 
|---|---|---|
| action | "struct_buffer_import" | yes | 
| model | model group specifier | yes | 
| origin | origin name | yes | 
| object_id | object ID of data file | yes | 
| format | string | yes | 
| conf | jsonobject | no | 
| strict_units | boolean | no (default false) | 
If the mn column is an integer it will be interpretted as a literal mnemonic ID. Otherwise the name will be parsed from this format:
<name>[(<unit>[;n0=v0|n1=v1|...])]
<name> will be used for the mnemonic name lookup. The comparison is case insensitive and any whitespace is treated as a single underscore. <unit> is optional. If provided, it must match the unit of an associated mnemonic definition, otherwise an error is thrown. The section after unit defines discrete value mapping.
When a data set is imported the XINA server will run the following steps:
- For each row:
- validate time and value
- process mnemonic
- If mnemonic ID
- If found in definitions database:
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
 
- Else, throw error due to unrecognized ID
 
- If found in definitions database:
- Else, parse name and optional unit
- If name match found:
- If unit is provided and does not match, throw error
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
 
- Else, mnemonic is new, create new temporary mnemonic definition based on provided information
 
- If name match found:
 
- If mnemonic ID
 
- If any rows contain same mnemonic and time, throw error
- Check for time overlap in database
- If found
- If on_overlap=fail, throw error
- Else If on_overlap=delete, delete all data from database in time range of imported data
- Else (on_overlap=ignore), do nothing
 
- If 
 
- If found
- If new mnemonic definitions created, insert into mnemonic definition database
- Insert data into mnemonic database
STRUCT_MN_ALIAS
The STRUCT_MN_ALIAS action adds one or more aliases of name/unit pairs to a single existing mnemonic.
| Property | Value | 
|---|---|
| action | "struct_mn_edit" | 
| database | mnemonic definition database specifier | 
| mn | mnemonic ID | 
| aliases | string[], name/unit pair alias(es) for mnemonic | 
STRUCT_MN_EDIT
The STRUCT_MN_EDIT action edits one or more properties of a single existing mnemonic.
| Property | Value | Required | 
|---|---|---|
| action | "struct_mn_edit" | yes | 
| database | mnemonic definition database specifier | yes | 
| mn | mnemonic ID | yes | 
| name | string, new name/unit pair for mnemonic | no | 
| state | string | no | 
STRUCT_MN_MERGE
The STRUCT_MN_MERGE action merges one or more existing mnemonics into a single existing mnemonic.
STRUCT_INT_OPEN
The STRUCT_INT_OPEN action opens one or more intervals in a model.
STRUCT_INT_CLOSE
The STRUCT_INT_OPEN action closes one or more intervals in a model.
