jooby-codec
    Preparing search index...

    Namespace uplink

    Process messages received from devices.

    import * as message from 'jooby-codec/mtx3/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 getDeviceId command
    const messageBytes = getBytesFromHex('0a13cf5fa5a836724fc97a0735f817d49651');
    // the same message as a frame
    const frameBytes = getBytesFromHex('7e51aaaaffff0a7d33cf5fa5a836724fc97a0735f817d49651fe547e');

    const parsedMessage = message.fromBytes(messageBytes, {aesKey});

    console.log('parsed message:', parsedMessage);
    // output:
    {
    messageId: 10,
    accessLevel: 3,
    commands: [
    {
    id: 5,
    name: 'getDeviceId',
    headerSize: 2,
    bytes: [Array],
    parameters: [Object]
    }
    ],
    bytes: [
    207, 95, 165, 168, 54, 114, 79, 201,
    122, 7, 53, 248, 23, 212, 150, 81
    ],
    lrc: { received: 71, calculated: 71 }
    }

    const parsedFrame = frame.fromBytes(frameBytes);

    console.log('parsed frame:', parsedFrame);
    // output:
    {
    bytes: [
    126, 81, 170, 170, 255, 255, 10, 125,
    51, 207, 95, 165, 168, 54, 114, 79,
    201, 122, 7, 53, 248, 23, 212, 150,
    81, 254, 84, 126
    ],
    payload: [
    10, 19, 207, 95, 165, 168, 54, 114,
    79, 201, 122, 7, 53, 248, 23, 212,
    150, 81
    ],
    crc: { calculated: 21758, received: 21758 },
    header: {
    type: 81,
    typeName: 'DATA_RESPONSE',
    destination: 43690,
    source: 65535
    }
    }

    // parsed successfully
    if ( 'bytes' in parsedFrame ) {
    const parsedMessage2 = message.fromBytes(parsedFrame.payload, {aesKey});

    if ( JSON.stringify(parsedMessage) === JSON.stringify(parsedMessage2) ) {
    console.log('correct message');
    } else {
    throw new Error('parsedMessage and parsedMessage2 should be identical!');
    }
    }
    bytesFromMessage
    fromBytes
    fromBytesMap
    messageFromBytes
    nameMap
    toBytes
    toBytesMap