//require基础包
var _sensor = require('./sensor/sensor');
exports.sensor = _sensor;
var _gpio = require('pi-gpio');
var _comm = require('./sensor/comm');

//某些传感器只接收输入信号，无需输出，则初始化时直接打开GPIO连接，并设置成输入模式
function openInSensor(pin,sensor){
    if (sensor == "body") {
        _comm.open(pin, function (status) {
            _comm.setValueOrDirection(pin, 'in');
        });
    }
}

/*
 * 初始化
 * 参数 : JSON格式的数组 示例 [{"sensor":"humiture","pin":""},{"sensor":"body","pin":""}]
 * */
var init = function(args) {
    try {
        if (args && args.length > 0) {
            for (var index in args) {
                if (args[index] && typeof args[index] == 'object') {
                    if (args[index].sensor && args[index].pin) {
                        var pin = _gpio.p_pinMapping[_gpio.p_sanitizePinNumber(args[index].pin)];
                        var sensor = args[index].sensor;
                        if (_sensor[sensor]) {
                            _sensor[sensor].pin = pin;
                            //某些传感器只接收输入信号，无需输出，则初始化时直接打开GPIO连接，并设置成输入模式
                            openInSensor(pin, sensor);
                        }
                    }
                }
            }
        }
    }
    catch (e) {
        console.error(e);
    }
}
exports.init = init;