From 777256c6cc9d2833855f311406f47007b3c13aac Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 12 Jul 2023 18:54:10 +0200 Subject: [PATCH] add support for https://github.com/arduino/fwuploader-plugin-helper/pull/9 --- cli/firmware/flash.go | 2 +- cli/firmware/getversion.go | 2 +- plugin/plugin.go | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cli/firmware/flash.go b/cli/firmware/flash.go index 292c7f27..5c3eca97 100644 --- a/cli/firmware/flash.go +++ b/cli/firmware/flash.go @@ -171,7 +171,7 @@ func updateFirmwareWithPlugin(uploader *plugin.FwUploader, fwPath *paths.Path) ( stdout = os.Stdout stderr = os.Stderr } - res, err := uploader.FlashFirmware(commonFlags.Address, fwPath, stdout, stderr) + res, err := uploader.FlashFirmware(commonFlags.Address, commonFlags.Fqbn, fwPath, stdout, stderr) if err != nil { return nil, fmt.Errorf("couldn't update firmware: %s", err) } diff --git a/cli/firmware/getversion.go b/cli/firmware/getversion.go index 10072c70..592173b9 100644 --- a/cli/firmware/getversion.go +++ b/cli/firmware/getversion.go @@ -89,7 +89,7 @@ func getVersionWithPlugin(uploader *plugin.FwUploader) *flasher.FlashResult { stdout = os.Stdout stderr = os.Stderr } - res, err := uploader.GetFirmwareVersion(commonFlags.Address, stdout, stderr) + res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, stdout, stderr) if err != nil { feedback.Fatal(fmt.Sprintf("Couldn't get firmware version: %s", err), feedback.ErrGeneric) } diff --git a/plugin/plugin.go b/plugin/plugin.go index 3c9772c5..3d711a82 100644 --- a/plugin/plugin.go +++ b/plugin/plugin.go @@ -84,11 +84,14 @@ func (uploader *FwUploader) QueryAPIVersion() (int, error) { } // GetFirmwareVersion runs the plugin to obtain the version of the installed firmware -func (uploader *FwUploader) GetFirmwareVersion(portAddress string, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) { +func (uploader *FwUploader) GetFirmwareVersion(portAddress, fqbn string, stdout, stderr io.Writer) (*GetFirmwareVersionResult, error) { args := []string{"firmware", "get-version"} if portAddress != "" { args = append(args, "-p", portAddress) } + if fqbn != "" { + args = append(args, "-b", fqbn) + } execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...) res := &GetFirmwareVersionResult{ @@ -126,11 +129,14 @@ type GetFirmwareVersionResult struct { } // FlashFirmware runs the plugin to flash the selected firmware -func (uploader *FwUploader) FlashFirmware(portAddress string, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) { +func (uploader *FwUploader) FlashFirmware(portAddress, fqbn string, firmwarePath *paths.Path, stdout, stderr io.Writer) (*FlashFirmwareResult, error) { args := []string{"firmware", "flash", firmwarePath.String()} if portAddress != "" { args = append(args, "-p", portAddress) } + if fqbn != "" { + args = append(args, "-b", fqbn) + } execStdout, execStderr, execErr := uploader.exec(stdout, stderr, args...) res := &FlashFirmwareResult{