diff --git a/arduino/monitor/monitor.go b/arduino/monitor/monitor.go index 09db6b2bdbf..5184448eda9 100644 --- a/arduino/monitor/monitor.go +++ b/arduino/monitor/monitor.go @@ -111,7 +111,7 @@ func (mon *PluggableMonitor) jsonDecodeLoop(in io.Reader, outChan chan<- *monito if err := decoder.Decode(&msg); err != nil { mon.incomingMessagesError = err close(outChan) - mon.log.Errorf("stopped decode loop") + mon.log.Errorf("stopped decode loop: %s", err) return } mon.log. diff --git a/commands/monitor/monitor.go b/commands/monitor/monitor.go index 49cbab66a93..3d2995a6b59 100644 --- a/commands/monitor/monitor.go +++ b/commands/monitor/monitor.go @@ -28,6 +28,7 @@ import ( "github.com/arduino/arduino-cli/i18n" rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" "github.com/arduino/go-properties-orderedmap" + "github.com/sirupsen/logrus" ) var tr = i18n.Tr @@ -76,18 +77,23 @@ func Monitor(ctx context.Context, req *rpc.MonitorRequest) (*PortProxy, *pluggab descriptor, err := m.Describe() if err != nil { + m.Quit() return nil, nil, &arduino.FailedMonitorError{Cause: err} } monIO, err := m.Open(req.GetPort().GetAddress(), req.GetPort().GetProtocol()) if err != nil { + m.Quit() return nil, nil, &arduino.FailedMonitorError{Cause: err} } for _, setting := range req.GetPortConfiguration().Settings { - m.Configure(setting.SettingId, setting.Value) + if err := m.Configure(setting.SettingId, setting.Value); err != nil { + logrus.Errorf("Could not set configuration %s=%s: %s", setting.SettingId, setting.Value, err) + } } + logrus.Infof("Port %s successfully opened", req.GetPort().GetAddress()) return &PortProxy{ rw: monIO, changeSettingsCB: m.Configure,