@@ -167,6 +167,65 @@ To address all the inconsistencies/inaccuracies we introduced two messages:
167167- ` PlatformMetadata ` contains generic information about a platform (not correlated to a specific release).
168168- ` PlatformRelease ` contains information about a specific release of a platform.
169169
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+
170229## 0.35.0
171230
172231### CLI ` debug --info ` changed JSON output.
0 commit comments