A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/arduino/arduino-fwuploader/commit/9220c331836c150040ce6f8cf80f3d39e1b89071 below:

add `get-version` command (#116) · arduino/arduino-fwuploader@9220c33 · GitHub

@@ -23,31 +23,27 @@ import (

23 23

"bytes"

24 24

"fmt"

25 25

"os"

26 -

"path/filepath"

27 26

"strings"

28 27

"time"

29 28 30 -

"github.com/arduino/arduino-cli/arduino/serialutils"

31 29

"github.com/arduino/arduino-cli/cli/errorcodes"

32 30

"github.com/arduino/arduino-cli/cli/feedback"

31 +

"github.com/arduino/arduino-fwuploader/cli/arguments"

32 +

"github.com/arduino/arduino-fwuploader/cli/common"

33 33

"github.com/arduino/arduino-fwuploader/flasher"

34 -

"github.com/arduino/arduino-fwuploader/indexes"

35 34

"github.com/arduino/arduino-fwuploader/indexes/download"

36 -

programmer "github.com/arduino/arduino-fwuploader/programmers"

37 35

"github.com/arduino/go-paths-helper"

38 -

"github.com/arduino/go-properties-orderedmap"

39 36

"github.com/sirupsen/logrus"

40 37

"github.com/spf13/cobra"

41 38

)

42 39 43 40

var (

44 -

fqbn string

45 -

address string

41 +

commonFlags arguments.Flags

46 42

certificateURLs []string

47 43

certificatePaths []string

48 44

)

49 45 50 -

// NewCommand created a new `version` command

46 +

// NewFlashCommand creates a new `flash` command

51 47

func NewFlashCommand() *cobra.Command {

52 48

command := &cobra.Command{

53 49

Use: "flash",

@@ -58,121 +54,59 @@ func NewFlashCommand() *cobra.Command {

58 54

" " + os.Args[0] + " certificates flash -b arduino:samd:mkr1000 -a COM10 -u arduino.cc:443 -u google.cc:443\n" +

59 55

" " + os.Args[0] + " certificates flash -b arduino:samd:mkr1000 -a COM10 -f /home/me/VeriSign.cer -f /home/me/Digicert.cer\n",

60 56

Args: cobra.NoArgs,

61 -

Run: run,

57 +

Run: runFlash,

62 58

}

63 - 64 -

command.Flags().StringVarP(&fqbn, "fqbn", "b", "", "Fully Qualified Board Name, e.g.: arduino:samd:mkr1000, arduino:mbed_nano:nanorp2040connect")

65 -

command.Flags().StringVarP(&address, "address", "a", "", "Upload port, e.g.: COM10, /dev/ttyACM0")

59 +

commonFlags.AddToCommand(command)

66 60

command.Flags().StringSliceVarP(&certificateURLs, "url", "u", []string{}, "List of urls to download root certificates, e.g.: arduino.cc:443")

67 61

command.Flags().StringSliceVarP(&certificatePaths, "file", "f", []string{}, "List of paths to certificate file, e.g.: /home/me/Digicert.cer")

68 62

return command

69 63

}

70 64 71 -

func run(cmd *cobra.Command, args []string) {

72 -

packageIndex, err := indexes.GetPackageIndex()

73 -

if err != nil {

74 -

feedback.Errorf("Can't load package index: %s", err)

75 -

os.Exit(errorcodes.ErrGeneric)

76 -

}

65 +

func runFlash(cmd *cobra.Command, args []string) {

77 66 78 -

firmwareIndex, err := indexes.GetFirmwareIndex()

79 -

if err != nil {

80 -

feedback.Errorf("Can't load firmware index: %s", err)

81 -

os.Exit(errorcodes.ErrGeneric)

82 -

}

83 - 84 -

if fqbn == "" {

85 -

feedback.Errorf("Error during certificates flashing: missing board fqbn")

86 -

os.Exit(errorcodes.ErrBadArgument)

87 -

}

88 - 89 -

if address == "" {

90 -

feedback.Errorf("Error during certificates flashing: missing board address")

91 -

os.Exit(errorcodes.ErrBadArgument)

92 -

}

67 +

packageIndex, firmwareIndex := common.InitIndexes()

68 +

common.CheckFlags(commonFlags.Fqbn, commonFlags.Address)

69 +

board := common.GetBoard(firmwareIndex, commonFlags.Fqbn)

70 +

uploadToolDir := common.GetUploadToolDir(packageIndex, board)

93 71 94 72

if len(certificateURLs) == 0 && len(certificatePaths) == 0 {

95 73

feedback.Errorf("Error during certificates flashing: no certificates provided")

96 74

os.Exit(errorcodes.ErrBadArgument)

97 75

}

98 76 99 -

board := firmwareIndex.GetBoard(fqbn)

100 -

if board == nil {

101 -

feedback.Errorf("Can't find board with %s fqbn", fqbn)

102 -

os.Exit(errorcodes.ErrBadArgument)

103 -

}

104 - 105 -

toolRelease := indexes.GetToolRelease(packageIndex, board.Uploader)

106 -

if toolRelease == nil {

107 -

feedback.Errorf("Error getting upload tool %s for board %s", board.Uploader, board.Fqbn)

108 -

os.Exit(errorcodes.ErrGeneric)

109 -

}

110 -

uploadToolDir, err := download.DownloadTool(toolRelease)

111 -

if err != nil {

112 -

feedback.Errorf("Error downloading tool %s: %s", board.Uploader, err)

113 -

os.Exit(errorcodes.ErrGeneric)

114 -

}

115 - 116 -

loaderSketchPath, err := download.DownloadLoaderSketch(board.LoaderSketch)

77 +

loaderSketchPath, err := download.DownloadSketch(board.LoaderSketch)

117 78

if err != nil {

118 79

feedback.Errorf("Error downloading loader sketch from %s: %s", board.LoaderSketch.URL, err)

119 80

os.Exit(errorcodes.ErrGeneric)

120 81

}

82 +

logrus.Debugf("loader sketch downloaded in %s", loaderSketchPath.String())

121 83 122 84

loaderSketch := strings.ReplaceAll(loaderSketchPath.String(), loaderSketchPath.Ext(), "")

123 85 124 -

// Check if board needs a 1200bps touch for upload

125 -

bootloaderPort := address

126 -

if board.UploadTouch {

127 -

logrus.Info("Putting board into bootloader mode")

128 -

newUploadPort, err := serialutils.Reset(address, board.UploadWait, nil)

129 -

if err != nil {

130 -

feedback.Errorf("Error during certificates flashing: missing board address")

131 -

os.Exit(errorcodes.ErrGeneric)

132 -

}

133 -

if newUploadPort != "" {

134 -

logrus.Infof("Found port to upload Loader: %s", newUploadPort)

135 -

bootloaderPort = newUploadPort

136 -

}

137 -

}

138 - 139 -

uploaderCommand := board.GetUploaderCommand()

140 -

uploaderCommand = strings.ReplaceAll(uploaderCommand, "{tool_dir}", filepath.FromSlash(uploadToolDir.String()))

141 -

uploaderCommand = strings.ReplaceAll(uploaderCommand, "{serial.port.file}", bootloaderPort)

142 -

uploaderCommand = strings.ReplaceAll(uploaderCommand, "{loader.sketch}", loaderSketch)

143 - 144 -

commandLine, err := properties.SplitQuotedString(uploaderCommand, "\"", false)

86 +

programmerOut, programmerErr, err := common.FlashSketch(board, loaderSketch, uploadToolDir, commonFlags.Address)

145 87

if err != nil {

146 -

feedback.Errorf(`Error splitting command line "%s": %s`, uploaderCommand, err)

147 -

os.Exit(errorcodes.ErrGeneric)

148 -

}

149 - 150 -

// Flash loader Sketch

151 -

programmerOut := new(bytes.Buffer)

152 -

programmerErr := new(bytes.Buffer)

153 -

if feedback.GetFormat() == feedback.JSON {

154 -

err = programmer.Flash(commandLine, programmerOut, programmerErr)

155 -

} else {

156 -

err = programmer.Flash(commandLine, os.Stdout, os.Stderr)

157 -

}

158 -

if err != nil {

159 -

feedback.Errorf("Error during certificates flashing: %s", err)

88 +

feedback.Error(err)

160 89

os.Exit(errorcodes.ErrGeneric)

161 90

}

162 91 163 92

// Wait a bit after flashing the loader sketch for the board to become

164 93

// available again.

94 +

logrus.Debug("sleeping for 3 sec")

165 95

time.Sleep(3 * time.Second)

166 96 167 97

// Get flasher depending on which module to use

168 98

var f flasher.Flasher

169 99

moduleName := board.Module

100 + 101 +

// This matches the baudrate used in the FirmwareUpdater.ino sketch

102 +

// https://github.com/arduino-libraries/WiFiNINA/blob/master/examples/Tools/FirmwareUpdater/FirmwareUpdater.ino

103 +

const baudRate = 1000000

170 104

switch moduleName {

171 105

case "NINA":

172 106

// we use address and not bootloaderPort because the board should not be in bootloader mode

173 -

f, err = flasher.NewNinaFlasher(address)

107 +

f, err = flasher.NewNinaFlasher(commonFlags.Address, baudRate, 30)

174 108

case "WINC1500":

175 -

f, err = flasher.NewWincFlasher(address)

109 +

f, err = flasher.NewWincFlasher(commonFlags.Address, baudRate, 30)

176 110

default:

177 111

err = fmt.Errorf("unknown module: %s", moduleName)

178 112

}


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4