Skip to content

Commit d13a436

Browse files
author
Akos Kitta
committed
Made the port optional for upload using programmer
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
1 parent 5f515f0 commit d13a436

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

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

+9-2
Original file line numberDiff line numberDiff line change
@@ -98,20 +98,27 @@ export class UploadSketch extends SketchContribution {
9898
let options: CoreService.Upload.Options | undefined = undefined;
9999
const sketchUri = uri;
100100
const optimizeForDebug = this.editorMode.compileForDebug;
101+
const { selectedPort } = boardsConfig;
101102

102103
if (usingProgrammer) {
103104
const programmer = selectedProgrammer;
104105
if (!programmer) {
105106
throw new Error('Programmer is not selected. Please select a programmer.');
106107
}
108+
let port: undefined | string = undefined;
109+
// If the port is set by the user, we pass it to the CLI as it might be required.
110+
// If it is not set but the CLI requires it, we let the CLI to complain.
111+
if (selectedPort) {
112+
port = selectedPort.address;
113+
}
107114
options = {
108115
sketchUri,
109116
fqbn,
110117
optimizeForDebug,
111-
programmer
118+
programmer,
119+
port
112120
};
113121
} else {
114-
const { selectedPort } = boardsConfig;
115122
if (!selectedPort) {
116123
throw new Error('No ports selected. Please select a port.');
117124
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export namespace CoreService {
2626
export namespace Upload {
2727
export type Options =
2828
Compile.Options & Readonly<{ port: string }> |
29-
Compile.Options & Readonly<{ programmer: Programmer }>;
29+
Compile.Options & Readonly<{ programmer: Programmer, port?: string }>;
3030
}
3131

3232
}

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

+4-3
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,12 @@ export class CoreServiceImpl implements CoreService {
103103
uploadReq.setInstance(instance);
104104
uploadReq.setSketchPath(sketchpath);
105105
uploadReq.setFqbn(fqbn);
106-
if ('port' in options) {
107-
uploadReq.setPort(options.port);
108-
} else {
106+
if ('programmer' in options) {
109107
uploadReq.setProgrammer(options.programmer.id);
110108
}
109+
if (options.port) {
110+
uploadReq.setPort(options.port);
111+
}
111112
const result = client.upload(uploadReq);
112113

113114
try {

0 commit comments

Comments
 (0)