diff --git a/app/package.json b/app/package.json index fad3eb46..c3af1927 100644 --- a/app/package.json +++ b/app/package.json @@ -40,6 +40,7 @@ "zone.js": "^0.8.29" }, "optionalDependencies": { + "serialport": "^8.0.7", "macos-native-processlist": "^1.0.2", "windows-blurbehind": "^1.0.1", "windows-native-registry": "^1.0.17", diff --git a/scripts/vars.js b/scripts/vars.js index d482c199..880871d3 100755 --- a/scripts/vars.js +++ b/scripts/vars.js @@ -21,6 +21,7 @@ exports.builtinPlugins = [ 'terminus-community-color-schemes', 'terminus-plugin-manager', 'terminus-ssh', + 'terminus-serial', ] exports.bundledModules = [ '@angular', diff --git a/terminus-serial/package.json b/terminus-serial/package.json index 6c674a7f..5129619c 100644 --- a/terminus-serial/package.json +++ b/terminus-serial/package.json @@ -22,7 +22,7 @@ "ansi-colors": "^4.1.1", "cli-spinner": "^0.2.10", "electron-rebuild": "^1.10.0", - "serialport": "^8.0.0", + "serialport": "^8.0.7", "terminus-terminal": "^1.0.98-nightly.0" }, "peerDependencies": { diff --git a/terminus-serial/src/api.ts b/terminus-serial/src/api.ts index 9f2b7f02..19fc5a78 100644 --- a/terminus-serial/src/api.ts +++ b/terminus-serial/src/api.ts @@ -1,5 +1,5 @@ import { BaseSession } from 'terminus-terminal' -import { SerialPort } from 'serialport' +import { SerialPort } from '@serialport/stream' import { Logger } from 'terminus-core' import { Subject, Observable } from 'rxjs' @@ -118,7 +118,7 @@ export class SerialSession extends BaseSession { } kill (signal?: string) { - console.log('valar morghulis') + this.serial.close() } async getChildProcesses (): Promise { diff --git a/terminus-serial/src/services/serial.service.ts b/terminus-serial/src/services/serial.service.ts index 3d8451b6..7993a3ba 100644 --- a/terminus-serial/src/services/serial.service.ts +++ b/terminus-serial/src/services/serial.service.ts @@ -1,10 +1,15 @@ import { Injectable, NgZone } from '@angular/core' -import SerialPort from 'serialport' +import SerialPort from '@serialport/stream' import { ToastrService } from 'ngx-toastr' import { AppService, LogService } from 'terminus-core' import { SerialConnection, SerialSession } from '../api' import { SerialTabComponent } from '../components/serialTab.component' +try { + var bindingsNative = require('serialport/bindings/build/Release/bindings.node') // eslint-disable-line @typescript-eslint/no-var-requires, no-var + SerialPort.binding = bindingsNative +} catch { } + @Injectable({ providedIn: 'root' }) export class SerialService { diff --git a/terminus-serial/webpack.config.js b/terminus-serial/webpack.config.js index 334e57fb..0c5287be 100644 --- a/terminus-serial/webpack.config.js +++ b/terminus-serial/webpack.config.js @@ -48,8 +48,8 @@ module.exports = { 'fs', 'keytar', 'path', - 'serialport', 'ngx-toastr', + 'serialport/bindings/build/Release/bindings.node', 'windows-process-tree/build/Release/windows_process_tree.node', /^rxjs/, /^@angular/,