Made the port optional for upload using programmer

Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This commit is contained in:
Akos Kitta 2020-08-24 10:27:36 +02:00
parent 5f515f0597
commit d13a43668e
3 changed files with 14 additions and 6 deletions

View File

@ -98,20 +98,27 @@ export class UploadSketch extends SketchContribution {
let options: CoreService.Upload.Options | undefined = undefined; let options: CoreService.Upload.Options | undefined = undefined;
const sketchUri = uri; const sketchUri = uri;
const optimizeForDebug = this.editorMode.compileForDebug; const optimizeForDebug = this.editorMode.compileForDebug;
const { selectedPort } = boardsConfig;
if (usingProgrammer) { if (usingProgrammer) {
const programmer = selectedProgrammer; const programmer = selectedProgrammer;
if (!programmer) { if (!programmer) {
throw new Error('Programmer is not selected. Please select a programmer.'); throw new Error('Programmer is not selected. Please select a programmer.');
} }
let port: undefined | string = undefined;
// If the port is set by the user, we pass it to the CLI as it might be required.
// If it is not set but the CLI requires it, we let the CLI to complain.
if (selectedPort) {
port = selectedPort.address;
}
options = { options = {
sketchUri, sketchUri,
fqbn, fqbn,
optimizeForDebug, optimizeForDebug,
programmer programmer,
port
}; };
} else { } else {
const { selectedPort } = boardsConfig;
if (!selectedPort) { if (!selectedPort) {
throw new Error('No ports selected. Please select a port.'); throw new Error('No ports selected. Please select a port.');
} }

View File

@ -26,7 +26,7 @@ export namespace CoreService {
export namespace Upload { export namespace Upload {
export type Options = export type Options =
Compile.Options & Readonly<{ port: string }> | Compile.Options & Readonly<{ port: string }> |
Compile.Options & Readonly<{ programmer: Programmer }>; Compile.Options & Readonly<{ programmer: Programmer, port?: string }>;
} }
} }

View File

@ -103,11 +103,12 @@ export class CoreServiceImpl implements CoreService {
uploadReq.setInstance(instance); uploadReq.setInstance(instance);
uploadReq.setSketchPath(sketchpath); uploadReq.setSketchPath(sketchpath);
uploadReq.setFqbn(fqbn); uploadReq.setFqbn(fqbn);
if ('port' in options) { if ('programmer' in options) {
uploadReq.setPort(options.port);
} else {
uploadReq.setProgrammer(options.programmer.id); uploadReq.setProgrammer(options.programmer.id);
} }
if (options.port) {
uploadReq.setPort(options.port);
}
const result = client.upload(uploadReq); const result = client.upload(uploadReq);
try { try {