Process messages received from devices.
import * as message from 'jooby-codec/mtx1/message/uplink';import * as frame from 'jooby-codec/mtx1/utils/frame.js';import getBytesFromHex from 'jooby-codec/utils/getBytesFromHex.js';const aesKey = [...Array(16).keys()];// a message with one getBuildVersion commandconst messageBytes = getBytesFromHex('0a 13 9b 4b f7 2a d1 e5 49 a5 09 50 9a 59 7e c2 b5 88');// the same message as a frameconst frameBytes = getBytesFromHex('7e 51 aa aa ff ff 0a 7d 33 9b 4b f7 2a d1 e5 49 a5 09 50 9a 59 7d 5e c2 b5 88 21 54 7e');const parsedMessage = message.fromBytes(messageBytes, {aesKey});console.log('parsed message:', parsedMessage);// output:{ messageId: 10, accessLevel: 3, commands: [ { id: 112, name: 'getBuildVersion', headerSize: 2, bytes: [Array], parameters: [Object] } ], bytes: [10,19,155,75,247,42,209,229,73,165,9,80,154,89,126,194,181,136], lrc: {received: 53, calculated: 53}}const parsedFrame = frame.fromBytes(frameBytes);console.log('parsed frame:', parsedFrame);// output:{ bytes: [10,19,155,75,247,42,209,229,73,165,9,80,154,89,126,194,181,136], crc: {calculated: 21537, received: 21537}, header: {type: 81, destination: 43690, source: 65535}}// parsed successfullyif ( 'bytes' in parsedFrame ) { const parsedMessage2 = message.fromBytes(parsedFrame.bytes, {aesKey}); if ( JSON.stringify(parsedMessage) === JSON.stringify(parsedMessage2) ) { console.log('correct message'); } else { throw new Error('parsedMessage and parsedMessage2 should be identical!'); }} Copy
import * as message from 'jooby-codec/mtx1/message/uplink';import * as frame from 'jooby-codec/mtx1/utils/frame.js';import getBytesFromHex from 'jooby-codec/utils/getBytesFromHex.js';const aesKey = [...Array(16).keys()];// a message with one getBuildVersion commandconst messageBytes = getBytesFromHex('0a 13 9b 4b f7 2a d1 e5 49 a5 09 50 9a 59 7e c2 b5 88');// the same message as a frameconst frameBytes = getBytesFromHex('7e 51 aa aa ff ff 0a 7d 33 9b 4b f7 2a d1 e5 49 a5 09 50 9a 59 7d 5e c2 b5 88 21 54 7e');const parsedMessage = message.fromBytes(messageBytes, {aesKey});console.log('parsed message:', parsedMessage);// output:{ messageId: 10, accessLevel: 3, commands: [ { id: 112, name: 'getBuildVersion', headerSize: 2, bytes: [Array], parameters: [Object] } ], bytes: [10,19,155,75,247,42,209,229,73,165,9,80,154,89,126,194,181,136], lrc: {received: 53, calculated: 53}}const parsedFrame = frame.fromBytes(frameBytes);console.log('parsed frame:', parsedFrame);// output:{ bytes: [10,19,155,75,247,42,209,229,73,165,9,80,154,89,126,194,181,136], crc: {calculated: 21537, received: 21537}, header: {type: 81, destination: 43690, source: 65535}}// parsed successfullyif ( 'bytes' in parsedFrame ) { const parsedMessage2 = message.fromBytes(parsedFrame.bytes, {aesKey}); if ( JSON.stringify(parsedMessage) === JSON.stringify(parsedMessage2) ) { console.log('correct message'); } else { throw new Error('parsedMessage and parsedMessage2 should be identical!'); }}
Process messages received from devices.
Example