@@ -167,6 +167,65 @@ To address all the inconsistencies/inaccuracies we introduced two messages:
167
167
- ` PlatformMetadata ` contains generic information about a platform (not correlated to a specific release).
168
168
- ` PlatformRelease ` contains information about a specific release of a platform.
169
169
170
+ ### The gRPC ` cc.arduino.cli.commands.v1.MonitorRequest ` message has been changed.
171
+
172
+ Previously the ` MonitorRequest ` was a single message used to open the monitor, to stream data, and to change the port
173
+ configuration:
174
+
175
+ ``` proto
176
+ message MonitorRequest {
177
+ // Arduino Core Service instance from the `Init` response.
178
+ Instance instance = 1;
179
+ // Port to open, must be filled only on the first request
180
+ Port port = 2;
181
+ // The board FQBN we are trying to connect to. This is optional, and it's
182
+ // needed to disambiguate if more than one platform provides the pluggable
183
+ // monitor for a given port protocol.
184
+ string fqbn = 3;
185
+ // Data to send to the port
186
+ bytes tx_data = 4;
187
+ // Port configuration, optional, contains settings of the port to be applied
188
+ MonitorPortConfiguration port_configuration = 5;
189
+ }
190
+ ```
191
+
192
+ Now the meaning of the fields has been clarified with the ` oneof ` clause, making it more explicit:
193
+
194
+ ``` proto
195
+ message MonitorRequest {
196
+ oneof message {
197
+ // Open request, it must be the first incoming message
198
+ MonitorPortOpenRequest open_request = 1;
199
+ // Data to send to the port
200
+ bytes tx_data = 2;
201
+ // Port configuration, contains settings of the port to be changed
202
+ MonitorPortConfiguration updated_configuration = 3;
203
+ // Close message, set to true to gracefully close a port (this ensure
204
+ // that the gRPC streaming call is closed by the daemon AFTER the port
205
+ // has been successfully closed)
206
+ bool close = 4;
207
+ }
208
+ }
209
+
210
+ message MonitorPortOpenRequest {
211
+ // Arduino Core Service instance from the `Init` response.
212
+ Instance instance = 1;
213
+ // Port to open, must be filled only on the first request
214
+ Port port = 2;
215
+ // The board FQBN we are trying to connect to. This is optional, and it's
216
+ // needed to disambiguate if more than one platform provides the pluggable
217
+ // monitor for a given port protocol.
218
+ string fqbn = 3;
219
+ // Port configuration, optional, contains settings of the port to be applied
220
+ MonitorPortConfiguration port_configuration = 4;
221
+ }
222
+ ```
223
+
224
+ Now the message field ` MonitorPortOpenRequest.open_request ` must be sent in the first message after opening the
225
+ streaming gRPC call.
226
+
227
+ The identification number of the fields has been changed, this change is not binary compatible with old clients.
228
+
170
229
## 0.35.0
171
230
172
231
### CLI ` debug --info ` changed JSON output.
0 commit comments