From c0d978fe7061076877ae6249964c3aedc19d845a Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Mon, 9 Apr 2018 11:56:44 +0800 Subject: [PATCH 1/6] add install board command --- src/extension.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index a0050d8c..9c7c1909 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -157,13 +157,15 @@ export async function activate(context: vscode.ExtensionContext) { } delete status.compile; } - }, - () => { - return { board: ArduinoContext.boardManager.currentBoard.name }; - }); + }, () => { + return { board: ArduinoContext.boardManager.currentBoard.name }; + }); registerArduinoCommand("arduino.addLibPath", (path) => ArduinoContext.arduinoApp.addLibPath(path)); registerArduinoCommand("arduino.openExample", (path) => ArduinoContext.arduinoApp.openExample(path)); + registerArduinoCommand("arduino.installBoard", async (packageName, arch, version) => { + return await ArduinoContext.arduinoApp.installBoard(packageName, arch, version); + }); // serial monitor commands const serialMonitor = SerialMonitor.getInstance(); From abaf93593960b1fbbf88f1b2d292f5ffa7271e69 Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Tue, 10 Apr 2018 17:24:03 +0800 Subject: [PATCH 2/6] add install board command to test --- test/extension.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/extension.test.ts b/test/extension.test.ts index 9e5d3e28..deb7d9f6 100644 --- a/test/extension.test.ts +++ b/test/extension.test.ts @@ -49,6 +49,7 @@ suite("Arduino: Extension Tests", () => { "arduino.closeSerialMonitor", "arduino.reloadExample", "arduino.showExampleExplorer", + "arduino.installBoard", ]; const foundArduinoCommands = commands.filter((value) => { From 5c9808305f449ab9b8c47879faf6420231b56953 Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Wed, 11 Apr 2018 16:21:58 +0800 Subject: [PATCH 3/6] only install board when not installed --- src/extension.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/extension.ts b/src/extension.ts index 9c7c1909..f23f64bd 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -163,7 +163,16 @@ export async function activate(context: vscode.ExtensionContext) { registerArduinoCommand("arduino.addLibPath", (path) => ArduinoContext.arduinoApp.addLibPath(path)); registerArduinoCommand("arduino.openExample", (path) => ArduinoContext.arduinoApp.openExample(path)); - registerArduinoCommand("arduino.installBoard", async (packageName, arch, version) => { + registerArduinoCommand("arduino.installBoard", async (packageName, arch, version: string = "") => { + const installedBoards = ArduinoContext.boardManager.installedBoards; + for (const boardKey of Object.keys(installedBoards)) { + const board = installedBoards[boardKey]; + if (packageName === board.platform.packageName && + arch === board.platform.architecture && + (!version || version === board.platform.installedVersion)) { + return; + } + } return await ArduinoContext.arduinoApp.installBoard(packageName, arch, version); }); From 00cfb58a1aa70f787ac8bc567f644048d017cb3f Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Wed, 11 Apr 2018 17:11:39 +0800 Subject: [PATCH 4/6] fix package name check issue --- src/extension.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index f23f64bd..2176a59f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -20,6 +20,7 @@ import { CompletionProvider } from "./langService/completionProvider"; import * as Logger from "./logger/logger"; import { SerialMonitor } from "./serialmonitor/serialMonitor"; import { UsbDetector } from "./serialmonitor/usbDetector"; +import { IBoard } from "./arduino/package"; const status: any = {}; @@ -164,16 +165,20 @@ export async function activate(context: vscode.ExtensionContext) { registerArduinoCommand("arduino.addLibPath", (path) => ArduinoContext.arduinoApp.addLibPath(path)); registerArduinoCommand("arduino.openExample", (path) => ArduinoContext.arduinoApp.openExample(path)); registerArduinoCommand("arduino.installBoard", async (packageName, arch, version: string = "") => { + let installed = false; const installedBoards = ArduinoContext.boardManager.installedBoards; - for (const boardKey of Object.keys(installedBoards)) { - const board = installedBoards[boardKey]; - if (packageName === board.platform.packageName && + installedBoards.forEach((board: IBoard, key: string) => { + if (packageName === board.platform.package.name && arch === board.platform.architecture && (!version || version === board.platform.installedVersion)) { - return; + installed = true; } + }); + + if (!installed) { + await ArduinoContext.arduinoApp.installBoard(packageName, arch, version) } - return await ArduinoContext.arduinoApp.installBoard(packageName, arch, version); + return; }); // serial monitor commands From 7fa0c2becfe51813f497e0e23749e635ab04b49c Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Wed, 11 Apr 2018 17:41:38 +0800 Subject: [PATCH 5/6] fix tslint issue --- .vscode/settings.json | 5 ++++- src/extension.ts | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ebe349fe..15bfefce 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,5 +11,8 @@ "**/.git/objects/**": true, "**/out/*": true, "**/node_modules/**": true - } + }, + "arduino.additionalUrls": [ + "https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json" + ] } \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 2176a59f..e2f39c5b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -6,6 +6,7 @@ import * as Uuid from "uuid/v4"; import * as vscode from "vscode"; import { ArduinoContentProvider } from "./arduino/arduinoContentProvider"; +import { IBoard } from "./arduino/package"; import ArduinoActivator from "./arduinoActivator"; import ArduinoContext from "./arduinoContext"; import { @@ -20,7 +21,6 @@ import { CompletionProvider } from "./langService/completionProvider"; import * as Logger from "./logger/logger"; import { SerialMonitor } from "./serialmonitor/serialMonitor"; import { UsbDetector } from "./serialmonitor/usbDetector"; -import { IBoard } from "./arduino/package"; const status: any = {}; @@ -176,7 +176,7 @@ export async function activate(context: vscode.ExtensionContext) { }); if (!installed) { - await ArduinoContext.arduinoApp.installBoard(packageName, arch, version) + await ArduinoContext.arduinoApp.installBoard(packageName, arch, version); } return; }); From bae9dea70775001ac9f9a730ce782718945dd008 Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Wed, 11 Apr 2018 17:44:58 +0800 Subject: [PATCH 6/6] revert settings.json --- .vscode/settings.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 15bfefce..ebe349fe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,8 +11,5 @@ "**/.git/objects/**": true, "**/out/*": true, "**/node_modules/**": true - }, - "arduino.additionalUrls": [ - "https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json" - ] + } } \ No newline at end of file