北斗卫星数据监测展示互动系统

This commit is contained in:
2026-03-18 16:40:36 +08:00
parent 7bc9959465
commit 70792767d4
17 changed files with 429 additions and 330 deletions

View File

@@ -1,49 +1,49 @@
import { SerialPort } from 'serialport'
import { InterByteTimeoutParser } from '@serialport/parser-inter-byte-timeout'
import config from './config.js'
import sendMsg from './ipcRendererManager'
import NMEAHandler from './api/NMEAHandler'
import { SerialPort } from 'serialport';
import { InterByteTimeoutParser } from '@serialport/parser-inter-byte-timeout';
import config from './config.js';
import sendMsg from './ipcRendererManager';
import NMEAHandler from './api/NMEAHandler';
const DEFAULT_BAUDRATE = 115200
const DEFAULT_BAUDRATE = 115200;
const getSerialPortConstructorArguments = (ports) => {
// 很多电脑自带COM1接口,过滤掉COM1口
ports = ports.filter((port) => port.path != 'COM1')
if (ports.length == 0) return
ports = ports.filter((port) => port.path != 'COM1');
if (ports.length == 0) return;
const serialport = config.get('serialport')
const path = ( serialport && serialport.path ) ? serialport.path : ports[0].path
const baudRate = ( serialport && serialport.baudRate ) ? serialport.baudRate : DEFAULT_BAUDRATE
return { path, baudRate }
}
const serialport = config.get('serialport');
const path = ( serialport && serialport.path ) ? serialport.path : ports[0].path;
const baudRate = ( serialport && serialport.baudRate ) ? serialport.baudRate : DEFAULT_BAUDRATE;
return { path, baudRate };
};
const openSerialport = (ports) => {
try {
const constructorArguments = getSerialPortConstructorArguments(ports)
const constructorArguments = getSerialPortConstructorArguments(ports);
if (!constructorArguments) {
console.error('设备未连接')
return
console.error('设备未连接');
return;
}
const { path, baudRate } = constructorArguments
const { path, baudRate } = constructorArguments;
const serialPort = new SerialPort({ path, baudRate })
const parser = serialPort.pipe(new InterByteTimeoutParser({interval: 300}))
const serialPort = new SerialPort({ path, baudRate });
const parser = serialPort.pipe(new InterByteTimeoutParser({interval: 300}));
NMEAHandler.on('received' , (nmeaStr) => {
sendMsg('NMEA_RECEIVED', nmeaStr)
})
sendMsg('NMEA_RECEIVED', nmeaStr);
});
NMEAHandler.on('handled' , (nmeaObj) => {
sendMsg('NMEA_HANDLED', JSON.stringify(nmeaObj))
})
sendMsg('NMEA_HANDLED', JSON.stringify(nmeaObj));
});
parser.on('data', (data) => NMEAHandler.handle(data.toString()))
parser.on('data', (data) => NMEAHandler.handle(data.toString()));
} catch (error) {
console.error(error);
}
}
};
SerialPort.list().then(
ports => openSerialport(ports),
err => console.error(err)
)
);