Skip to content

Commit cdff624

Browse files
committed
adc: Add adc support based on sysfs
Inpired by IoT.js API, tested on ARTIK710: ``` NODE_PATH=lib node example/adc-example.js 1745 ``` Change-Id: Ie9e006c667cbc39747c49251e41a7b25aa9d4607 Signed-off-by: Philippe Coval <p.coval@samsung.com>
1 parent 2336386 commit cdff624

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed

example/adc-example.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// -*- mode: js; js-indent-level:2; -*-
2+
// Copyright 2018-present Samsung Electronics France and other contributors
3+
//{
4+
// Permission is hereby granted, free of charge, to any person obtaining
5+
// a copy of this software and associated documentation files (the
6+
// "Software"), to deal in the Software without restriction, including
7+
// without limitation the rights to use, copy, modify, merge, publish,
8+
// distribute, sublicense, and/or sell copies of the Software, and to
9+
// permit persons to whom the Software is furnished to do so, subject to
10+
// the following conditions:
11+
//
12+
// The above copyright notice and this permission notice shall be
13+
// included in all copies or substantial portions of the Software.
14+
//
15+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22+
//}
23+
24+
var adc = require('adc');
25+
26+
/// ADC0 on ARTIK710 interposer board
27+
var DEFAULT_ADC_DEVICE = '/sys/bus/platform/devices/c0053000.adc/iio:device0/in_voltage0_raw';
28+
29+
var main = function(config)
30+
{
31+
config = config || {
32+
device: DEFAULT_ADC_DEVICE
33+
}
34+
var port = adc.open(config, function(err) {
35+
if (err) {
36+
throw err;
37+
}
38+
console.log(port.readSync());
39+
});
40+
}
41+
42+
module.exports = main;
43+
44+
if (!module.parent) {
45+
var device = process.argv[2] ? Number(process.argv[2]) : DEFAULT_ADC_DEVICE;
46+
main({device: device});
47+
}

lib/adc.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// -*- mode: js; js-indent-level:2; -*-
2+
// Copyright 2018-present Samsung Electronics France and other contributors
3+
//{
4+
// Permission is hereby granted, free of charge, to any person obtaining
5+
// a copy of this software and associated documentation files (the
6+
// "Software"), to deal in the Software without restriction, including
7+
// without limitation the rights to use, copy, modify, merge, publish,
8+
// distribute, sublicense, and/or sell copies of the Software, and to
9+
// permit persons to whom the Software is furnished to do so, subject to
10+
// the following conditions:
11+
//
12+
// The above copyright notice and this permission notice shall be
13+
// included in all copies or substantial portions of the Software.
14+
//
15+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16+
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18+
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19+
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20+
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21+
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22+
//}
23+
24+
const fs = require('fs');
25+
26+
function Adc()
27+
{
28+
this.open = function(config, callback) {
29+
this.config = config;
30+
fs.access(config.device, fs.R_OK, callback);
31+
return this;
32+
}
33+
34+
this.readSync = function(err) {
35+
var contents = fs.readFileSync(this.config.device, 'ascii');
36+
return contents;
37+
}
38+
39+
this.closeSync = function() {
40+
}
41+
}
42+
43+
module.exports = new Adc();

0 commit comments

Comments
 (0)