From f151928b6bb389477a7e7c9ca991e2cff2f2299e Mon Sep 17 00:00:00 2001 From: Nikolaos Stefanou Date: Tue, 25 Feb 2020 19:49:25 +0000 Subject: [PATCH] make serialport native bindings work --- app/package.json | 1 + scripts/vars.js | 1 + terminus-serial/package.json | 2 +- terminus-serial/src/api.ts | 4 ++-- terminus-serial/src/services/serial.service.ts | 7 ++++++- terminus-serial/webpack.config.js | 2 +- 6 files changed, 12 insertions(+), 5 deletions(-) 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/,