@@ -21,6 +21,7 @@ import (
21
21
"errors"
22
22
"io"
23
23
"os"
24
+ "slices"
24
25
"sort"
25
26
"strings"
26
27
"time"
@@ -33,6 +34,7 @@ import (
33
34
"github.com/arduino/arduino-cli/internal/cli/instance"
34
35
"github.com/arduino/arduino-cli/internal/i18n"
35
36
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
37
+ "github.com/arduino/go-properties-orderedmap"
36
38
"github.com/fatih/color"
37
39
"github.com/sirupsen/logrus"
38
40
"github.com/spf13/cobra"
@@ -122,6 +124,7 @@ func runMonitorCmd(
122
124
if inst == nil {
123
125
inst = instance .CreateAndInit (ctx , srv )
124
126
}
127
+
125
128
// Priority on how to retrieve the fqbn
126
129
// 1. from flag
127
130
// 2. from profile
@@ -143,7 +146,7 @@ func runMonitorCmd(
143
146
feedback .FatalError (err , feedback .ErrGeneric )
144
147
}
145
148
146
- enumerateResp , err := srv .EnumerateMonitorPortSettings (ctx , & rpc.EnumerateMonitorPortSettingsRequest {
149
+ defaultSettings , err := srv .EnumerateMonitorPortSettings (ctx , & rpc.EnumerateMonitorPortSettingsRequest {
147
150
Instance : inst ,
148
151
PortProtocol : portProtocol ,
149
152
Fqbn : fqbn ,
@@ -152,14 +155,19 @@ func runMonitorCmd(
152
155
feedback .Fatal (i18n .Tr ("Error getting port settings details: %s" , err ), feedback .ErrGeneric )
153
156
}
154
157
if describe {
155
- settings := make ([]* result.MonitorPortSettingDescriptor , len (enumerateResp .GetSettings ()))
156
- for i , v := range enumerateResp .GetSettings () {
158
+ settings := make ([]* result.MonitorPortSettingDescriptor , len (defaultSettings .GetSettings ()))
159
+ for i , v := range defaultSettings .GetSettings () {
157
160
settings [i ] = result .NewMonitorPortSettingDescriptor (v )
158
161
}
159
162
feedback .PrintResult (& detailsResult {Settings : settings })
160
163
return
161
164
}
162
165
166
+ actualConfigurationLabels := properties .NewMap ()
167
+ for _ , setting := range defaultSettings .GetSettings () {
168
+ actualConfigurationLabels .Set (setting .GetSettingId (), setting .GetValue ())
169
+ }
170
+
163
171
configuration := & rpc.MonitorPortConfiguration {}
164
172
if len (configs ) > 0 {
165
173
for _ , config := range configs {
@@ -172,7 +180,7 @@ func runMonitorCmd(
172
180
}
173
181
174
182
var setting * rpc.MonitorPortSettingDescriptor
175
- for _ , s := range enumerateResp .GetSettings () {
183
+ for _ , s := range defaultSettings .GetSettings () {
176
184
if k == "" {
177
185
if contains (s .GetEnumValues (), v ) {
178
186
setting = s
@@ -195,10 +203,7 @@ func runMonitorCmd(
195
203
SettingId : setting .GetSettingId (),
196
204
Value : v ,
197
205
})
198
- if ! quiet {
199
- feedback .Print (i18n .Tr ("Monitor port settings:" ))
200
- feedback .Print (fmt .Sprintf ("%s=%s" , setting .GetSettingId (), v ))
201
- }
206
+ actualConfigurationLabels .Set (setting .GetSettingId (), v )
202
207
}
203
208
}
204
209
@@ -228,7 +233,6 @@ func runMonitorCmd(
228
233
}
229
234
ttyIn = io .TeeReader (ttyIn , ctrlCDetector )
230
235
}
231
-
232
236
monitorServer , portProxy := commands .MonitorServerToReadWriteCloser (ctx , & rpc.MonitorPortOpenRequest {
233
237
Instance : inst ,
234
238
Port : & rpc.Port {Address : portAddress , Protocol : portProtocol },
@@ -237,6 +241,19 @@ func runMonitorCmd(
237
241
})
238
242
go func () {
239
243
if ! quiet {
244
+ if fqbn != "" {
245
+ feedback .Print (i18n .Tr ("Using default monitor configuration for board: %s" , fqbn ))
246
+ } else if portProtocol == "serial" {
247
+ feedback .Print (i18n .Tr ("Using generic monitor configuration.\n WARNING: Your board may require different settings to work!\n " ))
248
+ }
249
+ feedback .Print (i18n .Tr ("Monitor port settings:" ))
250
+ keys := actualConfigurationLabels .Keys ()
251
+ slices .Sort (keys )
252
+ for _ , k := range keys {
253
+ feedback .Printf (" %s=%s" , k , actualConfigurationLabels .Get (k ))
254
+ }
255
+ feedback .Print ("" )
256
+
240
257
feedback .Print (i18n .Tr ("Connecting to %s. Press CTRL-C to exit." , portAddress ))
241
258
}
242
259
if err := srv .Monitor (monitorServer ); err != nil {
0 commit comments