@@ -16,10 +16,17 @@ const FWUToolStatusEnum = Object.freeze({
1616} ) ;
1717
1818/* The signatures needed to run the commands to use the Firmware Updater Tool */
19- let signaturesEnum = fwupdaterSignatures ;
19+ let signatures = fwupdaterSignatures ;
2020
2121let updaterBinaryName = 'FirmwareUploader' ;
2222
23+ function programmerFor ( boardId ) {
24+ if ( boardId === 'uno2018' ) return [ '{runtime.tools.avrdude}/bin/avrdude' , signatures . UPLOAD_FIRMWARE_AVRDUDE ] ;
25+ if ( boardId === 'nanorp2040connect' ) return [ `{runtime.tools.rp2040tools.path}/rp2040load` , signatures . UPLOAD_FIRMWARE_RP2040 ] ;
26+
27+ return [ `{runtime.tools.bossac}/bossac` , signatures . UPLOAD_FIRMWARE_BOSSAC ] ;
28+ }
29+
2330export default class FirmwareUpdater {
2431 constructor ( Daemon ) {
2532 this . updateStatusEnum = Object . freeze ( {
@@ -57,7 +64,7 @@ export default class FirmwareUpdater {
5764 setToolVersion ( version ) {
5865 this . toolVersion = version ;
5966 if ( semverCompare ( version , '0.1.2' ) < 0 ) {
60- signaturesEnum = oldFwupdaterSignatures ;
67+ signatures = oldFwupdaterSignatures ;
6168 updaterBinaryName = 'updater' ;
6269 }
6370 }
@@ -119,7 +126,7 @@ export default class FirmwareUpdater {
119126 board : boardId ,
120127 port,
121128 commandline : `"{runtime.tools.fwupdater.path}/${ updaterBinaryName } " -get_available_for {network.password}` ,
122- signature : signaturesEnum . GET_FIRMWARE_INFO ,
129+ signature : signatures . GET_FIRMWARE_INFO ,
123130 extra : {
124131 auth : {
125132 password : boardId
@@ -196,8 +203,7 @@ export default class FirmwareUpdater {
196203 }
197204 } ) ;
198205
199- const isUsingAvrdude = boardId === 'uno2018' ;
200- const programmer = isUsingAvrdude ? '{runtime.tools.avrdude}/bin/avrdude' : '{runtime.tools.bossac}/bossac' ;
206+ const [ programmer , signature ] = programmerFor ( boardId ) ;
201207
202208 if ( ! this . loaderPath ) {
203209 this . updating . next ( { status : this . updateStatusEnum . ERROR , err : `Can't update Firmware: 'loaderPath' is empty or 'null'` } ) ;
@@ -214,7 +220,7 @@ export default class FirmwareUpdater {
214220 password : `"${ this . loaderPath } " -firmware "${ this . firmwareVersionData . Path } " ${ addresses } ` ,
215221 } ,
216222 } ,
217- signature : isUsingAvrdude ? signaturesEnum . UPLOAD_FIRMWARE_AVRDUDE : signaturesEnum . UPLOAD_FIRMWARE_BOSSAC ,
223+ signature,
218224 filename : 'CheckFirmwareVersion.bin' ,
219225 } ;
220226
@@ -237,4 +243,4 @@ export default class FirmwareUpdater {
237243 this . getFirmwareInfo ( boardId , port , firmwareVersion ) ;
238244 } ) ;
239245 }
240- }
246+ }
0 commit comments