Skip to content

Commit ee265ae

Browse files
silvanocerzaAlberto Iannaccone
authored andcommitted
Changed how connection is handled on upload
1 parent 9058abb commit ee265ae

File tree

7 files changed

+26
-26
lines changed

7 files changed

+26
-26
lines changed

arduino-ide-extension/src/browser/contributions/burn-bootloader.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { OutputChannelManager } from '@theia/output/lib/browser/output-channel';
33
import { CoreService } from '../../common/protocol';
44
import { ArduinoMenus } from '../menu/arduino-menus';
55
import { BoardsDataStore } from '../boards/boards-data-store';
6-
import { SerialConnectionManager } from '../serial/serial-connection-manager';
76
import { BoardsServiceProvider } from '../boards/boards-service-provider';
87
import {
98
SketchContribution,
@@ -18,8 +17,6 @@ export class BurnBootloader extends SketchContribution {
1817
@inject(CoreService)
1918
protected readonly coreService: CoreService;
2019

21-
@inject(SerialConnectionManager)
22-
protected readonly serialConnection: SerialConnectionManager;
2320

2421
@inject(BoardsDataStore)
2522
protected readonly boardsDataStore: BoardsDataStore;
@@ -91,8 +88,6 @@ export class BurnBootloader extends SketchContribution {
9188
errorMessage = e.toString();
9289
}
9390
this.messageService.error(errorMessage);
94-
} finally {
95-
await this.serialConnection.reconnectAfterUpload();
9691
}
9792
}
9893
}

arduino-ide-extension/src/browser/contributions/upload-sketch.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { BoardUserField, CoreService } from '../../common/protocol';
44
import { ArduinoMenus, PlaceholderMenuNode } from '../menu/arduino-menus';
55
import { ArduinoToolbar } from '../toolbar/arduino-toolbar';
66
import { BoardsDataStore } from '../boards/boards-data-store';
7-
import { SerialConnectionManager } from '../serial/serial-connection-manager';
87
import { BoardsServiceProvider } from '../boards/boards-service-provider';
98
import {
109
SketchContribution,
@@ -22,9 +21,6 @@ export class UploadSketch extends SketchContribution {
2221
@inject(CoreService)
2322
protected readonly coreService: CoreService;
2423

25-
@inject(SerialConnectionManager)
26-
protected readonly serialConnection: SerialConnectionManager;
27-
2824
@inject(MenuModelRegistry)
2925
protected readonly menuRegistry: MenuModelRegistry;
3026

@@ -294,8 +290,6 @@ export class UploadSketch extends SketchContribution {
294290
} finally {
295291
this.uploadInProgress = false;
296292
this.onDidChangeEmitter.fire();
297-
298-
setTimeout(() => this.serialConnection.reconnectAfterUpload(), 5000);
299293
}
300294
}
301295
}

arduino-ide-extension/src/browser/contributions/verify-sketch.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,17 @@ export class VerifySketch extends SketchContribution {
110110
),
111111
this.sourceOverride(),
112112
]);
113+
const board = {
114+
...boardsConfig.selectedBoard,
115+
name: boardsConfig.selectedBoard?.name || '',
116+
fqbn,
117+
}
113118
const verbose = this.preferences.get('arduino.compile.verbose');
114119
const compilerWarnings = this.preferences.get('arduino.compile.warnings');
115120
this.outputChannelManager.getChannel('Arduino').clear();
116121
await this.coreService.compile({
117122
sketchUri: sketch.uri,
118-
fqbn,
123+
board,
119124
optimizeForDebug: this.editorMode.compileForDebug,
120125
verbose,
121126
exportBinaries,

arduino-ide-extension/src/browser/dialogs/firmware-uploader/firmware-uploader-component.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { nls } from '@theia/core/lib/common';
22
import * as React from 'react';
3+
import { Port } from '../../../common/protocol';
34
import {
45
ArduinoFirmwareUploader,
56
FirmwareInfo,
@@ -20,7 +21,7 @@ export const FirmwareUploaderComponent = ({
2021
availableBoards: AvailableBoard[];
2122
firmwareUploader: ArduinoFirmwareUploader;
2223
updatableFqbns: string[];
23-
flashFirmware: (firmware: FirmwareInfo, port: string) => Promise<any>;
24+
flashFirmware: (firmware: FirmwareInfo, port: Port) => Promise<any>;
2425
isOpen: any;
2526
}): React.ReactElement => {
2627
// boolean states for buttons
@@ -81,7 +82,7 @@ export const FirmwareUploaderComponent = ({
8182
const installStatus =
8283
!!firmwareToFlash &&
8384
!!selectedBoard?.port &&
84-
(await flashFirmware(firmwareToFlash, selectedBoard?.port.address));
85+
(await flashFirmware(firmwareToFlash, selectedBoard?.port));
8586

8687
setInstallFeedback((installStatus && 'ok') || 'fail');
8788
} catch {

arduino-ide-extension/src/browser/dialogs/firmware-uploader/firmware-uploader-dialog.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from '../../../common/protocol/arduino-firmware-uploader';
1616
import { FirmwareUploaderComponent } from './firmware-uploader-component';
1717
import { UploadFirmware } from '../../contributions/upload-firmware';
18+
import { Port } from '../../../common/protocol';
1819

1920
@injectable()
2021
export class UploadFirmwareDialogWidget extends ReactWidget {
@@ -49,7 +50,7 @@ export class UploadFirmwareDialogWidget extends ReactWidget {
4950
});
5051
}
5152

52-
protected flashFirmware(firmware: FirmwareInfo, port: string): Promise<any> {
53+
protected flashFirmware(firmware: FirmwareInfo, port: Port): Promise<any> {
5354
this.busyCallback(true);
5455
return this.arduinoFirmwareUploader
5556
.flash(firmware, port)

arduino-ide-extension/src/common/protocol/arduino-firmware-uploader.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Port } from "./boards-service";
2+
13
export const ArduinoFirmwareUploaderPath =
24
'/services/arduino-firmware-uploader';
35
export const ArduinoFirmwareUploader = Symbol('ArduinoFirmwareUploader');
@@ -10,7 +12,7 @@ export type FirmwareInfo = {
1012
};
1113
export interface ArduinoFirmwareUploader {
1214
list(fqbn?: string): Promise<FirmwareInfo[]>;
13-
flash(firmware: FirmwareInfo, port: string): Promise<string>;
15+
flash(firmware: FirmwareInfo, port: Port): Promise<string>;
1416
uploadCertificates(command: string): Promise<any>;
1517
updatableBoards(): Promise<string[]>;
1618
availableFirmwares(fqbn: string): Promise<FirmwareInfo[]>;

arduino-ide-extension/src/node/arduino-firmware-uploader-impl.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import {
33
FirmwareInfo,
44
} from '../common/protocol/arduino-firmware-uploader';
55
import { injectable, inject, named } from 'inversify';
6-
import { ExecutableService } from '../common/protocol';
7-
import { SerialService } from '../common/protocol/serial-service';
6+
import { ExecutableService, Port } from '../common/protocol';
87
import { getExecPath, spawnCommand } from './exec-util';
98
import { ILogger } from '@theia/core/lib/common/logger';
9+
import { MonitorManager } from './monitor-manager';
1010

1111
@injectable()
1212
export class ArduinoFirmwareUploaderImpl implements ArduinoFirmwareUploader {
@@ -19,8 +19,8 @@ export class ArduinoFirmwareUploaderImpl implements ArduinoFirmwareUploader {
1919
@named('fwuploader')
2020
protected readonly logger: ILogger;
2121

22-
@inject(SerialService)
23-
protected readonly serialService: SerialService;
22+
@inject(MonitorManager)
23+
protected readonly monitorManager: MonitorManager;
2424

2525
protected onError(error: any): void {
2626
this.logger.error(error);
@@ -69,26 +69,28 @@ export class ArduinoFirmwareUploaderImpl implements ArduinoFirmwareUploader {
6969
return await this.list(fqbn);
7070
}
7171

72-
async flash(firmware: FirmwareInfo, port: string): Promise<string> {
72+
async flash(firmware: FirmwareInfo, port: Port): Promise<string> {
7373
let output;
74+
const board = {
75+
name: firmware.board_name,
76+
fqbn: firmware.board_fqbn,
77+
}
7478
try {
75-
this.serialService.uploadInProgress = true;
76-
await this.serialService.disconnect();
79+
this.monitorManager.notifyUploadStarted(board, port);
7780
output = await this.runCommand([
7881
'firmware',
7982
'flash',
8083
'--fqbn',
8184
firmware.board_fqbn,
8285
'--address',
83-
port,
86+
port.address,
8487
'--module',
8588
`${firmware.module}@${firmware.firmware_version}`,
8689
]);
8790
} catch (e) {
8891
throw e;
8992
} finally {
90-
this.serialService.uploadInProgress = false;
91-
this.serialService.connectSerialIfRequired();
93+
this.monitorManager.notifyUploadFinished(board, port);
9294
return output;
9395
}
9496
}

0 commit comments

Comments
 (0)