Объект pat.

Объект pat. позволяет «проигрывать» сигнальные последовательности на пяти парах светодиодов (максимум), где каждая пара состоит из зелёного и красного светодиодов.
Канал выбирается свойством pat.channel. Первый канал (канал 0) - основной канал вашей системы. Он использует зелёный и красный светодиоды состояния, которые есть на всех внешних устройствах, платах и некоторых модулях Tibbo. У всех модулей есть линии ввода-вывода SG и SR для управления внешними светодиодами состояния. Обратите внимание: когда приложение Tibbo BASIC/C не выполняется, зелёный и красный светодиоды состояния показывают различную информацию о состоянии.
Остальные четыре канала (каналы 1-4) работают одинаково, но используют обычные линии ввода-вывода устройств Tibbo. Кроме того, свойства pat.greenmap и pat.redmap позволяют гибко назначать линии управления зелёным и красным светодиодами каждого канала на любые линии ввода-вывода устройства.
Длина воспроизводимой последовательности - до 16 шагов. Каждый «шаг» может быть «-» (оба светодиода выключены), «R» (красный включён), «G» (зелёный включён) или «B» (включены оба). Можно также указать, выполнится ли последовательность один раз или будет зациклена и повторяться бесконечно. Кроме того, последовательность можно воспроизводить с обычной, удвоенной или учетверённой скоростью.
Новую последовательность загружает метод pat.play. Зацикленная последовательность играет, пока вы её не смените. Если последовательность не зациклена, она проиграет один раз, после чего будет сгенерировано событие on_pat. При входе в обработчик события свойство pat.channel автоматически получает номер канала, для которого сгенерировано событие.
Светодиодные последовательности - удобный способ показать пользователю, что делает система. Для разных состояний устройства можно придумать разные последовательности.
Вот простой пример: зелёный светодиод горит постоянно, кроме момента нажатия кнопки - тогда зелёный гаснет, а красный быстро мигает три раза. Кроме того, при запуске оба светодиода мигают четыре раза. В этом примере используется канал 0:
Sub On_sys_init
pat.channel=0 'not really necessary since 0 is the default value for this property
pat.play("B-B-B-B-",PL_PAT_CANINT)
End Sub
Sub On_button_pressed
pat.play("*R-R-R-",PL_PAT_CANINT)
End Sub
Sub On_pat
If pat.channel=0 Then 'not really necessary since we are not using any other channels
pat.play("~G",PL_PAT_CANINT)
End If
End Sub
В этом примере последовательность при включении питания загружается в обработчике события on_sys_init. Она не зациклена, поэтому после её завершения генерируется событие on_pat, и в его обработчике загружается «постоянная» последовательность «зелёный светодиод горит». Эта новая последовательность зациклена (обратите внимание на «~»). При нажатии кнопки загружается быстрая последовательность (обратите внимание на «*»): красный светодиод мигает три раза. Она тоже не зациклена, поэтому после её завершения генерируется событие on_pat и снова загружается «постоянный зелёный».