В настоящее время я создаю электронное приложение, где на главной странице представлен список действий, которые может выполнить устройство, подключенное через USB (arduino), а команда отправляется через COM-порт (UART?). В том же приложении у меня есть пункт меню, который открывает новое окно, в котором я могу выбрать 4 com порта для 4 модулей. Как сохранить соединение COM после закрытия окна выбора com-порта? Я полагаю, что альтернативный вопрос может быть - как правильно это сделать?
Мой элементарный код в настоящее время:
// Connect to COM ports. Called from the COM port window
connectCOM() {
var sp = require("serialport");
// Make all ports available
var ports = new Array(4);
var modport_text = [];
var modport_value = [];
for (var i = 0; i < 4; i++) {
/* Read options to find the selected COM ports to connect */
}
for (var i = 0; i < modport_value.length; i++) {
if (modport_value[i] != "0") {
ports[i] = new sp(modport_text[i], {
baudRate: 9600,
parser: new sp.parsers.Readline("\r\n")
});
} else {
ports[i] = -1;
}
}
localStorage.setItem("allports", JSON.stringify(ports));
this.logPorts();
}
// Other functions
// For debugging purposes. This displays the connections over console.
// Called from Main window
logPorts() {
var sp = require("serialport");
//var ports: typeof sp;
var ports = JSON.parse(localStorage.getItem("allports"));
ports[0].on("open", () => {
console.log("this will never output");
});
}
Это даже правильный путь для продолжения? Сериализация объекта не сохраняет свойства Serialport
, и я даже не знаю, сохранит ли он последовательный порт открытым.