Благодаря другому члену в stackoverflow я смог использовать SerialPort в приложении Electron.Теперь о следующем выпуске.
У меня есть компонент в Angular, который я хотел бы иметь раскрывающийся список для выбора последовательного порта для подключения.Но я пытаюсь выяснить, как работает serialport.list ().
app.component.ts
import { Component, OnInit } from '@angular/core';
import { } from 'electron';
import * as Serialport from 'serialport';
import { SerialService } from './serial.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'electron-angular-serialport';
comPorts = [];
constructor(private serial: SerialService) {
let isElectron: boolean = window && window['process'] && window['process'].type;
if (isElectron) {
let serialport: typeof Serialport = window['require']('serialport');
let app: Electron.App = window['require']('electron').remote;
console.log(serialport, app, window['process']);
}
}
ngOnInit() {
this.getPorts();
console.log(this.comPorts);
}
// getPorts() {
// this.serial.serialPort.list(function (err, ports) {
// ports.forEach(function(port) {
// this.comPorts.push(port);
// });
// });
// }
getPorts() {
this.comPorts = this.serial.serialPort.list();
}
}
Результат
Если вы посмотрите на блок кода с комментариями, вы заметите, что я пытался вставить каждый порт в comPorts.Но это выдает ошибку, утверждающую, что comPorts равен undefined .Что странно, потому что я предполагаю, что область действия здесь не теряется.
Я бы специально захватил эти два порта и вставил их в мои comPorts, чтобы я мог сделать раскрывающийся список, чтобыпользователь может выбрать Arduino для подключения.
Cheers,