Skip to content

Commit 87b383f

Browse files
author
Akos Kitta
committed
use programmer id for upload/verify
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
1 parent cc76f2b commit 87b383f

File tree

4 files changed

+26
-11
lines changed

4 files changed

+26
-11
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,17 @@ export class UploadSketch extends SketchContribution {
8181
if (!boardsConfig.selectedBoard.fqbn) {
8282
throw new Error(`No core is installed for the '${boardsConfig.selectedBoard.name}' board. Please install the core.`);
8383
}
84-
const fqbn = await this.boardsDataStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn);
84+
const [fqbn, data] = await Promise.all([
85+
this.boardsDataStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn),
86+
this.boardsDataStore.getData(boardsConfig.selectedBoard.fqbn)
87+
]);
8588
this.outputChannelManager.getChannel('Arduino: upload').clear();
8689
await this.coreService.upload({
8790
sketchUri: uri,
8891
fqbn,
8992
port: selectedPort.address,
90-
optimizeForDebug: this.editorMode.compileForDebug
93+
optimizeForDebug: this.editorMode.compileForDebug,
94+
programmer: data.selectedProgrammer
9195
});
9296
this.messageService.info('Done uploading.', { timeout: 1000 });
9397
} catch (e) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,16 @@ export class VerifySketch extends SketchContribution {
6969
if (!boardsConfig.selectedBoard.fqbn) {
7070
throw new Error(`No core is installed for the '${boardsConfig.selectedBoard.name}' board. Please install the core.`);
7171
}
72-
const fqbn = await this.boardsDataStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn);
72+
const [data, fqbn] = await Promise.all([
73+
this.boardsDataStore.getData(boardsConfig.selectedBoard.fqbn),
74+
this.boardsDataStore.appendConfigToFqbn(boardsConfig.selectedBoard.fqbn)
75+
]);
7376
this.outputChannelManager.getChannel('Arduino: compile').clear();
7477
await this.coreService.compile({
7578
sketchUri: uri,
7679
fqbn,
77-
optimizeForDebug: this.editorMode.compileForDebug
80+
optimizeForDebug: this.editorMode.compileForDebug,
81+
programmer: data.selectedProgrammer
7882
});
7983
this.messageService.info('Done compiling.', { timeout: 1000 });
8084
} catch (e) {

arduino-ide-extension/src/common/protocol/core-service.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory';
2+
import { Programmer } from './boards-service';
23

34
export const CoreServiceClient = Symbol('CoreServiceClient');
45
export interface CoreServiceClient {
@@ -19,6 +20,7 @@ export namespace CoreService {
1920
readonly sketchUri: string;
2021
readonly fqbn: string;
2122
readonly optimizeForDebug: boolean;
23+
readonly programmer?: Programmer;
2224
}
2325
}
2426

arduino-ide-extension/src/node/core-service-impl.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ export class CoreServiceImpl implements CoreService {
6161
compilerReq.setPreprocess(false);
6262
compilerReq.setVerbose(true);
6363
compilerReq.setQuiet(false);
64+
if (options.programmer) {
65+
compilerReq.setProgrammer(options.programmer.id);
66+
}
6467

6568
const result = client.compile(compilerReq);
6669
try {
@@ -89,7 +92,6 @@ export class CoreServiceImpl implements CoreService {
8992
}
9093
const sketchpath = path.dirname(sketchFilePath);
9194

92-
9395
const coreClient = await this.coreClientProvider.client();
9496
if (!coreClient) {
9597
return;
@@ -100,12 +102,15 @@ export class CoreServiceImpl implements CoreService {
100102
throw new Error('The selected board has no FQBN.');
101103
}
102104

103-
const req = new UploadReq();
104-
req.setInstance(instance);
105-
req.setSketchPath(sketchpath);
106-
req.setFqbn(fqbn);
107-
req.setPort(options.port);
108-
const result = client.upload(req);
105+
const uploadReq = new UploadReq();
106+
uploadReq.setInstance(instance);
107+
uploadReq.setSketchPath(sketchpath);
108+
uploadReq.setFqbn(fqbn);
109+
uploadReq.setPort(options.port);
110+
if (options.programmer) {
111+
uploadReq.setProgrammer(options.programmer.id);
112+
}
113+
const result = client.upload(uploadReq);
109114

110115
try {
111116
await new Promise<void>((resolve, reject) => {

0 commit comments

Comments
 (0)