const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort');
let configDrawer = false;
let list = {
device: [],
baudRate: [9600, 115200]
};
let select = {
device: 0,
baudRate: 0,
recType: 'Hex',
sendType: 'Hex'
};
let isOpen = false;
let recText = '';
let sendText = '';
uni.$on('send', (d) => {
setTimeout(() => {
console.log(d); //{参数名1: 1,参数名2: {a:1,b:2}}
send(d);
}, 3000);
});
// 获取所有设备路径
function getDevices() {
serialPort.getAllDevicePath((res) => {
list.device = res;
});
}
// 改变设备
function changeDeivce(e) {
select.device = e.detail.value;
}
// 改变波特率
function changeBaudRate(e) {
select.baudRate = e.detail.value;
}
function addMessage(msg) {
//启动App且登录成功
console.log("串口回调信息");
}
// 监听数据
function onMessage() {
// if (select.recType === 'Hex') {
serialPort.onMessageHex(
(rec) => {
console.log('收到的回调信息', rec);
let value = addMessage(rec.toUpperCase());
if (value == false) return trendsToast('指令不匹配')
}, send => {
console.log("发送", send)
}
);
// }
}
// 关闭串口
function close() {
serialPort.close();
isOpen = false;
}
// 打开串口
function open() {
// serialPort.setPath(this.list.device[this.select.device])
// serialPort.setBaudRate(this.list.baudRate[this.select.baudRate])
console.log('开始打开串口');
serialPort.setPath('你的串口地址');
serialPort.setBaudRate(9600);
serialPort.open((res) => {
if (!res.status) {
uni.showToast({
title: res.msg,
duration: 2000,
icon: 'none'
});
return;
}
uni.showToast({
title: '已打开',
duration: 2000
});
onMessage();
isOpen = true;
//启动成功就发送
send('AA1A01050000BB');
// setTimeout(() => {
// send('AA1A031F0100BB');
// }, 2000);
// close();
});
}
// 发送消息
function send(res) {
if (!isOpen) {
open();
return;
}
console.log('发送消息', res);
serialPort.sendHex(res);
// if (select.sendType === 'ASCII') {
// serialPort.sendASCII(res);
// } else if (select.sendType === 'Hex') {
// }
}
uniapp串口通信
最新推荐文章于 2024-05-22 16:47:58 发布