1
1
import { BehaviorSubject } from 'rxjs' ;
2
-
3
2
import {
4
3
takeUntil ,
5
4
filter ,
6
5
first
7
6
} from 'rxjs/operators' ;
7
+ import semverCompare from 'semver-compare' ;
8
8
9
9
/* The status of the Firmware Updater Tool */
10
10
const FWUToolStatusEnum = Object . freeze ( {
@@ -15,12 +15,13 @@ const FWUToolStatusEnum = Object.freeze({
15
15
} ) ;
16
16
17
17
/* The signatures needed to run the commands to use the Firmware Updater Tool */
18
- const signaturesEnum = Object . freeze ( {
18
+ let signaturesEnum = Object . freeze ( {
19
19
GET_FIRMWARE_INFO : 'aceffd98d331df0daa5bb3308bb49a95767d77e7a1557c07a0ec544d2f41c3ec67269f01ce9a63e01f3b43e087ab8eb22b7f1d34135b6686e8ce27d4b5dc083ec8e6149df11880d32486448a71280ef3128efccbd45a84dbd7990a9420a65ee86b3822edba3554fa8e6ca11aec12d4dd99ad072285b98bfdf7b2b64f677da50feb8bddef25a36f52d7605078487d8a5d7cbdc84bfa65d510cee97b46baefea149139a9a6ed4b545346040536e33d850e6ad84c83fe605f677e2ca77439de3fa42350ce504ad9a49cf62c6751d4c2a284500d2c628cd52cd73b4c3e7ef08ae823eb8941383f9c6ff0686da532369d3b266ded8fdd33cca1a128068a4795920f25' ,
20
- UPLOAD_FIRMWARE_BOSSAC : '5c61682e3ce2544365b05577f9016d5fbfa4c20efdce6ec2ebe6940380ea4f9421322b338c83b7721f900c99c61282720224d9fb20a639154984fd1feef682ee432c8a225f14fe7ba80d2d71d51bc92bfffe63de9386c0b9bc17a827ce21dda837fe3fd0c518ff0b84982c65db81a3eebab88712593c068f5a43f7bc22d4a3f3608969e8f30b3102b382d2c0f7f28d482b39cbcfd16eb680dd04bda66b9cb0d1c2b2e91d89dd8c6033562f1d3983002b61aa39ef70d45a456178867609c058a09bbcd8bce4d97d2e65c28756659bf5ba111e8541302cea934a2c005331ef89425390f610d2f609d581175d16193e72752fe8384f66051e6a2abea79757f042eb ' ,
21
- UPLOAD_FIRMWARE_AVRDUDE : '83b177b05dcd7043d484e321417d1dd499fdbd80b7109cc86fcb91cb14e59b834c3956a279e8d4ceba466a308cb8a1aceb5ab6770b8f207e9bc92e84a191edc21cdecb4f7cc1883fbf0eb258f1f849ffbe76bb0320dfe92d85f77226b45fd90824fc126e22ebe8d2350f854c9d43a03186d7f260d8d03bf83e6669646b2e13a6371dcbf1dd5711edcbe3c3a0f186d091ba26118ed2cdb3ef58e0079096403a2e93684d5089b216c53f2fcb1387b6e9d49feea914943971ac1e58bba1ecdf4f14f557d278e8b4f05d594e21887ba87322fbe1d70d05f03412d87f3149a4b3aff302088a2f0ecc42302b6ba66024e94226b5d99c9e0375383e4494bc1e0d0e20b8 '
20
+ UPLOAD_FIRMWARE_BOSSAC : '1e9bd2641a4111086e752e0351ca0984902dd6f05b643f031d7c001a63bab8957761569e8975b7c8b9eab5b48a7bda0ef6030a96d21ca898126174cd6fb2cc0b344346d94d3bce9bcb63cf4676b526551c45fe2251409a8661a54da2056988fd70119cf095b6b9a614d9bbbdc19347d575c465cbba33748f9f363769759d1c12adef6d1ebbedda5ec931f8cd1d63eeddbb832433d5568953735d00014d586c2d097a2fbb93ea10914d1d5ff784a25306bb98fbec990ef8310374e22042aa90ef8ba66253a2194f7e11668a5e67430ae62133f95dd73de65d63aee57c121232cb48cd7bb08087c2d666a7e3fe7a260c4285bfe7714b0c498a3b6c03ba410f3323 ' ,
21
+ UPLOAD_FIRMWARE_AVRDUDE : '12b2cbbe1469abf8ed743b630fa1ce892c8e0e02354dba5b70425704273c9b22356b23199402918aa054986a353aa4e53d36cf5833a9c84a9ec167a799a50599d06a1be0886a1c57415503290598cc103cb94c331cdf535c21092c532264bf7f4a297ab4b89d9622e360dff03647e3a438743baf0796290a01ef92ca033f372f8c1b5046033303da2898cdee99fe89cf2f193a1c8e57b455d5ebbf27700d8ca4488488a2e91b8c76b9dd0dd8e6e700bf79f87519acd7e8809e4da413a5a4e9fb38baa4bd57b8b5066c153cc5c9b0432f55a3a8f62536759e69734ccb21d2cc40841e71362e9d87ee7669f10733c284e4552454d9a82b896373077ad9913568fe '
22
22
} ) ;
23
23
24
+ let updaterBinaryName = 'FirmwareUpdater' ;
24
25
25
26
export default class FirmwareUpdater {
26
27
constructor ( Daemon ) {
@@ -56,6 +57,18 @@ export default class FirmwareUpdater {
56
57
. pipe ( takeUntil ( this . updatingError ) ) ;
57
58
}
58
59
60
+ setToolVersion ( version ) {
61
+ this . toolVersion = version ;
62
+ if ( semverCompare ( version , '1.1.2' < 0 ) ) {
63
+ signaturesEnum = {
64
+ ...signaturesEnum ,
65
+ UPLOAD_FIRMWARE_BOSSAC : '5c61682e3ce2544365b05577f9016d5fbfa4c20efdce6ec2ebe6940380ea4f9421322b338c83b7721f900c99c61282720224d9fb20a639154984fd1feef682ee432c8a225f14fe7ba80d2d71d51bc92bfffe63de9386c0b9bc17a827ce21dda837fe3fd0c518ff0b84982c65db81a3eebab88712593c068f5a43f7bc22d4a3f3608969e8f30b3102b382d2c0f7f28d482b39cbcfd16eb680dd04bda66b9cb0d1c2b2e91d89dd8c6033562f1d3983002b61aa39ef70d45a456178867609c058a09bbcd8bce4d97d2e65c28756659bf5ba111e8541302cea934a2c005331ef89425390f610d2f609d581175d16193e72752fe8384f66051e6a2abea79757f042eb' ,
66
+ UPLOAD_FIRMWARE_AVRDUDE : '83b177b05dcd7043d484e321417d1dd499fdbd80b7109cc86fcb91cb14e59b834c3956a279e8d4ceba466a308cb8a1aceb5ab6770b8f207e9bc92e84a191edc21cdecb4f7cc1883fbf0eb258f1f849ffbe76bb0320dfe92d85f77226b45fd90824fc126e22ebe8d2350f854c9d43a03186d7f260d8d03bf83e6669646b2e13a6371dcbf1dd5711edcbe3c3a0f186d091ba26118ed2cdb3ef58e0079096403a2e93684d5089b216c53f2fcb1387b6e9d49feea914943971ac1e58bba1ecdf4f14f557d278e8b4f05d594e21887ba87322fbe1d70d05f03412d87f3149a4b3aff302088a2f0ecc42302b6ba66024e94226b5d99c9e0375383e4494bc1e0d0e20b8'
67
+ } ;
68
+ updaterBinaryName = 'updater' ;
69
+ }
70
+ }
71
+
59
72
getFirmwareInfo ( boardId , port , firmwareVersion ) {
60
73
this . firmwareVersionData = null ;
61
74
this . loaderPath = null ;
@@ -199,7 +212,7 @@ export default class FirmwareUpdater {
199
212
const data = {
200
213
board : boardId ,
201
214
port,
202
- commandline : `"{runtime.tools.fwupdater.path}/updater " -flasher {network.password} -port {serial.port} -restore_binary "{build.path}/{build.project_name}.bin" -programmer ${ programmer } ` ,
215
+ commandline : `"{runtime.tools.fwupdater.path}/${ updaterBinaryName } " -flasher {network.password} -port {serial.port} -restore_binary "{build.path}/{build.project_name}.bin" -programmer ${ programmer } ` ,
203
216
hex : '' ,
204
217
extra : {
205
218
auth : {
0 commit comments