Protocol Documentation
Table of Contents
Top
cc/arduino/cli/monitor/v1/monitor.proto
MonitorConfig
Tells the monitor which target to open and provides additional parameters that might be needed to configure the target
or the monitor itself.
Field |
Type |
Label |
Description |
target |
string |
|
The target name. |
type |
MonitorConfig.TargetType |
|
|
additional_config |
google.protobuf.Struct |
|
Additional parameters that might be needed to configure the target or the monitor itself. |
recv_rate_limit_buffer |
int32 |
|
This parameter indicates how many bytes should be buffered on the server side before dropping. If >0 then the server will enable a rate limiter and will send incoming data to the client only when the client allows it: see the StreamingOpenReq.recv_acknowledge parameter for details. |
StreamingOpenRequest
The top-level message sent by the client for the StreamingOpen
method. Multiple StreamingOpenReq
messages can be
sent but the first message must contain a monitor_config
message to initialize the monitor target. All subsequent
messages must contain bytes to be sent to the target and must not contain a monitor_config
message.
Field |
Type |
Label |
Description |
config |
MonitorConfig |
|
Provides information to the monitor that specifies which is the target. The first StreamingOpenReq message must contain a config message. |
data |
bytes |
|
The data to be sent to the target being monitored. |
recv_acknowledge |
int32 |
|
When the rate limiter is enabled, this parameter is used to report the number of successfully processed StreamingOpenResp messages (with data). |
StreamingOpenResponse
Field |
Type |
Label |
Description |
data |
bytes |
|
The data received from the target. |
dropped |
int32 |
|
The number of bytes dropped. During regular updates this number should be 0, but in case the client is not able to process the recv window quickly enough this parameter will report the number of dropped bytes. |
MonitorConfig.TargetType
Name |
Number |
Description |
TARGET_TYPE_SERIAL |
0 |
|
TARGET_TYPE_NULL |
99 |
|
MonitorService
MonitorService provides services for boards monitor
Method Name |
Request Type |
Response Type |
Description |
StreamingOpen |
StreamingOpenRequest stream |
StreamingOpenResponse stream |
Open a bidirectional monitor stream. This can be used to implement something similar to the Arduino IDE's Serial Monitor. |
Scalar Value Types
.proto Type |
Notes |
C++ |
Java |
Python |
Go |
C# |
PHP |
Ruby |
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) |