Home | History | Annotate | Download | only in javascript
      1 #!/usr/bin/env node
      2 
      3 /*
      4  * Author: Brendan Le Foll <brendan.le.foll@intel.com>
      5  * Copyright (c) 2014 Intel Corporation.
      6  *
      7  * Permission is hereby granted, free of charge, to any person obtaining
      8  * a copy of this software and associated documentation files (the
      9  * "Software"), to deal in the Software without restriction, including
     10  * without limitation the rights to use, copy, modify, merge, publish,
     11  * distribute, sublicense, and/or sell copies of the Software, and to
     12  * permit persons to whom the Software is furnished to do so, subject to
     13  * the following conditions:
     14  *
     15  * The above copyright notice and this permission notice shall be
     16  * included in all copies or substantial portions of the Software.
     17  *
     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     21  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
     22  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
     23  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     24  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     25  */
     26 
     27 var m = require('mraa'); //require mraa
     28 
     29 // helper function to go from hex val to dec
     30 function char(x) { return parseInt(x, 16); }
     31 
     32 x = new m.I2c(0)
     33 x.address(0x77)
     34 
     35 // initialise device
     36 if (x.readReg(char('0xd0')) != char('0x55')) {
     37   console.log("error");
     38 }
     39 
     40 // we want to read temperature so write 0x2e into control reg
     41 x.writeReg(char('0xf4'), char('0x2e'))
     42 
     43 // read a 16bit reg, obviously it's uncalibrated so mostly a useless value :)
     44 console.log(x.readWordReg(char('0xf6')))
     45 
     46 // and we can do the same thing with the read()/write() calls if we wished
     47 // thought I'd really not recommend it!
     48 buf = new Buffer(2)
     49 buf[0] = char('0xf4')
     50 buf[1] = char('0x2e')
     51 console.log(buf.toString('hex'))
     52 x.write(buf)
     53 
     54 x.writeByte(char('0xf6'))
     55 d = x.read(2)
     56