electron+串口请求、监听、buffer数据处理

electron+串口请求、监听、buffer数据处理
啥都不说,先附上代码:

let sendData = [0xB0, 0x00, 0x00]
        sendData = this.pushTo16(sendData); // 这部分是根据文档协议处理向设备发送的数据
        return (new Promise((resolve, reject) => {
            port.write(sendData, (e) => {  // 指令写入
            })
            port.removeAllListeners(); // 移除监听
            port.on('data', (data) => { // 监听数据
                let _data = this.dataTrans(data); // 这个是对返回的数据进行处理
                if (_data && _data[3] === 0xB0) { //这个判断是有数据返回,并且buffer数据里面有指令,由于有数据头和检验位,所以命令放在第四个
                    _data = _data.slice(10, 514); // 截取真正的数据
                    // 由于在解析的时候,utf-8只能解析,不能解析0x00,会解析成乱码,所以需要把有效数据过滤出来
                    let officeArr = _data.filter((item) => {
                        if (item !== 0x00) {
                            return item;
                        }
                    })
                    // 数据解析
                    let content = officeArr; // arraybuffer类型数据
                    let resBlob = new Blob([content])
                    let reader = new FileReader()
                    reader.readAsText(resBlob, 'utf-8');
                    reader.onload = () => {
                    console.log(reader.result)
                    resolve(reader.result); // 解析后返回的结果
                    }
                    port.removeAllListeners(); // 由于这个监听会一直存在,它会监听到设备返回的所有数据,我们只需要监听需要的数据,所以需要在收到数据后移除
                }
            })
        }))
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要先安装 Node.js 和 Vue CLI,然后执行以下步骤: 1. 创建一个基于 Vue CLI 的项目,可以使用以下命令: ```bash vue create my-electron-app ``` 2. 安装 electronelectron-builder: ```bash npm install --save-dev electron electron-builder ``` 3. 在项目根目录下创建一个 main.js 文件,用于 Electron 的主进程: ```javascript const { app, BrowserWindow } = require('electron') let mainWindow function createWindow () { mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true } }) mainWindow.loadURL(process.env.NODE_ENV === 'development' ? 'http://localhost:8080' : `file://${__dirname}/index.html`) mainWindow.on('closed', () => { mainWindow = null }) } app.on('ready', createWindow) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (mainWindow === null) { createWindow() } }) ``` 4. 在 package.json 中添加以下脚本: ```json { "scripts": { "electron:serve": "vue-cli-service electron:serve", "electron:build": "vue-cli-service electron:build" } } ``` 5. 在 src 目录下创建一个 api.js 文件,用于封装接口请求: ```javascript import axios from 'axios' const instance = axios.create({ baseURL: process.env.VUE_APP_API_BASE_URL }) export default { get: (url, params) => instance.get(url, { params }), post: (url, data) => instance.post(url, data) } ``` 6. 在项目根目录下创建一个 .env 文件,用于存储 API 的基础 URL: ``` VUE_APP_API_BASE_URL=http://localhost:3000 ``` 7. 在组件中使用 API: ```javascript import api from '@/api' export default { data () { return { items: [] } }, mounted () { api.get('/items').then(response => { this.items = response.data }) } } ``` 最后,你可以使用以下命令启动 Electron 应用程序: ```bash npm run electron:serve ``` 或者使用以下命令构建可分发的应用程序: ```bash npm run electron:build ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值