Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
lm2:ce:timer [2020/08/05 20:57] ruben |
lm2:ce:timer [2020/11/30 14:12] (текущий) |
||
|---|---|---|---|
| Строка 254: | Строка 254: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | **Файл со строковыми данными** | ||
| + | |||
| + | Основная статья " | ||
| + | |||
| + | <code xml> | ||
| + | <!-- объявление xml --> | ||
| + | <?xml version=" | ||
| + | <!-- корневой элемент --> | ||
| + | < | ||
| + | <!-- строковые данные, | ||
| + | <Text ID=" | ||
| + | <!-- языковая версия, | ||
| + | <Entry Lang=" | ||
| + | <Entry Lang=" | ||
| + | </ | ||
| + | <!-- строковые данные, | ||
| + | <Text ID=" | ||
| + | <!-- языковая версия, | ||
| + | <Entry Lang=" | ||
| + | <Entry Lang=" | ||
| + | </ | ||
| + | <!-- строковые данные, | ||
| + | <Text ID=" | ||
| + | <!-- языковая версия, | ||
| + | <Entry Lang=" | ||
| + | <Entry Lang=" | ||
| + | </ | ||
| + | <!-- строковые данные, | ||
| + | <Text ID=" | ||
| + | <!-- языковая версия, | ||
| + | <Entry Lang=" | ||
| + | <Entry Lang=" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | **Lua-код** | ||
| + | |||
| + | Основная статья" | ||
| + | |||
| + | <code lua> | ||
| + | -- start.lua | ||
| + | -- привязка панели | ||
| + | Panel(' | ||
| + | -- подключение файла | ||
| + | Include(" | ||
| + | |||
| + | -- обработчик нажатия на кнопку | ||
| + | function H_Exit(_ev) | ||
| + | sys.Exit() | ||
| + | end | ||
| + | -- привязка обработчика к событию | ||
| + | AddEventHandler(' | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | <code lua> | ||
| + | -- timer.lua | ||
| + | -- в Clock хранится текущее время в виде секунд - seconds и минут - minutes, а также интервал таймера в миллисекундах - interval и статус таймера - on = false|true | ||
| + | Clock = {seconds = 0; -- секунды | ||
| + | | ||
| + | | ||
| + | on = false; -- статус таймера | ||
| + | } | ||
| + | |||
| + | -- При нажатии на кнопку Старт - включается таймеры tick и lamp и текст кнопки становится Стоп | ||
| + | -- При нажатии на кнопку Стоп - таймер tick выключается и текст кнопки становится Старт | ||
| + | function H_startstoptimer(ev) | ||
| + | if Clock.on == false then | ||
| + | Clock.on = true | ||
| + | SetText(' | ||
| + | -- Включаем таймер на Clock.interval с цикличным срабатыванием (once = false) | ||
| + | sys.StartTimer(" | ||
| + | -- Включаем лампу и одноразовый таймер на 5с | ||
| + | Set(' | ||
| + | sys.StartTimer(" | ||
| + | else | ||
| + | Clock.on = false | ||
| + | SetText(' | ||
| + | -- Останавливаем цикличный таймер | ||
| + | sys.StopTimer(" | ||
| + | end | ||
| + | end | ||
| + | AddEventHandler(' | ||
| + | |||
| + | -- По таймеру tick обновляются часы | ||
| + | function H_refresh(ev) | ||
| + | Clock.seconds = Clock.seconds + Clock.interval/ | ||
| + | if Clock.seconds> | ||
| + | Clock.minutes = Clock.minutes + 1 | ||
| + | Clock.seconds = Clock.seconds - 60 | ||
| + | end | ||
| + | if Clock.minutes> | ||
| + | Clock.minutes = Clock.minutes - 60 | ||
| + | end | ||
| + | -- Устанавливаем значение цифровых часов | ||
| + | Set(" | ||
| + | end | ||
| + | AddEventHandler(' | ||
| + | |||
| + | -- По таймеру lamp выключается лампа | ||
| + | function H_lamp(ev) | ||
| + | Set(' | ||
| + | end | ||
| + | AddEventHandler(' | ||