Skip to content

Commit 750a673

Browse files
committed
Improved messages at monitor startup
1 parent e270afd commit 750a673

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

internal/cli/monitor/monitor.go

+26-9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"errors"
2222
"io"
2323
"os"
24+
"slices"
2425
"sort"
2526
"strings"
2627
"time"
@@ -33,6 +34,7 @@ import (
3334
"github.com/arduino/arduino-cli/internal/cli/instance"
3435
"github.com/arduino/arduino-cli/internal/i18n"
3536
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
37+
"github.com/arduino/go-properties-orderedmap"
3638
"github.com/fatih/color"
3739
"github.com/sirupsen/logrus"
3840
"github.com/spf13/cobra"
@@ -122,6 +124,7 @@ func runMonitorCmd(
122124
if inst == nil {
123125
inst = instance.CreateAndInit(ctx, srv)
124126
}
127+
125128
// Priority on how to retrieve the fqbn
126129
// 1. from flag
127130
// 2. from profile
@@ -143,7 +146,7 @@ func runMonitorCmd(
143146
feedback.FatalError(err, feedback.ErrGeneric)
144147
}
145148

146-
enumerateResp, err := srv.EnumerateMonitorPortSettings(ctx, &rpc.EnumerateMonitorPortSettingsRequest{
149+
defaultSettings, err := srv.EnumerateMonitorPortSettings(ctx, &rpc.EnumerateMonitorPortSettingsRequest{
147150
Instance: inst,
148151
PortProtocol: portProtocol,
149152
Fqbn: fqbn,
@@ -152,14 +155,19 @@ func runMonitorCmd(
152155
feedback.Fatal(i18n.Tr("Error getting port settings details: %s", err), feedback.ErrGeneric)
153156
}
154157
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() {
157160
settings[i] = result.NewMonitorPortSettingDescriptor(v)
158161
}
159162
feedback.PrintResult(&detailsResult{Settings: settings})
160163
return
161164
}
162165

166+
actualConfigurationLabels := properties.NewMap()
167+
for _, setting := range defaultSettings.GetSettings() {
168+
actualConfigurationLabels.Set(setting.GetSettingId(), setting.GetValue())
169+
}
170+
163171
configuration := &rpc.MonitorPortConfiguration{}
164172
if len(configs) > 0 {
165173
for _, config := range configs {
@@ -172,7 +180,7 @@ func runMonitorCmd(
172180
}
173181

174182
var setting *rpc.MonitorPortSettingDescriptor
175-
for _, s := range enumerateResp.GetSettings() {
183+
for _, s := range defaultSettings.GetSettings() {
176184
if k == "" {
177185
if contains(s.GetEnumValues(), v) {
178186
setting = s
@@ -195,10 +203,7 @@ func runMonitorCmd(
195203
SettingId: setting.GetSettingId(),
196204
Value: v,
197205
})
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)
202207
}
203208
}
204209

@@ -228,7 +233,6 @@ func runMonitorCmd(
228233
}
229234
ttyIn = io.TeeReader(ttyIn, ctrlCDetector)
230235
}
231-
232236
monitorServer, portProxy := commands.MonitorServerToReadWriteCloser(ctx, &rpc.MonitorPortOpenRequest{
233237
Instance: inst,
234238
Port: &rpc.Port{Address: portAddress, Protocol: portProtocol},
@@ -237,6 +241,19 @@ func runMonitorCmd(
237241
})
238242
go func() {
239243
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.\nWARNING: 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+
240257
feedback.Print(i18n.Tr("Connecting to %s. Press CTRL-C to exit.", portAddress))
241258
}
242259
if err := srv.Monitor(monitorServer); err != nil {

0 commit comments

Comments
 (0)