SHIPHarbour:DataTypes

From Serious Documentation
Jump to: navigation, search

Source File

SHIPHarbour_DataTypes.proto

Description

The SHIPHarbour API re-defines all the primitive data types from the protobuf format into messages in order to be able to test if the member was initialized or not. This is because there is no way to tell if a member was set to the default value intentionally or was never set, unless the member is a message. Additionally, all enums are declared in this file because it is not possible to have two different enum types to use the same name.

Primitives

SInt64Value

Variable-length encoded signed 64-bit integer value.

UInt64Value

Variable-length encoded unsigned 64-bit integer value.

Fixed64Value

Fixed-length encoded unsigned 64-bit integer value.

DoubleValue

Fixed-length encoded 64-bit floating point value.

Int32Value

Variable-length encoded signed 32-bit integer value.

UInt32Value

Variable-length encoded unsigned 32-bit integer value.

FloatValue

Fixed-length 32-bit floating point value.

BoolValue

Fixed-length binary value.

StringValue

Arbitrary-length UTF-8 and/or 7-bit ASCII text values.

BytesValue

Arbitrary-length byte values.

Enums

VersionCode

Appears in all SHIPHarbour requests, used to track compatibility-breaking changes to the SHIPHarbour message structures.

ErrorCode

Appears in all SHIPHarbour requests, used for validating if a requested operation worked and diagnosing failures.

ProgramType

Used as part of the Program type to describe a kind of a program that can execute on a Serious module.

ProgramState

Used as part of the Program type to describe the state of a program that can execute on a Serious module.

FirmwareType

Used by ModuleInfo requests to report the type of the currently executing program of a Serious module. Also used by Firmware requests.

UpdateMethod

Used by Update requests to specify how the module is allowed to apply the update.

UpdateStage

Used in responses to Update requests to notify the step of the update process being performed.

FSType

Used by Files requests to specify a target file system on a Serious module.

Core Types

Program

Used by SetState requests to describe the desired program and state transition as well as current program and state.

FirmwareVersion

Used as part of the Firmware type to describe the version of a firmware.

Firmware

Used as part of the ModuleDetails type to inform the client what program the Serious module is currently running.

Endpoint

Used to uniquely identify a communications channel between a Serious module and SHIPHarbour Master.

Module

Used as part of the ModuleDetails type to uniquely identify the Serious module and associate Endpoints.

ModuleDetails

Used in spontaneous ModuleInfo updates to inform the client about module connections and disconnections in SHIPHarbour Master.

PluginDetails

Used in spontaneous PluginInfo updates to inform the client about communications plugins available in SHIPHarbour Master.

RoutineInfo

Appears in all Routine requests, used to create and route a request to perform an operation on a specific Endpoint inside of SHIPHarbour Master.