Protocol Documentation

Table of Contents

common.proto

Top

ClientId

Identifier for client. Used in subscribe and publish. Subscriptions will not

receive updates from publish calls with the same ClientId.

FieldTypeLabelDescription
id string

Identifier as string

E2e

Information about E2E configuration.

FieldTypeLabelDescription
profile E2eProfile

Profile.

dataId uint32

Data ID for CRC calculation.

signalCrc string

Name of signal for CRC field.

signalCounter string

Name of signal for counter field.

Empty

Symbolic message representing no argument needed or provided.

FrameInfo

Information about a frame and it's signals.

FieldTypeLabelDescription
signalInfo SignalInfo

Information about the frame itself.

childInfo SignalInfo repeated

Information about signals included in frame.

Frames

Collection of information for several frames.

FieldTypeLabelDescription
frame FrameInfo repeated

List of information about frames.

Group

Group inside of frame.

FieldTypeLabelDescription
start uint32

Byte offset in frame for group.

length uint32

Byte length of group.

e2e E2e

E2E property for group.

MetaData

Collection of all meta data for a signal.

RemotiveBroker support several databases. The following attributes are read

from the database running on the RemotiveBroker.

FieldTypeLabelDescription
description string

Description for signal.

max float

Maximum allowed value.

min float

Minimum allowed value.

unit string

Unit of the signal value.

size int32

Size of signal value when packed in frame.

isRaw bool

Is binary data?

factor double

Multiplication faction used for encoding and decoding value in frame.

offset double

Offset used for encoding and decoding value in frame.

sender string repeated

List of named senders of signals.

receiver string repeated

List of named receivers of signal.

cycleTime float

Cadence for sending signal in milliseconds.

startValue float

Initial value to use before publishing.

multiplex Multiplex

Frame multiplexing information.

e2e E2e

E2e information about frame.

groups Group repeated

Groups inside frame.

frameId uint32

Assosiated identification number for frame.

Multiplex

Multiplexing information.

Some signal databases allow "multiplexing" or "unions" in their frame

information. IF a signal is in `select` mode, the value of the signal will

act as a filter for signals which are in `filter` mode.

FieldTypeLabelDescription
none Empty

select Empty

filter int32

NameSpace

Identifier for a name space.

FieldTypeLabelDescription
name string

Name of name space, which in turn is typically redirected in interfaces.json to an electrical interface.

NetworkInfo

Information about network

FieldTypeLabelDescription
namespace NameSpace

Corresponding name space.

type string

Type of network as text. Eg "can", "lin" etc.

description string

Description text about network.

SignalId

Identifier for a signal.

FieldTypeLabelDescription
name string

Name of signal.

namespace NameSpace

Which name space signal belongs in.

SignalInfo

Information about a signal. Including name and all meta data fields.

FieldTypeLabelDescription
id SignalId

metaData MetaData

E2eProfile

Supported E2E profiles.

NameNumberDescription
PROFILE_AR_01A 0

Autosar 1A

network_api.proto

Top

CountByFrameId

FieldTypeLabelDescription
frameId uint32

count uint64

FramesDistribution

FieldTypeLabelDescription
countsByFrameId CountByFrameId repeated

FramesDistributionConfig

FieldTypeLabelDescription
namespace NameSpace

Name of the namespace from which we wish to subscribe to frames distributions.

PublisherConfig

Parameters for publishing values.

FieldTypeLabelDescription
signals Signals

Signals with values.

clientId ClientId

Identifier of publisher, typically your app identifier. Subscribers with same identifier will not trigger callback.

frequency int32

Specify frequency of publication. Specify 0 to only publish once.

Signal

Signal with value.

FieldTypeLabelDescription
id SignalId

Identifier of signal to publish.

integer int64

Value with integer type (int64).

double double

Floating point data type (double).

arbitration bool

Exclusive for LIN bus, present as true when a header is presented on the bus.

empty bool

No data supplied.

raw bytes

Binary data of value, relevant for Frames.

timestamp int64

time stamp in micro seconds, set when first seen.

SignalIds

List of signal identifiers

FieldTypeLabelDescription
signalId SignalId repeated

List of signal identifiers.

Signals

Signals with values

FieldTypeLabelDescription
signal Signal repeated

List of signals with values.

SubscriberConfig

Parameters for subscription.

FieldTypeLabelDescription
clientId ClientId

Identifier of subscriber, typically your app identifier. Published signals with same identifier will not trigger callback.

signals SignalIds

List of signals in subscription.

onChange bool

Only trigger callback when value changes when set to true.

SubscriberWithScriptConfig

FieldTypeLabelDescription
clientId ClientId

Identifier of subscriber, typically your app identifier. Published signals with same identifier will not trigger callback.

script bytes

Custom Lua mapping code

onChange bool

Only trigger callback when value changes when set to true.

NetworkService

Signal publish, subscribe and read.

Method NameRequest TypeResponse TypeDescription
SubscribeToSignals SubscriberConfig Signals stream

Subscribe to signals.

SubscribeToSignalWithScript SubscriberWithScriptConfig Signals stream

Subscribe to signals with transform provided as a LUA script.

SubscribeToFramesDistribution FramesDistributionConfig FramesDistribution stream

A stream which emits frames distributions of a provided namespace. Useful for diagnostic purposes. Counts are reset every 500 ms.

PublishSignals PublisherConfig Empty

Publish signals with values.

ReadSignals SignalIds Signals

Read signals from cache.

system_api.proto

Top

BatchDownloadFileChunksRequest

FieldTypeLabelDescription
fileDescriptions FileDescription repeated

timeout uint32

Server-side timeout (in milliseconds) for downloading a chunk. The timeout is for each chunk, not the entire file. If the timeout is exceeded, the server will cancel the download and return an error.

BatchDownloadFileChunksResponse

FieldTypeLabelDescription
lastChunk bool

Amount of chunks.

chunkId uint32

Index of this chunk. Start with 0.

chunk bytes

Chunk data.

estimatedTotalSize uint32

Estimated total size in bytes.

Configuration

Configuration of server.

FieldTypeLabelDescription
networkInfo NetworkInfo repeated

Network information.

interfacesJson bytes

Server configuration file `interfaces.json`.

publicAddress string

IP address of server.

serverVersion string

Version of RemotiveBroker.

interfacesInfo string

Contains configuration file deprecation warnings, validation errors and similar

FileDescription

File information.

FieldTypeLabelDescription
sha256 string

File checksum.

path string

File (path and filename) on server.

FileDescriptions

FieldTypeLabelDescription
fileDescriptions FileDescription repeated

FileDownloadResponse

Response from file download request.

FieldTypeLabelDescription
chunk bytes

File content.

errorMessage string

Error with reason.

FileUploadChunkRequest

Request for file chunk upload.

Divide file in chunks of n bytes, where recommend n is 500000 bytes.

SHA256 which is part of FileDescription only needs to be submitted in the

last chunk.

FieldTypeLabelDescription
fileDescription FileDescription

What file this chunk is for.

chunks uint32

Amount of chunks.

chunkId uint32

Index of this chunk. Start with 0.

chunk bytes

Chunk data.

cancelUpload bool

Cancel upload request.

uploadTimeout uint32

Server side timeout (ms) for uploading all chunks which represents full file.

FileUploadRequest

Parameters for a file upload.

SHA256 which is part of FileDescription only needs to be submitted in the

last chunk.

FieldTypeLabelDescription
fileDescription FileDescription

Information about file to upload.

chunk bytes

Amount of chunks that will be sent for this file.

FileUploadResponse

Response from file or file chunk upload.

FieldTypeLabelDescription
finished bool

Upload completed.

cancelled bool

Upload canceled.

errorMessage string

Error with reason.

License

License data.

FieldTypeLabelDescription
data bytes

Content of license.

termsAgreement bool

Check if user accepted user agreement.

LicenseInfo

Server license information.

FieldTypeLabelDescription
status LicenseStatus

Status of license.

json bytes

Verbatim json from the license data if BASE64-decodable.

expires string

Extracted from json for convenience.

requestId string

Info to use when requesting a new license.

requestMachineId bytes

Identifier for machine running server.

PropertyValue

FieldTypeLabelDescription
name string

Example name: "secoc_key", "secoc_fv"

scope string repeated

Example input: [<namespace>, <keyId>] or [<namespace>, <profile>]

raw bytes

integer int64

double double

ReloadMessage

Response from reload request.

FieldTypeLabelDescription
configuration Configuration

New configuration from successfully reload operation.

errorMessage string

Response from failed reload operation.

LicenseStatus

Type for license status.

NameNumberDescription
UNSET 0

No license.

VALID 1

Valid license.

EXPIRED 2

Expired.

BADDATE 3

Error, incorrect date.

WRONGMACHINE 4

Error, license not for this machine.

INCOMPLETEJSON 5

Error, Incomplete license file.

INVALIDJSON 6

Error, Incomplete license json file.

BADSIGNATURE 7

Error, Bad signature on license file.

MALFORMED 8

Error, reading license file.

SERVERERROR 9

Error, server side.

NOTERMSAGREEMENT 10

Error, user has not accepted terms.

SystemService

Handle configuration of the RemotiveBroker server.

Method NameRequest TypeResponse TypeDescription
GetConfiguration Empty Configuration

Get current configuration of server.

ListSignals NameSpace Frames

Get list of all available frames and signals on server.

UploadFileChunk FileUploadChunkRequest FileUploadResponse

Upload file using chunks (without streams), specifically useful for gRPC-web which does not support Client-side streaming.

UploadFile FileUploadRequest stream FileUploadResponse

Upload file using streams, preferred option for client with Client-side streaming.

BatchDeleteFiles FileDescriptions Empty

Delete a single or multiple files from server.

BatchDownloadFiles FileDescriptions FileDownloadResponse stream

Download a single or multiple files from server.

BatchDownloadFileChunks BatchDownloadFileChunksRequest BatchDownloadFileChunksResponse

ReloadConfiguration Empty ReloadMessage

Will not return until new configuration is tested an active, make sure to set timeout to a large value. (fibex on pi > 50s).

GetLicenseInfo Empty LicenseInfo

Get information about server license.

SetLicense License LicenseInfo

Set server license.

SetProperty PropertyValue Empty

Sets a custom property, such as SecOc parameters

traffic_api.proto

Top

PlaybackConfig

Information about name space and file associated with playback or recording.

Playback will play signals on namespace. Recordings will record all signals

on name space.

FieldTypeLabelDescription
fileDescription FileDescription

File information.

namespace NameSpace

Name space associated.

PlaybackInfo

Information about a playback or a recording.

FieldTypeLabelDescription
playbackConfig PlaybackConfig

File and name space information.

playbackMode PlaybackMode

Current mode.

PlaybackInfos

Information about all playbacks and recordings.

FieldTypeLabelDescription
playbackInfo PlaybackInfo repeated

List of all information.

PlaybackMode

Status of playback.

FieldTypeLabelDescription
errorMessage string

Error reason.

EOF string

End of file; playback finished

mode Mode

Active with mode.

offsetTime uint64

Current offset in micro seconds.

startTime uint64

Start time in monotonic micro seconds.

endTime uint64

End time in monotonic micro seconds.

timeDeviation int64

Time deviation in micro seconds, measured by server.

offsetWallClockVsSample int64

Signal and wall clock offset. Signals might have a seperate timestamp.

noPlaybackToApplication bool

Allows disabling of data flow from recording to application layers. Default is set to false.

playbackToBus bool

Let data to be replayed to the bus specified in intefaces.json. Defalt set to false.

Mode

Modes of playback and recording.

NameNumberDescription
PLAY 0

Playing a file.

PAUSE 1

Playback is paused.

STOP 2

Playback in stopped.

RECORD 3

Recording a playback.

SEEK 4

Seek to offset in a playback

TrafficService

Handle playback and recordings.

Method NameRequest TypeResponse TypeDescription
PlayTraffic PlaybackInfos PlaybackInfos

Play a playback or start recording.

PlayTrafficStatus Empty PlaybackInfos stream

Get continuous status of playback states.

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)