File: reach.pb.h

This file an annotated copy of reach.pb.h which is generated from reach.proto. reach.pb.h defines the protobuf structures in C. This version is hand edited to provide Doxygen comments. See reach.pb.h for the latest.

Date

2024-06-14

Copyright

(c) Copyright 2023-2024 i3 Product Development. All Rights Reserved. The Cygngus Reach firmware stack is shared under an MIT license.

Typedefs

typedef enum _cr_ReachProto_MAJOR_Version cr_ReachProto_MAJOR_Version

The major version generally changes to signal a break in compatibility

typedef enum _cr_ReachProto_MINOR_Version cr_ReachProto_MINOR_Version

The minor version changes at a release which is not completely compatible

typedef enum _cr_ReachProto_PATCH_Version cr_ReachProto_PATCH_Version

The patch version changes every time a hex file goes out the door.

typedef enum _cr_ReachMessageTypes cr_ReachMessageTypes

These values identify the type of the Reach message.

typedef enum _cr_ServiceIds cr_ServiceIds

binary bit masks or’ed together into the DeviceInfoResponse.services

typedef enum _cr_EndpointIds cr_EndpointIds

binary bit masks or’ed together into the DeviceInfoResponse.endpoints

typedef enum _cr_ParameterDataType cr_ParameterDataType

These are the types of data that can be stored as parameters.

typedef enum _cr_AccessLevel cr_AccessLevel

permissions

typedef enum _cr_StorageLocation cr_StorageLocation

The types of memory in which parameters are stored. RAM and NVM (Non Volatile Memory) are most common.

typedef enum _cr_WiFiSecurity cr_WiFiSecurity

WiFi security type

typedef enum _cr_WiFiBand cr_WiFiBand

WiFi Band

typedef enum _cr_ErrorCodes cr_ErrorCodes

Reach uses these error codes.

typedef enum _cr_FileTransferState cr_FileTransferState

Describes file transfer state machine

typedef enum _cr_SizesOffsets cr_SizesOffsets

This describes the offset of each member of the BufferSizes message when packed for transmission

typedef struct _cr_ReachMessageHeader cr_ReachMessageHeader

This is the “classic” Reach service routing message header.

/ It is now deprecated in favor of the AhsokaMessageHeader.

typedef struct _cr_ReachMessage cr_ReachMessage

A reach packet includes a header and a payload.

typedef struct _cr_AhsokaMessageHeader cr_AhsokaMessageHeader

This Service Routing Message Header is used in the OpenPV system. / Reach can speak it. / This object represents the Layer 2 Message Format for OpenPV Service Messages. / The ordinals are presereved but the names are changed to match

typedef struct _cr_ErrorReport cr_ErrorReport

ERROR_REPORT: Could be sent asynchronously to indicate an error.

typedef struct _cr_PingRequest cr_PingRequest

Request Object used to Echo Data for testing the Device Communication

typedef struct _cr_PingResponse cr_PingResponse

Response Object used to Echo Data for testing the Device Communication

typedef struct _cr_DeviceInfoRequest cr_DeviceInfoRequest

Required Device Information Service Reach sessions are opened with the device info request and response.

typedef struct _cr_DeviceInfoResponse cr_DeviceInfoResponse

This message is returned in answer to the first “who are you” query from the client.

typedef struct _cr_ParameterInfoRequest cr_ParameterInfoRequest

Parameter Service Parameters provide a simple key:value database. The key is an ID number.

The value can be of various common types up to (typically) 32 bytes.

Parameters support a robust description which can be const, stored in flash.

Parameters can be configured to support notifying the client. The ParameterInfoRequest is used by the client to request detailed information about a set of parameters.

typedef struct _cr_Uint32ParameterInfo cr_Uint32ParameterInfo

A member of a union (oneof) that describes a uint32

typedef struct _cr_Int32ParameterInfo cr_Int32ParameterInfo

A member of a union (oneof) that describes an sint32

typedef struct _cr_Float32ParameterInfo cr_Float32ParameterInfo

A member of a union (oneof) that describes a float32

typedef struct _cr_Uint64ParameterInfo cr_Uint64ParameterInfo

A member of a union (oneof) that describes a uint64

typedef struct _cr_Int64ParameterInfo cr_Int64ParameterInfo

A member of a union (oneof) that describes an sint64

typedef struct _cr_Float64ParameterInfo cr_Float64ParameterInfo

A member of a union (oneof) that describes a float64

typedef struct _cr_BoolParameterInfo cr_BoolParameterInfo

A member of a union (oneof) that describes a boolean

typedef struct _cr_StringParameterInfo cr_StringParameterInfo

A member of a union (oneof) that describes a string

typedef struct _cr_EnumParameterInfo cr_EnumParameterInfo

A member of a union (oneof) that describes an enumerated value

typedef struct _cr_BitfieldParameterInfo cr_BitfieldParameterInfo

A member of a union (oneof) that describes a bitfield

typedef struct _cr_ByteArrayParameterInfo cr_ByteArrayParameterInfo

A member of a union (oneof) that describes a byte array

typedef struct _cr_ParameterInfo cr_ParameterInfo

A ParameterInfo structure describes a parameter so that it can be easily viewed an edited / by humans using a generic parameter editor.

typedef struct _cr_ParameterInfoResponse cr_ParameterInfoResponse

The response to ParameterInfoRequest

typedef struct _cr_ParamExKey cr_ParamExKey

The ParamExKey is used to give names to enums, bitfields, and booleans. / It is typically supplied in an array. / More than one parameter can point to the same ParamExKey.

typedef struct _cr_ParamExInfoResponse cr_ParamExInfoResponse

Describes enum, bitfield, and boolean labels

typedef struct _cr_ParameterRead cr_ParameterRead

A structure used to read one or more parameters

typedef struct _cr_ParameterWriteResponse cr_ParameterWriteResponse

The response to a parameter write

typedef struct _cr_ParameterNotifyConfig cr_ParameterNotifyConfig

Parameter Notification configuration / Notification can be enabled with conditions for each parameter.

typedef struct _cr_ParameterEnableNotifications cr_ParameterEnableNotifications

A message used to enable notifications

typedef struct _cr_ParameterDisableNotifications cr_ParameterDisableNotifications

A message used to disable notifications

typedef struct _cr_ParameterNotifyConfigResponse cr_ParameterNotifyConfigResponse

The response to enable and disable notifications

typedef struct _cr_DiscoverParameterNotifications cr_DiscoverParameterNotifications

The client can discover how notifications are setup.

typedef struct _cr_DiscoverParameterNotificationsResponse cr_DiscoverParameterNotificationsResponse

Reports which notifications are enabled.

typedef struct _cr_ParameterValue cr_ParameterValue

A message used to send or receive a single parameter value.

typedef struct _cr_ParameterReadResponse cr_ParameterReadResponse

A structure used to return the values read from one or more parameters

typedef struct _cr_ParameterWrite cr_ParameterWrite

A structure used to write one or more Parameters

typedef struct _cr_ParameterNotification cr_ParameterNotification

A message of this type is sent by the server when parameters change.

typedef struct _cr_DiscoverFiles cr_DiscoverFiles

The optional file service provides a method of efficiently transfering large blocks of data.

typedef struct _cr_FileInfo cr_FileInfo

A structure describing a file

typedef struct _cr_DiscoverFilesResponse cr_DiscoverFilesResponse

The response to discover files

typedef struct _cr_FileTransferRequest cr_FileTransferRequest

Begins a File Transfer (Upload / Download)

typedef struct _cr_FileTransferResponse cr_FileTransferResponse

The response to a file transfer request

typedef struct _cr_FileTransferData cr_FileTransferData

A bidirectional message describing a packet of file data

typedef struct _cr_FileTransferDataNotification cr_FileTransferDataNotification

The response to a file transfer

typedef struct _cr_FileEraseRequest cr_FileEraseRequest

A request to erase (set size to zero) a file.

typedef struct _cr_FileEraseResponse cr_FileEraseResponse

The response to a file erase request

typedef struct _cr_DiscoverStreams cr_DiscoverStreams

A request to list the streams supported by the device

typedef struct _cr_StreamInfo cr_StreamInfo

A structure describing a stream

typedef struct _cr_DiscoverStreamsResponse cr_DiscoverStreamsResponse

The response to DiscoverStreams

typedef struct _cr_StreamOpen cr_StreamOpen

A structure requesting to open a stream

typedef struct _cr_StreamResponse cr_StreamResponse

The response to StreamOpen and StreamClose requests

typedef struct _cr_StreamClose cr_StreamClose

A structure requesting to close a stream

typedef struct _cr_StreamData cr_StreamData

Bi-Directional message used to asynchronously send stream data to the other side.

typedef struct _cr_DiscoverCommands cr_DiscoverCommands

The (optional) Command Service allows actions to be triggered from the Reach UI.

typedef struct _cr_CommandInfo cr_CommandInfo

The description of a command.

typedef struct _cr_DiscoverCommandsResponse cr_DiscoverCommandsResponse

Response to a DiscoverCommands request.

typedef struct _cr_SendCommand cr_SendCommand

Prompts the device to execute this command.

typedef struct _cr_SendCommandResponse cr_SendCommandResponse

A response acknowledging the completion of a command.

typedef struct _cr_CLIData cr_CLIData

The optional Command Line Interface (CLI) service allows command line messages to be transfered / between the client and the server. Messages can travel in both directions. Messages are asynchronous. / The client can send a command line and the server can respond. / The server can also asynchrously send strings representing the output of the device. / The CLIData message is used in both directions.

typedef struct _cr_TimeSetRequest cr_TimeSetRequest

The optional Time Service is designed to allow the client to / set and adjust the real time clock in a server device. / The time is best specified as UTC plus timezone offset. / Although the timezone is optional, it’s best to use it. / TimeSetRequest requests setting the server device time to this value.

typedef struct _cr_TimeSetResponse cr_TimeSetResponse

The response to the TimeSetRequest

typedef struct _cr_TimeGetRequest cr_TimeGetRequest

A request to read the time from the server.

typedef struct _cr_TimeGetResponse cr_TimeGetResponse

The response to a TimeGetRequest

typedef struct _cr_ConnectionDescription cr_ConnectionDescription

A structure describing a WiFi connection or access point / The optional WiFi service is intended to simplify the / repetitive task of communicating WiFi credentials to the device.

typedef struct _cr_ScanWiFi cr_ScanWiFi

Commands the server to initiate a scan for WiFi access points. / As this may take some time, issue it and check the response later.

typedef struct _cr_DiscoverWiFi cr_DiscoverWiFi

A request to provide a list access points

typedef struct _cr_DiscoverWiFiResponse cr_DiscoverWiFiResponse

response to DiscoverWiFi

typedef struct _cr_WiFiConnectionRequest cr_WiFiConnectionRequest

A structure describing a WiFi connection request

typedef struct _cr_WiFiConnectionResponse cr_WiFiConnectionResponse

Describes the response to a WiFi connection request

typedef struct _cr_BufferSizes cr_BufferSizes

This data describing the sizes of the structures used in C code is communicated in a packed format in the device info structure. Here it’s defined in an unpacked (all 32 bit) format. Use the offsets defined below (SizesOffsets) to unpack into this structure. The file “reach_ble_proto_sizes.h” and the function populate_device_info_sizes() are good places to look for further info.

Enums

enum _cr_ReachProto_MAJOR_Version

The major version generally changes to signal a break in compatibility

Values:

enumerator cr_ReachProto_MAJOR_Version_MAJOR_VERSION
enum _cr_ReachProto_MINOR_Version

The minor version changes at a release which is not completely compatible

Values:

enumerator cr_ReachProto_MINOR_Version_MINOR_V0

Must have a zero

enumerator cr_ReachProto_MINOR_Version_MINOR_VERSION

Update at a release or a big change

enum _cr_ReachProto_PATCH_Version

The patch version changes every time a hex file goes out the door.

Values:

enumerator cr_ReachProto_PATCH_Version_PATCH_V0

Must have a zero

enumerator cr_ReachProto_PATCH_Version_PATCH_VERSION

Update when something changes

enum _cr_ReachMessageTypes

These values identify the type of the Reach message.

Values:

enumerator cr_ReachMessageTypes_INVALID

No Valid Message

enumerator cr_ReachMessageTypes_ERROR_REPORT

Inform client of an error condition

enumerator cr_ReachMessageTypes_PING

Test the link to the server

enumerator cr_ReachMessageTypes_GET_DEVICE_INFO

Open the communication with a server

enumerator cr_ReachMessageTypes_DISCOVER_PARAMETERS

Parameters Get a list of all of the parameters in the repository

enumerator cr_ReachMessageTypes_DISCOVER_PARAM_EX

An extension to discover used by verbose parameters

enumerator cr_ReachMessageTypes_READ_PARAMETERS

Get the values of a set of parameters

enumerator cr_ReachMessageTypes_WRITE_PARAMETERS

Change the values of a set of parameters

enumerator cr_ReachMessageTypes_PARAMETER_NOTIFICATION

Sent from the server to the client when a parameter has changed

enumerator cr_ReachMessageTypes_DISCOVER_NOTIFICATIONS

Find out how notifications are setup

enumerator cr_ReachMessageTypes_PARAM_ENABLE_NOTIFY

setup parameter notifications

enumerator cr_ReachMessageTypes_PARAM_DISABLE_NOTIFY

disable parameter notifications

enumerator cr_ReachMessageTypes_DISCOVER_FILES

File Transfers Get a list of supported files

enumerator cr_ReachMessageTypes_TRANSFER_INIT

Begin a file transfer

enumerator cr_ReachMessageTypes_TRANSFER_DATA

(bi-directional) sends the requested data

enumerator cr_ReachMessageTypes_TRANSFER_DATA_NOTIFICATION

(bi-directional) Clears Sender to Send More Data

enumerator cr_ReachMessageTypes_ERASE_FILE

Set file size to zero.

enumerator cr_ReachMessageTypes_DISCOVER_COMMANDS

Commands Get a list of supported commands

enumerator cr_ReachMessageTypes_SEND_COMMAND

Reqeuest excecution of a command

enumerator cr_ReachMessageTypes_CLI_NOTIFICATION

Inform the other side (bi-directional) of a command line.

enumerator cr_ReachMessageTypes_DISCOVER_STREAMS

Get a list of supported streams

enumerator cr_ReachMessageTypes_OPEN_STREAM

Open a stream

enumerator cr_ReachMessageTypes_CLOSE_STREAM

Close a stream

enumerator cr_ReachMessageTypes_STREAM_DATA_NOTIFICATION

Inform the other side (bi-directional) of data on a stream.

enumerator cr_ReachMessageTypes_SET_TIME

Set the real time clock

enumerator cr_ReachMessageTypes_GET_TIME

Read the real time clock

enumerator cr_ReachMessageTypes_DISCOVER_WIFI

Get a list of WiFi acces points

enumerator cr_ReachMessageTypes_WIFI_CONNECT

Connect or disconnect to an access point

enum _cr_ServiceIds

binary bit masks or’ed together into the DeviceInfoResponse.services

Values:

enumerator cr_ServiceIds_NO_SVC_ID

No services. Device info service is required.

enumerator cr_ServiceIds_PARAMETER_REPO

Set this bit when the device supports the parameter service

enumerator cr_ServiceIds_FILES

Set this bit when the device supports the file service

enumerator cr_ServiceIds_STREAMS

Set this bit when the device supports the stream service

enumerator cr_ServiceIds_COMMANDS

Set this bit when the device supports the command service

enumerator cr_ServiceIds_CLI

Set this bit when the device supports the command line interface

enumerator cr_ServiceIds_TIME

Set this bit when the device supports the time service

enumerator cr_ServiceIds_WIFI

Set this bit when the device supports the WiFi service

enum _cr_EndpointIds

binary bit masks or’ed together into the DeviceInfoResponse.endpoints

Values:

enumerator cr_EndpointIds_NO_ENDPOINTS

No other endpoints

enumerator cr_EndpointIds_ONE

This is the first of multiple endpoints.

enumerator cr_EndpointIds_TWO

This is the second of multiple endpoints.

enumerator cr_EndpointIds_THREE

This is the third of multiple endpoints.

enumerator cr_EndpointIds_FOUR

This is the fourth of multiple endpoints.

enum _cr_ParameterDataType

These are the types of data that can be stored as parameters.

Values:

enumerator cr_ParameterDataType_UINT32

Unsigned 32 bit integer.

enumerator cr_ParameterDataType_INT32

Signed 32 bit integer.

enumerator cr_ParameterDataType_FLOAT32

32 bit floating point.

enumerator cr_ParameterDataType_UINT64

Unsigned 64 bit integer.

enumerator cr_ParameterDataType_INT64

Signed 64 bit integer.

enumerator cr_ParameterDataType_FLOAT64

64 bit floating point.

enumerator cr_ParameterDataType_BOOL

boolean (0 or 1)

enumerator cr_ParameterDataType_STRING

ASCII or UTF-8. Null Terminated.

enumerator cr_ParameterDataType_ENUMERATION

An extended description gives names to 32 bit integer values.

enumerator cr_ParameterDataType_BIT_FIELD

An extended description gives names to up to 64 bit positions.

enumerator cr_ParameterDataType_BYTE_ARRAY

An array of bytes.

enum _cr_AccessLevel

permissions

Values:

enumerator cr_AccessLevel_NO_ACCESS

No permission

enumerator cr_AccessLevel_READ

Read permission

enumerator cr_AccessLevel_WRITE

Write permission

enumerator cr_AccessLevel_READ_WRITE

Read and write permission

enum _cr_StorageLocation

The types of memory in which parameters are stored. RAM and NVM (Non Volatile Memory) are most common.

Values:

enumerator cr_StorageLocation_STORAGE_LOCATION_INVALID

unknown, not used

enumerator cr_StorageLocation_RAM

RAM, volatile, not saved on reboot.

enumerator cr_StorageLocation_NONVOLATILE

Flash or some other method saved over reboot

enumerator cr_StorageLocation_RAM_EXTENDED

In case a device has two RAM locations

enumerator cr_StorageLocation_NONVOLATILE_EXTENDED

In case a device has two non volatile locations

enum _cr_WiFiSecurity

WiFi security type

Values:

enumerator cr_WiFiSecurity_OPEN

No security

enumerator cr_WiFiSecurity_WEP

WEP

enumerator cr_WiFiSecurity_WPA

WPA

enumerator cr_WiFiSecurity_WPA2

WPA2

enumerator cr_WiFiSecurity_WPA3

WPA3

enum _cr_WiFiBand

WiFi Band

Values:

enumerator cr_WiFiBand_NO_BAND

Not specified

enumerator cr_WiFiBand_BAND_2

2.4GHz

enumerator cr_WiFiBand_BAND_5

5GHz

enum _cr_ErrorCodes

Reach uses these error codes.

Values:

enumerator cr_ErrorCodes_NO_ERROR

Normal conclusion, no problem.

enumerator cr_ErrorCodes_NO_DATA

No data was produced

enumerator cr_ErrorCodes_READ_FAILED

The read failed.

enumerator cr_ErrorCodes_WRITE_FAILED

The write failed.

enumerator cr_ErrorCodes_NOT_IMPLEMENTED

returned by weak implementations

enumerator cr_ErrorCodes_RESERVED_1

not yet used

enumerator cr_ErrorCodes_RESERVED_2

not yet used

enumerator cr_ErrorCodes_PERMISSION_DENIED

access not allowed

enumerator cr_ErrorCodes_BUFFER_TOO_SMALL

Requested a size larger than the buffer.

enumerator cr_ErrorCodes_INVALID_PARAMETER

Some function parameter is out of range

enumerator cr_ErrorCodes_CHECKSUM_MISMATCH

Received data does not match checksum

enumerator cr_ErrorCodes_DECODING_FAILED

Protobuf decoding failed

enumerator cr_ErrorCodes_ENCODING_FAILED

Protobuf encoding failed

enumerator cr_ErrorCodes_INVALID_STATE

The current state machine does not handle this case.

enumerator cr_ErrorCodes_NO_RESPONSE

handler signals no response is necessary

enumerator cr_ErrorCodes_BAD_FILE

bad file ID

enumerator cr_ErrorCodes_PACKET_COUNT_ERR

A received packet has an unexpected serial number

enumerator cr_ErrorCodes_CHALLENGE_FAILED

Access denied due to challenge key

enumerator cr_ErrorCodes_RESERVED_3

not yet used

enumerator cr_ErrorCodes_NO_RESOURCE

Some required resource is not available.

enumerator cr_ErrorCodes_INVALID_ID

The ID provided is not valid

enumerator cr_ErrorCodes_INCOMPLETE

The requested operation is incomplete and must be retried.

enumerator cr_ErrorCodes_ABORT

Operation cancellation

enum _cr_FileTransferState

Describes file transfer state machine

Values:

enumerator cr_FileTransferState_FILE_TRANSFER_INVALID

FILE_TRANSFER_INVALID

enumerator cr_FileTransferState_IDLE

IDLE

enumerator cr_FileTransferState_INIT

INIT

enumerator cr_FileTransferState_DATA

DATA

enumerator cr_FileTransferState_COMPLETE

COMPLETE

enum _cr_SizesOffsets

This describes the offset of each member of the BufferSizes message when packed for transmission

Values:

enumerator cr_SizesOffsets_MAX_MESSAGE_SIZE_OFFSET

uint16_t, little endian

enumerator cr_SizesOffsets_BIG_DATA_BUFFER_SIZE_OFFSET

uint16_t, little endian

enumerator cr_SizesOffsets_PARAMETER_BUFFER_COUNT_OFFSET

uint8_t

enumerator cr_SizesOffsets_NUM_PARAMS_IN_RESPONSE_OFFSET

uint8_t

enumerator cr_SizesOffsets_DESCRIPTION_LEN_OFFSET

uint8_t

enumerator cr_SizesOffsets_MAX_PARAM_BYTES_OFFSET

uint8_t

enumerator cr_SizesOffsets_PARAM_INFO_DESCRIPTION_LEN_OFFSET

uint8_t

enumerator cr_SizesOffsets_MEDIUM_STRING_LEN_OFFSET

uint8_t

enumerator cr_SizesOffsets_SHORT_STRING_LEN_OFFSET

uint8_t

enumerator cr_SizesOffsets_PARAM_NOTIFY_CONFIG_COUNT_OFFSET

uint8_t

enumerator cr_SizesOffsets_NUM_DESCRIPTORS_IN_RESPONSE_OFFSET

uint8_t

enumerator cr_SizesOffsets_NUM_PARAM_NOTIFICATIONS_OFFSET

uint8_t

enumerator cr_SizesOffsets_NUM_COMMANDS_IN_RESPONSE_OFFSET

uint8_t

enumerator cr_SizesOffsets_COUNT_PARAM_DESC_IN_RESPONSE_OFFSET

uint8_t

enumerator cr_SizesOffsets_STRUCTURE_SIZE

just the size

struct _cr_ReachMessageHeader
#include <reach.h>

This is the “classic” Reach service routing message header.

/ It is now deprecated in favor of the AhsokaMessageHeader.

Public Members

uint32_t message_type

This ID defines the Type of Message being carried in the Envelope / Header

uint32_t endpoint_id

Routing for endpoints other than zero.

uint32_t client_id

To support multiple clients

uint32_t remaining_objects

Zero when transaction is complete

uint32_t transaction_id

An ID for a series of messages

struct _cr_ReachMessage
#include <reach.h>

A reach packet includes a header and a payload.

Public Members

bool has_header

Controls corresponding optional member.

cr_ReachMessageHeader header

A routing header

cr_ReachMessage_payload_t payload

The encoded payload

struct _cr_AhsokaMessageHeader
#include <reach.h>

This Service Routing Message Header is used in the OpenPV system. / Reach can speak it. / This object represents the Layer 2 Message Format for OpenPV Service Messages. / The ordinals are presereved but the names are changed to match

Public Members

int32_t message_type

This ID defines the Type of Message being carried in the Envelope / Header Called transport_id in OpenPV terminology. Called message_type in Reach terms.

int32_t transaction_id

This ID defines a unique Message / Response used when out of order messages are needed Called transaction_id in the OpenPV system. Called transaction_id in Reach terms.

cr_AhsokaMessageHeader_client_id_t client_id

Unique ID for a Client used in Services that support Multiple Clients OpenPV would use a GUID but Reach uses a 4 byte integer

int32_t remaining_objects

Called message_size in the OpenPV system. Called remaining_objects in Reach terms In Reach it defines the number of objects that remain to be transmitted in a continuued transaction. / The size of the message payload (in packets) that follows this header

uint32_t endpoint_id

Routing for Non-Endpoint Style Transports. Note: Endpoint 0 is Reserved for Service Discovery for Non-Endpoint Transports

bool is_message_compressed

Not used or supported in Reach.

In OpenPV, indicates that the message has used deflate compression in addition to pbuff encoding

struct _cr_ErrorReport
#include <reach.h>

ERROR_REPORT: Could be sent asynchronously to indicate an error.

Public Members

int32_t result

The integer error code being reported, preferrably from the ErrorCodes enum.

char result_message[194]

A human readable string describing the error.

struct _cr_PingRequest
#include <reach.h>

Request Object used to Echo Data for testing the Device Communication

Public Members

cr_PingRequest_echo_data_t echo_data

Data which should be echoed in the response

struct _cr_PingResponse
#include <reach.h>

Response Object used to Echo Data for testing the Device Communication

Public Members

cr_PingResponse_echo_data_t echo_data

The same data sent in the request

int32_t signal_strength

rssi : The server’s received signal strength expressed in dB.

struct _cr_DeviceInfoRequest
#include <reach.h>

Required Device Information Service Reach sessions are opened with the device info request and response.

Public Members

bool has_challenge_key

Controls corresponding optional member.

char challenge_key[32]

The request can include a challenge key to grant or deny access to parts of the system.

char client_protocol_version[16]

The client shares its version to enable backward compatibility.

struct _cr_DeviceInfoResponse
#include <reach.h>

This message is returned in answer to the first “who are you” query from the client.

Public Members

char device_name[24]

Human readable name of the device

char manufacturer[24]

Human readable name of the manufacturer

char device_description[48]

A longer human readable description.

char firmware_version[16]

Each endpoint advertises a “main” FW version. If there are other FW versions, put them in the parameter repo. MAJOR.MINOR.PATCH-NOTE. Parse MAJOR.MINOR.PATCH for compatibility. Note is not parsed.

char protocol_version_string[16]

The protocol version as a string against which this device is built. Parse MAJOR.MINOR.PATCH for compatibility.

uint32_t services

A bit mask, allowing support for up to 32 services

uint32_t parameter_metadata_hash

Used to avoid reloading the parameter descriptions

bool has_application_identifier

Controls corresponding optional member.

cr_DeviceInfoResponse_application_identifier_t application_identifier

A UUID to find a custom user interface

uint32_t endpoints

A bit mask, non-zero if the device supports more than one endpoint.

cr_DeviceInfoResponse_sizes_struct_t sizes_struct

A packed structure informing the client of the size limitations of the server. See SizesOffsets for descriptions.

struct _cr_ParameterInfoRequest
#include <reach.h>

Parameter Service Parameters provide a simple key:value database. The key is an ID number.

The value can be of various common types up to (typically) 32 bytes.

Parameters support a robust description which can be const, stored in flash.

Parameters can be configured to support notifying the client. The ParameterInfoRequest is used by the client to request detailed information about a set of parameters.

Public Members

pb_size_t parameter_ids_count

Controls corresponding repeated member.

uint32_t parameter_ids[32]

ID’s to Fetch (Empty to Get All)

struct _cr_Uint32ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a uint32

Public Members

bool has_range_min

Controls corresponding optional member.

uint32_t range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

uint32_t range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

uint32_t default_value

The (optional) default value for this parameter.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_Int32ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes an sint32

Public Members

bool has_range_min

Controls corresponding optional member.

int32_t range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

int32_t range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

int32_t default_value

The (optional) default value for this parameter.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_Float32ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a float32

Public Members

bool has_range_min

Controls corresponding optional member.

float range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

float range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

float default_value

The (optional) default value for this parameter.

bool has_precision

Controls corresponding optional member.

uint32_t precision

How many digits to be displayed to the right of the decimal point.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_Uint64ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a uint64

Public Members

bool has_range_min

Controls corresponding optional member.

uint64_t range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

uint64_t range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

uint64_t default_value

The (optional) default value for this parameter.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_Int64ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes an sint64

Public Members

bool has_range_min

Controls corresponding optional member.

int64_t range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

int64_t range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

int64_t default_value

The (optional) default value for this parameter.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_Float64ParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a float64

Public Members

bool has_range_min

Controls corresponding optional member.

double range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

double range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

double default_value

The (optional) default value for this parameter.

bool has_precision

Controls corresponding optional member.

uint32_t precision

How many digits to be displayed to the right of the decimal point.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_BoolParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a boolean

Public Members

bool has_default_value

Controls corresponding optional member.

bool default_value

The (optional) default value for this parameter.

bool has_pei_id

Controls corresponding optional member.

uint32_t pei_id

The (optional) ID of the extended description that names the two states.

struct _cr_StringParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a string

Public Members

bool has_default_value

Controls corresponding optional member.

char default_value[32]

The (optional) default value for this parameter..

uint32_t max_size

The length of the longest string to be stored here.

struct _cr_EnumParameterInfo
#include <reach.h>

A member of a union (oneof) that describes an enumerated value

Public Members

bool has_range_min

Controls corresponding optional member.

uint32_t range_min

The (optional) minimum value for this parameter.

bool has_range_max

Controls corresponding optional member.

uint32_t range_max

The (optional) minimum value for this parameter.

bool has_default_value

Controls corresponding optional member.

uint32_t default_value

The (optional) default value for this parameter.

bool has_pei_id

Controls corresponding optional member.

uint32_t pei_id

The (optional) ID of the extended description that names the values.

bool has_units

Controls corresponding optional member.

char units[16]

A string (UTF-8) to be displayed as the units of the parameter.

struct _cr_BitfieldParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a bitfield

Public Members

bool has_default_value

Controls corresponding optional member.

uint64_t default_value

The (optional) default value for this parameter.

uint32_t bits_available

How many bits of this bifield are valid

bool has_pei_id

Controls corresponding optional member.

uint32_t pei_id

The (optional) ID of the extended description that names the bits.

struct _cr_ByteArrayParameterInfo
#include <reach.h>

A member of a union (oneof) that describes a byte array

Public Members

bool has_default_value

Controls corresponding optional member.

cr_ByteArrayParameterInfo_default_value_t default_value

The (optional) default value for this parameter.

uint32_t max_size

The size in bytes of the largest array to be stored.

struct _cr_ParameterInfo
#include <reach.h>

A ParameterInfo structure describes a parameter so that it can be easily viewed an edited / by humans using a generic parameter editor.

Public Members

uint32_t id

The integer ID used to reference this parameter.

char name[24]

A human readable name for this parameter.

bool has_description

Controls corresponding optional member.

char description[32]

A longer human readable description of this parameter.

cr_AccessLevel access

Read or write access. Can be used for access control.

cr_StorageLocation storage_location

RAM or NVM or ?

pb_size_t which_desc

Specifies which description in the union.

cr_Uint32ParameterInfo uint32_desc

If uint32

cr_Int32ParameterInfo int32_desc

If sint32

cr_Float32ParameterInfo float32_desc

If float32

cr_Uint64ParameterInfo uint64_desc

If uint64

cr_Int64ParameterInfo int64_desc

If sint64

cr_Float64ParameterInfo float64_desc

If float64

cr_BoolParameterInfo bool_desc

If a boolean

cr_StringParameterInfo string_desc

If a string

cr_EnumParameterInfo enum_desc

If an enumeated type

cr_BitfieldParameterInfo bitfield_desc

If a bitfield

cr_ByteArrayParameterInfo bytearray_desc

If a byte array

union _cr_ParameterInfo::[anonymous] desc

A union to efficiently store the details of each parameter description

struct _cr_ParameterInfoResponse
#include <reach.h>

The response to ParameterInfoRequest

Public Members

pb_size_t parameter_infos_count

Controls corresponding repeated member.

cr_ParameterInfo parameter_infos[2]

An array of Param Info structures

struct _cr_ParamExKey
#include <reach.h>

The ParamExKey is used to give names to enums, bitfields, and booleans. / It is typically supplied in an array. / More than one parameter can point to the same ParamExKey.

Public Members

uint32_t id

the value of the enum or the bit position of the bitfield

char name[16]

the name of the enum/bit/state

struct _cr_ParamExInfoResponse
#include <reach.h>

Describes enum, bitfield, and boolean labels

Public Members

cr_ParameterDataType data_type

The type of data being described.

pb_size_t keys_count

Controls corresponding repeated member.

cr_ParamExKey keys[8]

Each key associates a string with a number

uint32_t pei_id

An ID by which this Parameter Extended Information is retrieved.

struct _cr_ParameterRead
#include <reach.h>

A structure used to read one or more parameters

Public Members

pb_size_t parameter_ids_count

Controls corresponding repeated member.

uint32_t parameter_ids[32]

An array of parameters to be read, or empty to Retrieve All

struct _cr_ParameterWriteResponse
#include <reach.h>

The response to a parameter write

Public Members

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

struct _cr_ParameterNotifyConfig
#include <reach.h>

Parameter Notification configuration / Notification can be enabled with conditions for each parameter.

Public Members

uint32_t parameter_id

Which param to configure

uint32_t minimum_notification_period

min_ms: Minimum Notification Interval (ms)

uint32_t maximum_notification_period

max_ms: Minimum Notification Interval (ms)

float minimum_delta

notify only if change by this much

struct _cr_ParameterEnableNotifications
#include <reach.h>

A message used to enable notifications

Public Members

pb_size_t configs_count

Controls corresponding repeated member.

cr_ParameterNotifyConfig configs[8]

An array of descriptions of notifications

bool disable_all_first

If true, all notifications are disabled before applying the new request.

struct _cr_ParameterDisableNotifications
#include <reach.h>

A message used to disable notifications

Public Members

pb_size_t parameter_ids_count

Controls corresponding repeated member.

uint32_t parameter_ids[32]

An array of parameter ID’s to be disabled.

struct _cr_ParameterNotifyConfigResponse
#include <reach.h>

The response to enable and disable notifications

Public Members

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

struct _cr_DiscoverParameterNotifications
#include <reach.h>

The client can discover how notifications are setup.

Public Members

pb_size_t parameter_ids_count

Controls corresponding repeated member.

uint32_t parameter_ids[32]

An array of parameter ID’s to be queried for notification. Leave Empty to Retrieve All

struct _cr_DiscoverParameterNotificationsResponse
#include <reach.h>

Reports which notifications are enabled.

Public Members

pb_size_t configs_count

Controls corresponding repeated member.

cr_ParameterNotifyConfig configs[8]

An array of parameter notification configurations containing information only on parameters that have notifications enabled.

struct _cr_ParameterValue
#include <reach.h>

A message used to send or receive a single parameter value.

Public Members

uint32_t parameter_id

The integer ID of this parameter.

uint32_t timestamp

The time at which this was last read or written. Used for notifications.

pb_size_t which_value

Specifies which value in the union.

uint32_t uint32_value

Unsigned 32 bit integer.

int32_t int32_value

Signed 32 bit integer.

float float32_value

32 bit floating point.

uint64_t uint64_value

Unsigned 64 bit integer.

int64_t int64_value

Signed 64 bit integer.

double float64_value

64 bit floating point.

bool bool_value

boolean (0 or 1)

char string_value[32]

ASCII or UTF-8. Null Terminated.

uint32_t enum_value

An extended description gives names to 32 bit integer values.

uint64_t bitfield_value

An extended description gives names to up to 64 bit positions.

cr_ParameterValue_bytes_value_t bytes_value

An array of bytes.

union _cr_ParameterValue::[anonymous] value
struct _cr_ParameterReadResponse
#include <reach.h>

A structure used to return the values read from one or more parameters

Public Members

pb_size_t values_count

Controls corresponding repeated member.

cr_ParameterValue values[4]

An array of Result Values

struct _cr_ParameterWrite
#include <reach.h>

A structure used to write one or more Parameters

Public Members

pb_size_t values_count

Controls corresponding repeated member.

cr_ParameterValue values[4]

An array of Write Values

struct _cr_ParameterNotification
#include <reach.h>

A message of this type is sent by the server when parameters change.

Public Members

pb_size_t values_count

Controls corresponding repeated member.

cr_ParameterValue values[4]

An array of parameter values containing those that changed.

struct _cr_DiscoverFiles
#include <reach.h>

The optional file service provides a method of efficiently transfering large blocks of data.

Public Members

char dummy_field
struct _cr_FileInfo
#include <reach.h>

A structure describing a file

Public Members

uint32_t file_id

ID by which this file is referenced

char file_name[24]

Human readable file name

cr_AccessLevel access

Access Level (Read / Write)

int32_t current_size_bytes

size in bytes

cr_StorageLocation storage_location

NVM or RAM

bool require_checksum

set true to request checksum generation and validation.

bool has_maximum_size_bytes

Controls corresponding optional member.

uint32_t maximum_size_bytes

Determined by storage space

struct _cr_DiscoverFilesResponse
#include <reach.h>

The response to discover files

Public Members

pb_size_t file_infos_count

Controls corresponding repeated member.

cr_FileInfo file_infos[4]

An array of File Info structures

struct _cr_FileTransferRequest
#include <reach.h>

Begins a File Transfer (Upload / Download)

Public Members

uint32_t file_id

ID by which this file is referenced

uint32_t read_write

0 for read, 1 for write.

uint32_t request_offset

where to access in the file, in bytes

uint32_t transfer_length

number of bytes to read or write

uint32_t transfer_id

Copied from the header, the same for the continuued transfer.

uint32_t timeout_in_ms

ms before abandonment

bool has_requested_ack_rate

Controls corresponding optional member.

uint32_t requested_ack_rate

number of messages before ACK.

bool require_checksum

set true to enable checksum generation and validation.

struct _cr_FileTransferResponse
#include <reach.h>

The response to a file transfer request

Public Members

int32_t result

0 if OK

uint32_t transfer_id

Echos the request.

uint32_t ack_rate

confirms or overrides request

bool has_result_message

Controls corresponding optional member.

char result_message[194]

In case of error, a human readable explanation.

uint32_t transfer_length

If the file is smaller than the requested offset + length, this will reflect how much data can be transferred

struct _cr_FileTransferData
#include <reach.h>

A bidirectional message describing a packet of file data

Public Members

int32_t result

non-zero for error

uint32_t transfer_id

Unchanged during the continuued transfer.

uint32_t message_number

counts up from 1 in the first transfer

cr_FileTransferData_message_data_t message_data

Data

bool has_checksum

Controls corresponding optional member.

int32_t checksum

Optional RFC 1071 checksum for integrity checking

struct _cr_FileTransferDataNotification
#include <reach.h>

The response to a file transfer

Public Members

int32_t result

0 for success

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Provides more information if an error occurs.

bool is_complete

Set to true when all data has been trasnferred.

uint32_t transfer_id

Unchanged during the continuued transfer.

uint32_t retry_offset

If there is an error, this gives the offset at which a new transfer should start with good data.

struct _cr_FileEraseRequest
#include <reach.h>

A request to erase (set size to zero) a file.

Public Members

uint32_t file_id

File ID to be erased

struct _cr_FileEraseResponse
#include <reach.h>

The response to a file erase request

Public Members

uint32_t file_id

File ID that has been erased

int32_t result

0 on success

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Provides more information if an error occurs.

struct _cr_DiscoverStreams
#include <reach.h>

A request to list the streams supported by the device

Public Members

char dummy_field
struct _cr_StreamInfo
#include <reach.h>

A structure describing a stream

Public Members

uint32_t stream_id

The ID by which this stream is addressed.

cr_AccessLevel access

Read: The stream flows from the device. Write: The stream flows to the device.

char name[24]

A human readable name for this stream.

char description[48]

A longer human readable description of this stream.

struct _cr_DiscoverStreamsResponse
#include <reach.h>

The response to DiscoverStreams

Public Members

pb_size_t streams_count

Controls corresponding repeated member.

cr_StreamInfo streams[2]

An array containing descriptions of the supported streams

struct _cr_StreamOpen
#include <reach.h>

A structure requesting to open a stream

Public Members

uint32_t stream_id

The ID by which this stream is addressed.

struct _cr_StreamResponse
#include <reach.h>

The response to StreamOpen and StreamClose requests

Public Members

uint32_t stream_id

The ID by which this stream is addressed.

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

struct _cr_StreamClose
#include <reach.h>

A structure requesting to close a stream

Public Members

uint32_t stream_id

The ID by which this stream is addressed.

struct _cr_StreamData
#include <reach.h>

Bi-Directional message used to asynchronously send stream data to the other side.

Public Members

uint32_t stream_id

The ID by which this stream is addressed.

uint32_t roll_count

Message Number. Increases with each send. As stream transmission may be less relaible, allows for continuity checking.

cr_StreamData_message_data_t message_data

An array of bytes representing the streami data.

bool has_checksum

Controls corresponding optional member.

int32_t checksum

Optional RFC 1071 checksum for integrity checking

struct _cr_DiscoverCommands
#include <reach.h>

The (optional) Command Service allows actions to be triggered from the Reach UI.

Public Members

char dummy_field
struct _cr_CommandInfo
#include <reach.h>

The description of a command.

Public Members

uint32_t id

The id by which the command is dispatched

char name[24]

Human readable descriptive name

bool has_description

Controls corresponding optional member.

char description[48]

Optional longer description of the command

bool has_timeout

Controls corresponding optional member.

uint32_t timeout

Optional command timeout, in milliseconds, to account for slow commands.

struct _cr_DiscoverCommandsResponse
#include <reach.h>

Response to a DiscoverCommands request.

Public Members

pb_size_t available_commands_count

Controls corresponding repeated member.

cr_CommandInfo available_commands[2]

An array of command descriptions.

struct _cr_SendCommand
#include <reach.h>

Prompts the device to execute this command.

Public Members

uint32_t command_id

The ID of the command to execute.

struct _cr_SendCommandResponse
#include <reach.h>

A response acknowledging the completion of a command.

Public Members

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

struct _cr_CLIData
#include <reach.h>

The optional Command Line Interface (CLI) service allows command line messages to be transfered / between the client and the server. Messages can travel in both directions. Messages are asynchronous. / The client can send a command line and the server can respond. / The server can also asynchrously send strings representing the output of the device. / The CLIData message is used in both directions.

Public Members

char message_data[194]

The command line as a null terminated string.

struct _cr_TimeSetRequest
#include <reach.h>

The optional Time Service is designed to allow the client to / set and adjust the real time clock in a server device. / The time is best specified as UTC plus timezone offset. / Although the timezone is optional, it’s best to use it. / TimeSetRequest requests setting the server device time to this value.

Public Members

int64_t seconds_utc

linux epoch, since 1970

bool has_timezone

Controls corresponding optional member.

int32_t timezone

An adjustmeent in seconds to UTC time respresenting the local timezone.

struct _cr_TimeSetResponse
#include <reach.h>

The response to the TimeSetRequest

Public Members

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

struct _cr_TimeGetRequest
#include <reach.h>

A request to read the time from the server.

Public Members

char dummy_field
struct _cr_TimeGetResponse
#include <reach.h>

The response to a TimeGetRequest

Public Members

int32_t result

A result of zero indicates OK

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

int64_t seconds_utc

linux epoch, since 1970

bool has_timezone

Controls corresponding optional member.

int32_t timezone

An adjustmeent in seconds to UTC time respresenting the local timezone.

struct _cr_ConnectionDescription
#include <reach.h>

A structure describing a WiFi connection or access point / The optional WiFi service is intended to simplify the / repetitive task of communicating WiFi credentials to the device.

Public Members

char ssid[32]

The SSID of this connection

bool is_connected

true if connected

bool has_signal_strength

Controls corresponding optional member.

int32_t signal_strength

The strength of this connection in dB (RSSI)

bool has_sec

Controls corresponding optional member.

cr_WiFiSecurity sec

The type of security used by this connection

bool has_band

Controls corresponding optional member.

cr_WiFiBand band

The RF band used by this connection

struct _cr_ScanWiFi
#include <reach.h>

Commands the server to initiate a scan for WiFi access points. / As this may take some time, issue it and check the response later.

Public Members

char dummy_field
struct _cr_DiscoverWiFi
#include <reach.h>

A request to provide a list access points

Public Members

char dummy_field
struct _cr_DiscoverWiFiResponse
#include <reach.h>

response to DiscoverWiFi

Public Members

int32_t result

A result of zero indicates completed OK. The “INCOMPLETE” result means the operation must be retried.

pb_size_t cd_count
cr_ConnectionDescription cd[4]

An array of available access points

struct _cr_WiFiConnectionRequest
#include <reach.h>

A structure describing a WiFi connection request

Public Members

char ssid[32]

The SSID to be addressed

bool connect

connect and disconnect false to get info on this SSID

bool disconnect

connect and disconnect false to get info on this SSID

bool has_password

Controls corresponding optional member.

char password[32]

required to connect

bool has_autoconnect

Controls corresponding optional member.

bool autoconnect

true to remember and autoconnect to this AP.

struct _cr_WiFiConnectionResponse
#include <reach.h>

Describes the response to a WiFi connection request

Public Members

int32_t result

A result of zero indicates completed OK. The “INCOMPLETE” result means the operation must be retried.

bool connected

true if the requested connection is valid.

bool has_result_message

Controls corresponding optional member.

char result_message[194]

Allows to provide a human readable explanation in case of an error.

bool has_signal_strength

Controls corresponding optional member.

int32_t signal_strength

RSSI

struct _cr_BufferSizes
#include <reach.h>

This data describing the sizes of the structures used in C code is communicated in a packed format in the device info structure. Here it’s defined in an unpacked (all 32 bit) format. Use the offsets defined below (SizesOffsets) to unpack into this structure. The file “reach_ble_proto_sizes.h” and the function populate_device_info_sizes() are good places to look for further info.

Public Members

uint32_t max_message_size

The largest message that can be communicated (16 bits)

uint32_t big_data_buffer_size

The size of the buffer used for the longest strings. (16 bits) Examples include the command line and the error string.

uint32_t parameter_buffer_count

The number of parameter buffers kept by the device. This determines the number of parameters that can be handled in a single message. (8 bits)

uint32_t num_params_in_response

The number of parameter values that fit in one message. (8 bits)

uint32_t num_descriptors_in_response

number of descriptors (stream, file) that fit in one message. (8 bits)

uint32_t description_len

The length of the description fields in various structures Previously known as long_string_len. (8 bits)

uint32_t max_param_bytes

The number of bytes in the largest parameter data. (8 bits)

uint32_t medium_string_len

The length of most (medium) strings. (8 bits) Used for device name, file names, command names.

uint32_t short_string_len

The number of bytes in short strings like the units label. (8 bits) Also the names of enumerations and the version string.

uint32_t param_info_description_len

The number of bytes in the param info description string (8 bits)

uint32_t num_param_notifications

Number of parameter notifications supported (8 bits)

uint32_t num_commands_in_response

not currently used (8 bits)

uint32_t count_param_desc_in_response

number of param descriptions that can be in one info packet. (8 bits)

uint32_t param_notify_config_count

The max number of parameter notification configurations that can be in one packet. (8 bits)