1
- import { inject , injectable } from '@theia/core/shared/inversify' ;
1
+ import { nls } from '@theia/core/lib/common' ;
2
+ import { injectable } from '@theia/core/shared/inversify' ;
2
3
import { ArduinoMenus } from '../menu/arduino-menus' ;
3
- import { BoardsDataStore } from '../boards/boards-data-store' ;
4
- import { BoardsServiceProvider } from '../boards/boards-service-provider' ;
5
4
import {
6
- CoreServiceContribution ,
7
5
Command ,
8
6
CommandRegistry ,
7
+ CoreServiceContribution ,
9
8
MenuModelRegistry ,
10
9
} from './contribution' ;
11
- import { nls } from '@theia/core/lib/common' ;
12
10
13
11
@injectable ( )
14
12
export class BurnBootloader extends CoreServiceContribution {
15
- @inject ( BoardsDataStore )
16
- protected readonly boardsDataStore : BoardsDataStore ;
17
-
18
- @inject ( BoardsServiceProvider )
19
- protected readonly boardsServiceClientImpl : BoardsServiceProvider ;
20
-
21
13
override registerCommands ( registry : CommandRegistry ) : void {
22
14
registry . registerCommand ( BurnBootloader . Commands . BURN_BOOTLOADER , {
23
15
execute : ( ) => this . burnBootloader ( ) ,
@@ -35,32 +27,33 @@ export class BurnBootloader extends CoreServiceContribution {
35
27
} ) ;
36
28
}
37
29
38
- async burnBootloader ( ) : Promise < void > {
30
+ private async burnBootloader ( ) : Promise < void > {
31
+ const { boardsConfig } = this . boardsServiceProvider ;
32
+ const port = boardsConfig . selectedPort ;
33
+ const [ fqbn , { selectedProgrammer : programmer } , verify , verbose ] =
34
+ await Promise . all ( [
35
+ this . boardsDataStore . appendConfigToFqbn (
36
+ boardsConfig . selectedBoard ?. fqbn
37
+ ) ,
38
+ this . boardsDataStore . getData ( boardsConfig . selectedBoard ?. fqbn ) ,
39
+ this . preferences . get ( 'arduino.upload.verify' ) ,
40
+ this . preferences . get ( 'arduino.upload.verbose' ) ,
41
+ ] ) ;
39
42
try {
40
- const { boardsConfig } = this . boardsServiceClientImpl ;
41
- const port = boardsConfig . selectedPort ;
42
- const [ fqbn , { selectedProgrammer : programmer } , verify , verbose ] =
43
- await Promise . all ( [
44
- this . boardsDataStore . appendConfigToFqbn (
45
- boardsConfig . selectedBoard ?. fqbn
46
- ) ,
47
- this . boardsDataStore . getData ( boardsConfig . selectedBoard ?. fqbn ) ,
48
- this . preferences . get ( 'arduino.upload.verify' ) ,
49
- this . preferences . get ( 'arduino.upload.verbose' ) ,
50
- ] ) ;
51
-
52
- const board = {
53
- ...boardsConfig . selectedBoard ,
54
- name : boardsConfig . selectedBoard ?. name || '' ,
55
- fqbn,
56
- } ;
57
- this . outputChannelManager . getChannel ( 'Arduino' ) . clear ( ) ;
58
- await this . coreService . burnBootloader ( {
59
- board,
60
- programmer,
61
- port,
62
- verify,
63
- verbose,
43
+ await this . doWithProgress ( {
44
+ progressText : nls . localize (
45
+ 'arduino/bootloader/burningBootloader' ,
46
+ 'Burning bootloader...'
47
+ ) ,
48
+ task : ( progressId , coreService ) =>
49
+ coreService . burnBootloader ( {
50
+ fqbn,
51
+ programmer,
52
+ port,
53
+ verify,
54
+ verbose,
55
+ progressId,
56
+ } ) ,
64
57
} ) ;
65
58
this . messageService . info (
66
59
nls . localize (
0 commit comments