ljmmm-parse
Version:
Library for parsing LabJack Modbus Map Markup documents.
87 lines (69 loc) • 2.54 kB
Markdown
ljmmm-parse
===========
[LabJack Modbus Map Markup](https://bitbucket.org/labjack/ljm_constants) language parser micro-library for Node.js.
Installation
--------------
``npm install ljmmm-parse``
Usage
---------
```javascript
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);
**/
```
License and Copyright
-----------------------------
LabJack Corp, 2013
Sam Pottinger, 2013
Released under the [MIT license](http://opensource.org/licenses/MIT).
Background and motivation
-----------------------------------
To standardize MODBUS map specification, LabJack developed LJMMM or LabJack Modbus Map Markup (see [ljm_constants](https://bitbucket.org/labjack/ljm_constants)). To support software targeting LabJack devices written in Node, this library supports the interpretation of LJMMM fields.
Testing
---------
Requires [rewire](https://github.com/jhnns/rewire) (npm install rewire) and [nodeunit](https://github.com/caolan/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](http://usejsdoc.org/) and [Google JavaScript style guidelines](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).