| 123456789101112131415161718192021222324252627282930313233343536 |
- const { SerialPort } = require('serialport')
- const { ByteLengthParser } = require('@serialport/parser-byte-length')
- const port = new SerialPort({ path: 'COM5', baudRate: 115200 })
- const parser = port.pipe(new ByteLengthParser({ length: 12 }))
- // 切片
- const sliceTo55 = (buffer) => {
- const num = buffer.indexOf(0x55)
- if (num === 0) {
- const newBuffer = buffer.slice(num, num + 11)
- if (newBuffer[1] === 0x50) {
- const time = `${newBuffer[2].toString()}年${newBuffer[3].toString()}月${newBuffer[4].toString()}日 ${newBuffer[5].toString()}:${newBuffer[6].toString()}:${newBuffer[7].toString()}`
- console.log('时间', time);
- } else if (newBuffer[1] === 0x58) {
- const gps = `${((newBuffer[9] << 24) | (newBuffer[8] << 16) | (newBuffer[7] << 8) | (newBuffer[6])) / 1000}`
- console.log('GPS地速', gps);
- } else if (newBuffer[1] === 0x51) {
- const C = `${(newBuffer[9] << 8 | newBuffer[8]) / 100}`
- console.log('温度', C);
- } else if (newBuffer[1] === 0x53) {
- const P = `${(newBuffer[9] << 8 | newBuffer[8])}`
- console.log('版本号', P);
- } else if (newBuffer[1] === 0x53) {
- const P = `${(newBuffer[9] << 8 | newBuffer[8])}`
- console.log('版本号', P);
- }
- }
- }
- parser.on('data', data => {
- sliceTo55(data)
- })
|