Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Задержка кода setTimeout (https://javascript.ru/forum/events/60165-zaderzhka-koda-settimeout.html)

Deff 15.12.2015 21:53

allexmak,
Мне нужна схема взаимодействия, а не набросок комплектующих..
=================
Давай так:
1. Что делает резистор и чем он должен управлять, что должно шевелиться в системе при его подвижке ?
2. НАфига выключатель и что он включает - выключает ?
3. Для чего планшет и что он делает? Cейчас данным куском программы, кроме подсветки планшета, что либо задействано ?
4. Нафига планшету посдсветка, какую роль она играет для его работы ? Почему именно минута свечения ?

allexmak 15.12.2015 22:10

1 при подвижке тупо div с числами 0-100 и с этого id ,берем переменную
2 реле, как на схеме
3 планшет носитель HTML, нет
4 планшет отображает информацию с датчиков и все, загорается при верчениябарашка на настройке, минута, ну к примеру стоит через минуту потухание подсветки
5 но на мой взгляд это всё лишняя информация))

Deff 15.12.2015 22:47

allexmak,
Если ползунок в процессе движения (к примеру медленно движется)
1. Когда запускать вкл ? (Вариант - остановился и более секунды значение не меняется или Ваш Вариант действий ... ?
2. Стоит Блокировать возможность подвижки псевдоползунка(элемент <input type="range"...> ) на 60 сек при зажигании подсветки ?
=================================
Зажигание подсветки соответствует короткому вкл ? (c затем выкл) ?
Через сколько времени перекидывается на выкл. ? (после вкл.)

allexmak 15.12.2015 23:19

1 сразу включать как 1е изменение
2 блокировка ненужна
Цитата:

Зажигание подсветки соответствует короткому вкл ? (c затем выкл) ?
эта часть готова
$("#009").click();//вкл
setTimeout(function(){$("#010").click();}, 1000);// и выкл через сек

Deff 16.12.2015 00:03

allexmak,
Ну включилось, а если мы двигаем дальше ?
Что - так и будет включаться и выключаться ?
Даже если гнать ползунок быстро: займет - 2-3 секунды (реальный реостат - еще медленней)
Ну и чо - будет мигать несколько раз ? (минимум 2-3 раза)
Или как ?
====================
Для чего нужен реостат в реале ? Тогда я хоть логику пойму, ну пока идея автоматики либо мне непонятна, либо полный отстой...

allexmak 16.12.2015 20:12

1е изменение- включилось и больше ничего минута

как я уже писал реостат начинаешь дигать экран загорается и не нажимается кнопка пока экран сам не потухнет (в настройке планшета подсветка минута), как потух так опять проверяем крутится ли реостат, если да то опять включаем только один раз и не включаем минуту.

Deff 18.12.2015 01:53

См. Спойлер:
<!DOCTYPE HTML>
<html>
<meta charset="utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<style type="text/css">
#Lamp{
  border: rgba(56,185,53,.7) solid 2px;
  height: 123px;
  background: transparent url(http://s2.uploads.ru/t/BJc5O.jpg) center no-repeat;
}
#Lamp.set{
  border-color: rgba(255,0,0,.4) !important;
  background-image: url(http://s7.uploads.ru/t/yxOtG.jpg) !important;
}
.btn-group {
  position: relative;
}
/*Загородил кнопки от клика*/
.btn-group img {
  position: absolute;
  z-index: 1000;
  width: 100%;
  height: 100%;
}
</style>


	<br>
	<br>
        <table width=600>
	<tr><td id="Lamp"  colspan="2"><!--Типо Лампа--></td></tr>
        <tr><td>
	<br>
	<br>
	<input style="width:300px;" type="range" min="0" max="100" step="1" value="50" id="polzunok1" oninput="inputRezistor(this)">
	<br>
	<br>
Текущее значение R1 = <span id="itog1" >0</span>;</td><td>Значение Включения = <span id="Pcheck1" >??</span> ±<span id="trigDelta">1</span></td></tr>
        </table>
	<br>
	<br>
	<div class="btn-group">
          <img src="http://forum.mybb.ru/i/blank.gif" alt="Загораживалка кнопок от клика">
	  Вкл<input type="radio" name="on-off" class="btn btn-default botaoEnvia" id="009"/>
	  Выкл<input type="radio" name="on-off" class="btn btn-default botaoEnvia" id="010" checked/>
	</div>



<script>
 window.onload = function(){
 var T_подсветки = 10*1000;		//Пока 10 сек//Время задержки на время подсветки планшета
 var T_зaдержВкл = 1000;		//Задержка отключения Вкл.
 var Lamp = false;			//Подсветка включена/выключена;
 var trigDelta = 3;			//Дельта сработки от начального значения ползунка при выключенной подсветке [>0];
 var R1 = $('#polzunok1');		//Элемент ползунок;
 var itog = $("#itog1");		//Отображающий элемент текущего значения ползунка;
 var pcheck1 = false;			//Значение ползунка для подключения подсветки 
 var elPcheck1 = $('#Pcheck1');		//Отображающий элемент Значение ползунка для подключения подсветки;
 var elTrigDelta = $("#trigDelta");	//Отображающий элемент Дельта сработки;	
 elTrigDelta.text(trigDelta);

  setTimeout(function(){ //Дожидаемся autocomplete для id="polzunok1";

    function tstLampOnOff (x) {
      if(Lamp||pcheck1===false)return false;
      if(Math.abs(+x-pcheck1)<trigDelta)return false;

      //Зажигаем!
      Lamp = true; pcheck1 = false;
      $('#009').click(); $('#Lamp').addClass('set');
      setTimeout(function(){
           $('#010').click();
      },T_зaдержВкл);
      setTimeout(function(){
           Lamp = false;
           busy = false;
           $('#Lamp').removeClass('set');
           inputRezistor(R1[0])
      },T_подсветки);
    }

    var busy = false;
    function setStartLampZn (x) {  //Установка начального отсчёта включения [pcheck1]
      if(busy||Lamp) return false;
      busy = true;
      elPcheck1.text(x);
      pcheck1 = +x;
    }

    function setItog (x) {
      itog.text(x);
      setStartLampZn (x)
    }

    inputRezistor = function(el) {
      var x = el.value;
      setItog (x);
      tstLampOnOff(x);
    }
 
    inputRezistor(R1[0]);

  },1200);
};
</script>


</body>
</html>

allexmak 18.12.2015 11:38

Deff,
Класс это действительно то что нужно, спасибо огромное.

allexmak 18.12.2015 13:13

Deff,если не сложно, где поменять отсчет T_подсветки чтоб шло после последнего изменения pcheck1, а не первого.

Deff 18.12.2015 13:18

allexmak,
Не понял...
тут как: - подсветка планшета выключилась - pcheck1 зафиксировал текущий отсчет в inputRezistor
Далее tstLampOnOff (x) тестирует превышение разницы текущего pcheck1 над последущим изменением в inputRezistor на величину trigDelta
==============================
Вы ставите задачу непонятно - что есть "последнее изменения pcheck1" ?
Когда его считывать ?
==============================
Нарисуйте 3 графика друг под другом
1. - кривая изменение резистора от времени
2. Включение - выключения реле...
3. Время запуска подсветки
==============================
Cейчас эти графики примерно такие: http://s3.uploads.ru/t/tTHFM.jpg
Cиним - резистор
Красным - выключатель реле
Зелёным - подсветка


Часовой пояс GMT +3, время: 20:56.