No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
LICENSE
Makefile
README.md
index.js
package.json

README.md

smartobject-watchify

An extension to make a smartobject instance listenable to its resource changes

NPM

Travis branch npm PyPI npm


1. Overview

This module is used make a smartobject instance able to listen to its resource changes, which could be helpful for creating a machine node responsive to any reosurce change within it.


2. Installation

$ npm install smartobject-watchify --save


3. Basic Usage

var SmartObject = require('smartobject'),
    soWatchify = require('smartobject-watchify');

var so = new SmartObject();
so = soWatchify(so);

so.init('temperature', 0, { sensorValue: 31, units : 'C' });

// attach a listener to receive the change from resource 'temperature/0/sensorValue' 
so.onChange('temperature/0/sensorValue', function (cVal, pVal) {
    console.log('A listener to this resource');
    console.log(cVal);  // current value
    console.log(pVal);  // previous value
});

so.onChange('temperature/0/sensorValue', function (cVal, pVal) {
    console.log('Another listener to this resource');
});

// Modify the sensorValue of the temperature sensor and the listener will be triggered
so.write('temperature', 0, 'sensorValue', 80, function (err, data) {
    if (err)
        console.log(err);
});

4. APIs



require('smartobject-watchify')(so)

smartobject-watchify exports a function that receives the smartobject instance as the parameter to be extended and returned.

Arguments:

  1. so (Object): The instance of SmartObject class.

Returns:

  • (Object) Watchified smartobject.

Examples:

var SmartObject = require('smartobject'),
    soWatchify = require('smartobject-watchify');

var so = soWatchify(new SmartObject());



so.onChange(path, listener)

Attach a listener to observe a given resource for its change.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): function(cVal, pVal) {}, where cVal is the current value and pVal is the previous value before updated.

Returns:

  • (none)

Examples:

so.onChange('temperature/3/sensorValue', function (cVal, pVal) {
    // Listen to 'temperature/3/sensorValue' for its change
});



so.onChangeOnce(path, listener)

Attach an one-time listener to observe a given resource for its change.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): function(cVal, pVal) {}, where cVal is the current value and pVal is the previous value before updated.

Returns:

  • (Constructor) WatchifiedSmartObject

Examples:

so.onChangeOnce('presence/7/dInState', function (cVal, pVal) {
    // Listen to 'presence/7/dInState' only once for its change
});



so.removeListener(path, listener)

Remove a specified listener from listening to the given resource path.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.
  2. listener (Function): The listener function.

Returns:

  • (none)

Examples:

var presenceListener = function (cVal, pVal) {
    // Listen to 'presence/7/dInState' only once for its change
};

// attach listener
so.onChange('presence/7/dInState', presenceListener);

// remove listener
so.removeListener('presence/7/dInState', presenceListener);



so.removeAllListeners(path)

Remove all listeners from listening to the given resource path.

Arguments:

  1. path (String): The path to the resource, e.g. 'humidity/6/sensorValue'.

Returns:

  • (none)

Examples:

so.removeAllListeners('temperature/0/sensorValue');

## License

Licensed under MIT.