DBus is the module for IPC.
Example
var dbus = require('dbus').getBus('session');
dbus.getInterface(
'org.an.service-name',
'/path/to/object',
'ifaceName',
function(err, iface) {
iface.someMethod();
}
);serviceName{String} the service name.objectPath{String} the object path.interfaceName{String} the interface name.cb{Function} the callback when the interface is loaded.
Gets the interface with specified service, object and name.
channel{String} the channel to register, "session" or "system".name{String} the service name.
register the servie with specified name, it returns an Service object.
The class Service is used to create the ServiceInterface instance.
objectPath{String} the object path.
Creates the object under this service.
name{String} the interface name.
Creates the interface, it returns an ServiceInterface instance.
name{String} the method name.opts{Object} the method options.opts.in{Array} the arguments of this method.opts.out{Array} the returns of this method.
handler{Function} the handler for this method.
Adds an method to the interface, to start a D-Bus service and add a method:
var dbus = require('dbus');
var service = dbus.registerService('session', 'org.myservice');
var object = service.createObject('/rokid/myservice');
var iface = object.createInterface('rokid.myservice.iface0');
iface.addMethod('ping', { in: [], out: ['s'] }, function(cb) {
cb(null, 'pong');
});And then we are able to ping this service in another script:
var assert = require('assert');
var dbus = require('dbus').getBus('session');
dbus.getInterface(
'org.myservice',
'/rokid/myservice',
'rokid.myservice.iface0',
function onResponse(err, iface) {
iface.ping(function(err, data) {
assert.equal(data, 'pong');
});
}
);name{String} the signal name.opts{Object} the signal options.opts.types{Array} the arguments of this signal.
Add the named signal.
Emits the added signal.