Подключение термоэлектрических сервоприводов к WBIO-DO-SSR-8 или WBIO-DO-HS-8

Вот пример реализации “медленный ШИМ”:

//12_27_slow_PWM.js

//Имя виртуального устройства
var nameDevicePWM = "testPWM";

//Определим обект для виртуального устройства
var virt_device_params = {
      cells: {  }
    };

//Установим имя виртуальнго устройства
virt_device_params.title = nameDevicePWM;

//Описываем функцию.
function slowPWM_generator(namePWM, devicePWM, maxValue, periodPWM){
  //Добавляем в объект элементы управления
  virt_device_params.cells[namePWM] = {"type": "range", "value" : 0};
  virt_device_params.cells[namePWM].max = maxValue;
  
  //Создаем таймер для канала.
  this[namePWM+"_IntervalID"] = setInterval(function () {
  	//Тут Включим канал, если значение контрола виртуального устройства не 0
    log.debug("timer for", namePWM, "enter");
    if (dev[nameDevicePWM][namePWM]){
      log.debug("Enable", devicePWM);
      dev[devicePWM]=true;
      //и сразу зададим время "включенного" состояние
      setTimeout(function () {
        //По таймауту - отключаем устройство
        log.debug("Disable", devicePWM)
        dev[devicePWM]=false;
      }, (periodPWM*1000)/maxValue*dev[nameDevicePWM][namePWM]);

    }
    
  }, periodPWM*1000); 
  log.info("Создано PWM устройство", namePWM)
  log.info(namePWM+"_IntervalID=", this[namePWM+"_IntervalID"])
}


//Вызовем нужное количество раз функцию, параметры:
//Имя канала виртустройства
//топик физического устройства
//"максимальное" значение
//период ШИМ в секундах
slowPWM_generator("Device1_A1", "wb-gpio/A1_OUT", 100, 2)
slowPWM_generator("Device1_A2", "wb-gpio/A2_OUT", 100, 5)
slowPWM_generator("Device1_A3", "wb-gpio/A3_OUT",100, 12)
slowPWM_generator("Device1_A4", "wb-gpio/A4_OUT",100, 8)


//Создадим само виртуальное устройство
if (Object.keys(virt_device_params.cells).length) {
      defineVirtualDevice(nameDevicePWM, virt_device_params);
}
2 лайка