diff --git a/.gitignore b/.gitignore index e61051f..24c853d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /node_modules/ /coverage/ +/syncd/ diff --git a/lib/bus.js b/lib/bus.js index 9dd6991..70dc9cd 100644 --- a/lib/bus.js +++ b/lib/bus.js @@ -22,31 +22,31 @@ class Bus { // // } - scan() { return pify(this.bus.scan_p)() } - close() { return pify(this.bus.close_p)() } + scan() { return pify(this.bus.scan).bind(this.bus)() } + close() { return pify(this.bus.close).bind(this.bus)() } readRaw(address, length, buffer) { - return pify(this.bus.i2cRead)(address, length, buffer) + return pify(this.bus.i2cRead).bind(this.bus)(address, length, buffer) } writeRaw(address, length, buffer) { - return pify(this.bus.i2cWrite)(address, length, buffer) + return pify(this.bus.i2cWrite).bind(this.bus)(address, length, buffer) } read(address, cmd) { - return pify(this.bus.readByte)(address, cmd) + return pify(this.bus.readByte).bind(this.bus)(address, cmd) } write(address, cmd, byte) { - return pify(this.bus.writeByte)(address, cmd, byte) + return pify(this.bus.writeByte.bind(this.bus))(address, cmd, byte) } read2(address, cmd) { - return pify(this.bus.readWord)(address, cmd) + return pify(this.bus.readWord.bind(this.bus))(address, cmd) } write2(address, cmd, bytes) { - return pify(this.bus.writeWord)(address, cmd, bytes) + return pify(this.bus.writeWord.bind(this.bus))(address, cmd, bytes) } } // end of Bus Class diff --git a/test/bus.test.js b/test/bus.test.js index 6925100..3a8faed 100644 --- a/test/bus.test.js +++ b/test/bus.test.js @@ -1,18 +1,23 @@ 'use strict' -const expect = require('chai').expect, - Bus = require('../lib/bus').Bus - // _ = require('uci-utils') +const chai = require('chai'), + chaiAsPromised = require("chai-as-promised"), + Bus = require('../lib/bus').Bus, + Device = require('../lib/device').Device + +chai.use(chaiAsPromised); + +const expect = chai.expect let bus = new Bus() - // console.log(bus.write.toString()) -bus.write(0x20, 0x09, 0xFF) +let addresses = [0x20, 0x23, 0x27] describe('Bus Class - ', function () { - it('Promise Methods are exposed ', function () { - // expect(pin.cfg, "config getter failed").to.deep.equal(gpio.configs('output')) - }) + it('Can scan the bus for devices', function () { + return expect(bus.scan().catch(err => console.log("an error", err))).to.eventually.deep.equal(addresses) + + }) }) diff --git a/test/device.test.js b/test/device.test.js new file mode 100644 index 0000000..73b28d4 --- /dev/null +++ b/test/device.test.js @@ -0,0 +1,25 @@ +'use strict' + +const chai = require('chai'), + chaiAsPromised = require("chai-as-promised"), + Bus = require('../lib/bus').Bus, + Device = require('../lib/device').Device + // _ = require('uci-utils') + +chai.use(chaiAsPromised); + +const expect = chai.expect + +let bus = new Bus() +let device = new Device(bus, 0x20) + +describe('Device Class - ', function () { + + let SET = 0xff + it('Can write and read to actual device', function () { + + device.write(0x09, SET).then(expect(device.read(0x0A)).to.eventually.equal(SET)) + .then(setTimeout(() => device.write(0x09, 0), 3000)) + .catch(err => console.log("an error", err)) + }) +})