2015-01-06 11:11:13 +00:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Author: Brendan Le Foll <brendan.le.foll@intel.com>
|
|
|
|
|
* Copyright (c) 2014 Intel Corporation.
|
|
|
|
|
*
|
2019-05-09 09:47:11 -07:00
|
|
|
* SPDX-License-Identifier: MIT
|
2015-01-06 11:11:13 +00:00
|
|
|
*/
|
|
|
|
|
|
2017-02-23 00:57:19 -06:00
|
|
|
"use strict";
|
2015-01-06 11:11:13 +00:00
|
|
|
|
2017-02-23 00:57:19 -06:00
|
|
|
const mraa = require('mraa'); //require mraa
|
|
|
|
|
|
|
|
|
|
let i2cDevice = new mraa.I2c(0);
|
|
|
|
|
i2cDevice.address(0x77);
|
2015-01-06 11:11:13 +00:00
|
|
|
|
|
|
|
|
// initialise device
|
2017-02-23 00:57:19 -06:00
|
|
|
if (i2cDevice.readReg(0xd0) != 0x55) {
|
|
|
|
|
console.log("error");
|
2015-01-06 11:11:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// we want to read temperature so write 0x2e into control reg
|
2017-02-23 00:57:19 -06:00
|
|
|
i2cDevice.writeReg(0xf4, 0x2e);
|
2015-01-06 11:11:13 +00:00
|
|
|
|
|
|
|
|
// read a 16bit reg, obviously it's uncalibrated so mostly a useless value :)
|
2017-02-23 00:57:19 -06:00
|
|
|
console.log(i2cDevice.readWordReg(0xf6));
|
2015-01-06 11:11:13 +00:00
|
|
|
|
|
|
|
|
// and we can do the same thing with the read()/write() calls if we wished
|
|
|
|
|
// thought I'd really not recommend it!
|
2017-02-23 00:57:19 -06:00
|
|
|
let buf = new Buffer(2);
|
|
|
|
|
buf[0] = 0xf4;
|
|
|
|
|
buf[1] = 0x2e;
|
|
|
|
|
console.log(buf.toString('hex'));
|
|
|
|
|
i2cDevice.write(buf);
|
|
|
|
|
|
|
|
|
|
i2cDevice.writeByte(0xf6);
|
|
|
|
|
let result = i2cDevice.read(2);
|
|
|
|
|
console.log(result.toString('hex'));
|