Цитата:
|
Цитата:
|
Ну вы же сами сказали, что есть четыре команды, которые выполняются последовательно по таймеру. А это в общем то запустить 4 раза таймер, и достаточно проверять итерацию цикла по которому они и запускаются - если четвертая (последняя), значит последняя команда.
Вообще-то телеметрия подразумевает обратную связь, а значит сигнал обратной связи может служить индикатором того, что выполняется/выполнено в данный момент времени. |
Цитата:
|
Так я задавал вопрос, каким образом можно подавать следующие команды не опросив порт что он изменил состояние, или не получив обратный сигнал, на что получил ответ, что этого не требуется. А как же тогда можно узнать завершены ли предыдущие команды и можно подавать следующую? Или то что прописано в условии, это и есть сигналы ответа (состояние) на ранее переданные команды?
|
Вообще в самом блоке телесигнализации прописано передавать ТС с временем 30 сек. По трассировке смотрю состояние 4 ТС передает, но мне кажется скрипт не понимает состояние ТС4, так как в скрипте не указан его состояние.
if (TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0) { здесь указано состояние тс с 1 по 3 далее команду ТУ tmControl(X, Y, Z, 1); 1 - включить ТУ 4 телесигнала и вот здесь надо как то указать состояние 4-го ТС (как if (TM('#TCX:Y:Z') == 1). Вопрос здесь if надо? далее команду ТУ не выполняется } sleep(2000); } Совет разработчика: В основном цикле сделайте какую-нибудь переменную, после первой команды телеуправления увеличивайте значение этой переменной, по прошествии какого-то времени соответственно принимайте действия, если ТС не переключился. Подскажите и помогите:help: |
Цитата:
Цитата:
|
Цитата:
Это не условие запуска команды, а состояние телесигнализации |
Цитата:
Цитата:
|
Цитата:
if (TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0) { tmControl(X, Y, Z, 1); 1 - включить ТУ 4 телесигнала } if (TM('#TCX:Y:Z') == 1 var cont==1 sleep(2000); } Мне так надо оставлять скрипт или я ошибку допускаю:( |
Часовой пояс GMT +3, время: 01:11. |