diff --git a/CHANGELOG.md b/CHANGELOG.md index dcf6c60..b59a942 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,10 +18,15 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how ## [1.0.0] -### Fixed +### Added + +- Add reset menu to reset instrument from the instruments list +### Fixed +- Fix issue with error propagation of send script to terminal command - Fix issue where connecting to an instrument can fail with a mysterious error message -- Connection name needs to be same in Instruments pane, terminal and quick pick for a given instrument connection (TSP-839) +- Connection name needs to be same in Instruments pane, terminal and quick pick for a given instrument connection + ## [0.18.2] diff --git a/README.md b/README.md index 9dcdb74..07ac2db 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ -# Keithley TSP® Toolkit Beta +# Keithley TSP™ Toolkit -Please note, this extension is still in Beta. We expect there will be issues or -improvements. We would greatly appreciate any [feedback][tsp-toolkit-issues] on the GitHub repo for this -project. +This is an open source project from Keithley Instruments. We welcome +any [feedback][tsp-toolkit-issues] on the GitHub repo for this project. -The Keithley TSP® Toolkit is a [Visual Studio Code][code] extension that provides rich +Keithley TSP™ Toolkit is a [Visual Studio Code][code] extension that provides rich support for Keithley's Test Script Processor ([TSP][tsp]) technology to edit and execute scripts on TSP-enabled Keithley instruments. The extension includes command-set documentation and language features such as syntax error detection and code navigation (provided by [sumneko.lua][sumneko]) as well as @@ -12,7 +11,7 @@ code-completion suggestions, inline help, and TSP command documentation. ## Demo Video - + ## Installed Extensions @@ -29,7 +28,7 @@ Extensions installed through the marketplace are subject to the [Marketplace Ter ![Open Folder][pic-open-folder] -- **Step 4.** [Configure your project](#configure-your-project) for your [TSP-Link®][tsp-link] instrument configuration. +- **Step 4.** [Configure your project](#configure-your-project) for your [TSP-Link™][tsp-link] instrument configuration. - **Step 5.** Edit and run your TSP scripts by right-clicking them in the file explorer, file tabs, or editor window and selecting "Send Script to Terminal" @@ -133,51 +132,21 @@ The extension is currently only available in English. ## Known Issues -As a beta product, we expect there to be some issues with this software and some features -may not be completed. Below is a list of known issues. If you come across new issues, +We are constantly working to improve the stability and reliability of this software. Here +are the known issues that we are working to fix. If you come across new issues, please let us know! See the [next section](#questions-issues-feature-requests-and-contributions) for more information. -- Saved instruments do not persist across VSCode sessions -- Incomplete, incorrect, or missing command-sets, these items may be shown as errors in - the editor, but will run on any instrument on which they exist. These commands may not - be shown in completion suggestions or the completions may be incorrect. - - All instruments - - `acal.*` - - `beeper.*` - - `dataqueue.*` - - `display.*` - - `eventlog.*` - - `file.*` - - `fs.*` - - `lan.*` - - `status.*` - - `tsplink.*` - - `tspnet.*` - - `upgrade.*` - - `userstring.*` - - 2600-series instruments - - `bit.*` - - `errorqueue.*` - - `io.*` - - `serial.*` -- Discovery feature updates the settings.json and discovery pane too frequently. This - causes tooltips to be closed too quickly and can also cause flickering. -- Attempting to connect to an instrument multiple times with the different names, the - second connection will fail, but the name will change. - Due to limitations in instrument firmware, script names longer than 27 characters will be truncated to 27 characters. If multiple scripts have names that are the same up to the 27th character, the second script will overwrite the first. -- If a terminal is closed using the trashcan icon, the instrument connection is not - closed correctly. In order to close the terminal so that the instrument connection - _is_ closed, type `.exit` into the terminal. It will close by itself after it cleans - up the connection. - The list of instruments that support language features is limited to the following: - 2450 - 2460 - 2461 - 2470 - 2601B + - 2601B-PULSE - 2602B - 2604B - 2611B @@ -186,10 +155,11 @@ for more information. - 2634B - 2635B - 2636B + - 2651A + - 2657A - DMM7510 -- Flashing firmware to the 3706A, 707B, 708B, and 2600-series instruments is not - successful. This will NOT render the instrument inoperable, but will not complete - successfully. +- Upgrading firmware on the 3706A, 707B, and 708B instruments is not successful. This will NOT + render the instrument inoperable, but will not complete successfully. [app-note-how-to-write-tsp-scripts]: https://www.tek.com/en/documents/application-note/how-to-write-scripts-for-test-script-processing-(tsp) diff --git a/package-lock.json b/package-lock.json index 42e1985..0f30f53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -49,9 +49,9 @@ "vscode": "^1.92.0" }, "optionalDependencies": { - "@tektronix/kic-cli-darwin-arm64": "0.18.4-0", - "@tektronix/kic-cli-linux-x64": "0.18.4-0", - "@tektronix/kic-cli-win32-x64": "0.18.4-0" + "@tektronix/kic-cli-darwin-arm64": "0.18.4", + "@tektronix/kic-cli-linux-x64": "0.18.4", + "@tektronix/kic-cli-win32-x64": "0.18.4" } }, "node_modules/@ampproject/remapping": { @@ -228,12 +228,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz", + "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==", "dev": true, "dependencies": { - "@babel/highlight": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -241,30 +242,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", - "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.0.tgz", + "integrity": "sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", - "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.8", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.8", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -295,12 +296,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", "dev": true, "dependencies": { - "@babel/types": "^7.25.7", + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -310,13 +312,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -350,28 +352,27 @@ "dev": true }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", - "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", - "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -380,81 +381,53 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", - "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", - "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.1.tgz", + "integrity": "sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==", "dev": true, "dependencies": { - "@babel/types": "^7.25.8" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -464,30 +437,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", - "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", - "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -505,14 +478,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -555,24 +527,27 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -969,9 +944,9 @@ } }, "node_modules/@tektronix/kic-cli-darwin-arm64": { - "version": "0.18.4-0", - "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-darwin-arm64/0.18.4-0/ebedde587007670c6a416a51c48e8ee1fbd14539", - "integrity": "sha512-ACwFDcLEDl2Tc7ClxS0doAs7oaByREbnv6rI+ZCmm+G/TzbZVS02fLKeVNjtc30vLVMDzPGRtxHZ4Lr9oCpidQ==", + "version": "0.18.4", + "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-darwin-arm64/0.18.4/bec330cd00d27dd7c5975d1e455a6b0d6b794d2c", + "integrity": "sha512-CnSbHr7Qc0Skyd7vkX+/bfcGh74LqXUhU7BbU0JGGDfkkyjroWzb47Dd3OYWdPQXdKozkvwjZkdUvrxMmVysNw==", "cpu": [ "arm64" ], @@ -987,9 +962,9 @@ } }, "node_modules/@tektronix/kic-cli-linux-x64": { - "version": "0.18.4-0", - "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-linux-x64/0.18.4-0/13bb156a7f183184fa3a678441cc7ad649c86882", - "integrity": "sha512-E8ne0STmR8uBiInmqLPI2E0jGTfvIkvDBS0s9rJOORa0pQBOX04T3UI7fW6WJPOZHrGT0d6j1wGTnLfPQFNRGA==", + "version": "0.18.4", + "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-linux-x64/0.18.4/b3a387b7f656f2bdc10bce519640c38c352754cc", + "integrity": "sha512-x57ujdwyUJWZVQdji2YYmyFHFjQpSzh/xFBwdan2D5Z0LkAVhcGePDT2AB3rQG3hgcRgHqwh3EVv4VmFZhdyZA==", "cpu": [ "x64" ], @@ -1005,9 +980,9 @@ } }, "node_modules/@tektronix/kic-cli-win32-x64": { - "version": "0.18.4-0", - "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-win32-x64/0.18.4-0/14f72f3fb8386ddbc573d72f1ee85505594a5351", - "integrity": "sha512-olhFZsYytOi5wd3i2fUjoJlOnnxGfbpr/+mfbyOF/yEc1BF44M0rFjqqvgmtu5lgyP19XmwMnGVlp7VvJpUTQQ==", + "version": "0.18.4", + "resolved": "https://npm.pkg.github.com/download/@tektronix/kic-cli-win32-x64/0.18.4/fdcba619e937da84e75be3b530bd0d89742d3f54", + "integrity": "sha512-ASoSNLW/sCfCWF7OjQKOvMeR1Hur0YCQ6XRs6F7g/bBEkCdEQ2hg7Qu4YgAh7G9y6jr02qAQ6aSOKl6W2/EE9g==", "cpu": [ "x64" ], @@ -1336,9 +1311,9 @@ } }, "node_modules/@vscode/vsce-sign": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.4.tgz", - "integrity": "sha512-0uL32egStKYfy60IqnynAChMTbL0oqpqk0Ew0YHiIb+fayuGZWADuIPHWUcY1GCnAA+VgchOPDMxnc2R3XGWEA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz", + "integrity": "sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==", "dev": true, "hasInstallScript": true, "optionalDependencies": { @@ -1499,9 +1474,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1915,9 +1890,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -1934,10 +1909,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2045,9 +2020,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001669", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", - "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "version": "1.0.30001673", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001673.tgz", + "integrity": "sha512-WTrjUCSMp3LYX0nE12ECkV0a+e6LC85E0Auz75555/qr78Oc8YWhEPNfDd6SHdtlCMSzqtuXY0uyEMNRcsKpKw==", "dev": true, "funding": [ { @@ -2713,9 +2688,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", - "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", + "version": "1.5.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.47.tgz", + "integrity": "sha512-zS5Yer0MOYw4rtK2iq43cJagHZ8sXN0jDHDKzB+86gSBSAI4v07S97mcq+Gs2vclAxSh1j7vOAHxSVgduiiuVQ==", "dev": true }, "node_modules/emoji-regex": { @@ -6269,9 +6244,9 @@ } }, "node_modules/parse5": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.0.tgz", - "integrity": "sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dependencies": { "entities": "^4.5.0" }, @@ -7692,15 +7667,6 @@ "node": ">=14.14" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index 61191cc..22fef74 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tsp-toolkit", "publisher": "Tektronix", - "displayName": "[Beta] Keithley TSP Toolkit", + "displayName": "Keithley TSP Toolkit", "description": "VSCode extension for Keithley Instruments' Test Script Processor", "version": "1.0.0", "icon": "./resources/TSP_Toolkit_128x128.png", @@ -201,6 +201,10 @@ "command": "InstrumentsExplorer.rename", "title": "Rename" }, + { + "command": "InstrumentsExplorer.reset", + "title": "Reset" + }, { "command": "InstrumentsExplorer.upgradeSlot1", "title": "Upgrade Slot 1", @@ -359,6 +363,10 @@ "command": "InstrumentsExplorer.rename", "when": "view == InstrumentsExplorer && viewItem =~ /ToRemove.*/" }, + { + "command": "InstrumentsExplorer.reset", + "when": "view == InstrumentsExplorer && viewItem =~ /.*Instr/" + }, { "command": "tsp.openTerminalIP", "when": "view == InstrumentsExplorer && viewItem =~ /.*Instr/" @@ -481,9 +489,9 @@ "xml-js": "1.6.11" }, "optionalDependencies": { - "@tektronix/kic-cli-linux-x64": "0.18.4-0", - "@tektronix/kic-cli-win32-x64": "0.18.4-0", - "@tektronix/kic-cli-darwin-arm64": "0.18.4-0" + "@tektronix/kic-cli-linux-x64": "0.18.4", + "@tektronix/kic-cli-win32-x64": "0.18.4", + "@tektronix/kic-cli-darwin-arm64": "0.18.4" }, "extensionDependencies": [ "sumneko.lua" diff --git a/resources/DemoVideoThumbnail.jpg b/resources/DemoVideoThumbnail.jpg deleted file mode 100644 index a30eb58..0000000 Binary files a/resources/DemoVideoThumbnail.jpg and /dev/null differ diff --git a/resources/DemoVideoThumbnail.png b/resources/DemoVideoThumbnail.png new file mode 100644 index 0000000..61b8eeb Binary files /dev/null and b/resources/DemoVideoThumbnail.png differ diff --git a/resources/DemoVideoThumbnail_play.jpg b/resources/DemoVideoThumbnail_play.jpg deleted file mode 100644 index a18f10e..0000000 Binary files a/resources/DemoVideoThumbnail_play.jpg and /dev/null differ diff --git a/src/extension.ts b/src/extension.ts index 3af3029..9c419a2 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -212,6 +212,10 @@ export function activate(context: vscode.ExtensionContext) { await startRename(e) }) + vscode.commands.registerCommand("InstrumentsExplorer.reset", async (e) => { + await startReset(e) + }) + context.subscriptions.push(openTerminal) //TODO: Connect `.terminate` in ki-comms @@ -268,6 +272,11 @@ export function deactivate() { /* empty */ } +//Request the instrument to be reset +function startReset(def: unknown): Promise { + return Promise.resolve(_instrExplorer.reset(def)) +} + function updateExtensionSettings() { const LOGLOC: SourceLocation = { file: "extension.ts", @@ -460,7 +469,7 @@ async function pickConnection(connection_info?: string): Promise { quickPick.placeholder = "Enter instrument IP in @ format" if (options.length > 0) { quickPick.placeholder = - "Select connection from existing list or Enter instrument IP in @ format" + "Select connection from existing list or enter instrument IP in @ format" } quickPick.onDidChangeValue((value) => { diff --git a/src/instruments.ts b/src/instruments.ts index 4d990d1..47a9b6f 100644 --- a/src/instruments.ts +++ b/src/instruments.ts @@ -1410,6 +1410,53 @@ export class InstrumentsExplorer { } } + public reset(item: unknown) { + const kicTerminals = vscode.window.terminals.filter((t) => { + const to = t.creationOptions as vscode.TerminalOptions + return to?.shellPath?.toString() === EXECUTABLE + }) + + const inputNode = item as IOInstrNode + + if (kicTerminals.length == 0 && inputNode != undefined) { + //reset using the "kic reset" command + const connectionType = inputNode.FetchInstrIOType() + console.log( + "Connection address: " + inputNode.FetchConnectionAddr(), + ) + + let connection_type = "lan" + if (connectionType == IoType.Visa) { + connection_type = "visa" + } + + //Start the connection process to reset + //The process is expected to exit after sending the cli reset command + cp.spawn(EXECUTABLE, [ + "--log-file", + join( + LOG_DIR, + `${new Date().toISOString().substring(0, 10)}-kic.log`, + ), + "reset", + connection_type, + inputNode.FetchConnectionAddr(), + ]) + } else { + //Use the existing terminal to reset + for (const kicCell of this._kicProcessMgr.kicList) { + if (inputNode != undefined) { + if ( + inputNode.FetchConnectionAddr() == + kicCell.fetchConnAddr() + ) { + kicCell.sendTextToTerminal(".reset\n") + } + } + } + } + } + public fetchConnectionArgs( item: object, ): [connection_str: string, model_serial?: string] {