// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// All of the Node.js APIs are available in this process.
const { SerialPort } = require('serialport')
// let serialportgsm = require('serialport-gsm')
// const tableify = require('tableify')
// async function listSerialPorts() {
// await SerialPort.list().then((ports, err) => {
// if(err) {
// document.getElementById('error').textContent = err.message
// return
// } else {
// document.getElementById('error').textContent = ''
// }
// console.log('ports', ports);
// if (ports.length === 0) {
// document.getElementById('error').textContent = 'No ports discovered'
// }
// tableHTML = tableify(ports)
// document.getElementById('ports').innerHTML = tableHTML
// })
// }
// function listPorts() {
// listSerialPorts();
// setTimeout(listPorts, 2000);
// }
// // Set a timeout that will check for new serialPorts every 2 seconds.
// // This timeout reschedules itself.
// setTimeout(listPorts, 2000);
// listSerialPorts()
const allPorts = []
async function listPorts(){
await SerialPort.list().then((ports, err) => {
if(err){
document.getElementById('error').textContent = err.message
return
}else{
document.getElementById('error').textContent = ''
}
if (ports.length === 0){
document.getElementById('error').textContent = 'No ports discovered'
return
}
// ports.forEach(port => {
// console.log(port.path)
gsmPort = new SerialPort({
path: "COM33",
baudRate: 115200,
autoOpen: false
})
gsmPort.open(function (err){
if(err){
console.log('打开端口失败:',err.message)
}
})
gsmPort.write('at+cnmi?\r\n')
gsmPort.on('readable', function () {
console.log(gsmPort.path,' readable:', gsmPort.read())
})
let recedata = ''
gsmPort.on('data', function (data) {
const rece = data.toString()
recedata += rece
console.log('Data:', recedata)
})
gsmPort.on('open', function(){
console.log('port opened');
})
});
// })
}
function gsmread(){
}
document.getElementById('findCom').addEventListener('click', listPorts)
代码是在electron环境下执行的,所以有node代码,也有document DOM元素.
仅供参考,如有需要,私信联系。
xObP8s/gudi/zrPMoaJKU7K5u7e+s7/Os8yhokpBVkHP4LnYv86zzMjn0OjSqtKyv8nS1MGqz7VRUaGjDQoNCtf31d8gUVEgNDA0NTQwMjI5