ljmmm-parse

Library for parsing LabJack Modbus Map Markup documents.

npm install ljmmm-parse
12 downloads in the last week
16 downloads in the last month

ljmmm-parse

LabJack Modbus Map Markup language parser micro-library for Node.js.

Installation

npm install ljmmm-parse

Usage

var ljmmm_parse = require('ljmmm-parse');

/**
 * Logs
 * [
 *     {name: 'Test0', address: 0, type: 'UINT32'},
 *     {name: 'Test1', address: 2, type: 'UNIT32'},
 *     {name: 'Another0', address: 0, type: 'UINT32'},
 *     {name: 'Another1', address: 2, type: 'UNIT32'}
 * ]
**/
ljmmm_parse.expandLJMMMEntries(
    [
        {name: 'Test#(0:1)', address: 0, type: 'UINT32'},
        {name: 'Another#(0:1)', address: 0, type: 'UINT32'}
    ]
    function (err) { console.log(err); },
    function (expandedEntries) { console.log(expandedEntries); }
);

/**
 * Logs
 * [
 *     {name: 'Test0', address: 0, type: 'UINT32'},
 *     {name: 'Test1', address: 2, type: 'UNIT32'}
 * ]
**/
ljmmm_parse.expandLJMMMEntry(
    {name: 'Test#(0:1)', address: 0, type: 'UINT32'},
    function (err) { console.log(err); },
    function (expandedEntries) { console.log(expandedEntries); }
);

// Logs ['Test0', 'Test1', 'Test2']
ljmmm_parse.expandLJMMMName(
    'Test#(0:2)',
    function (err) { console.log(err); },
    function (expandedNames) { console.log(expandedNames); }
);

/**
 * Also available:
 * 
 * ljmmm_parse.expandLJMMMEntriesSync(listOfEntries);
 * ljmmm_parse.expandLJMMMEntrySync(entry);
**/

LabJack Corp, 2013
Sam Pottinger, 2013

Released under the MIT license.

Background and motivation

To standardize MODBUS map specification, LabJack developed LJMMM or LabJack Modbus Map Markup (see ljm_constants). To support software targeting LabJack devices written in Node, this library supports the interpretation of LJMMM fields.

Testing

Requires rewire (npm install rewire) and nodeunit (npm install nodeunit).

nodeunit ljmmm_test.js

Development environment and standards

This project maintains 80% code coverage at minimum and conforms to both jsDoc and Google JavaScript style guidelines.

npm loves you