Объект pat.

Значок объекта pat.

Объект pat. позволяет «проигрывать» сигнальные последовательности на до пяти парах светодиодов (каждая пара состоит из зелёного и красного светодиодов) и на LED-линейке платы Linux Tibbo Project PCB (LTPP3) размера 3, Gen. 2.

Пары светодиодов

Канал для работы выбирается через свойство pat.channel. Первый канал (канал 0) является основным каналом системы. Он использует зелёный и красный светодиоды состояния платы LTPP3(G2).

Совет

Когда приложение Tibbo BASIC/C не запущено, зелёный и красный светодиоды используются для вывода различной информации о состоянии.

Остальные четыре канала (каналы 1-4) идентичны по функциям, но используют обычные линии ввода-вывода. Кроме того, свойства pat.greenmap и pat.redmap позволяют гибко назначить линии управления зелёным и красным светодиодами каждого канала на любые линии ввода-вывода LTPP3(G2).

Последовательность может содержать до 16 шагов. Каждый «шаг» может быть «-» (оба светодиода выключены), «R» (красный светодиод включён), «G» (зелёный светодиод включён) или «B» (оба светодиода включены). Также можно задать, будет ли последовательность проиграна один раз или зациклена и будет проигрываться бесконечно. Кроме того, последовательность можно проигрывать с нормальной, двойной или четверной скоростью.

Новая последовательность загружается методом pat.play. Если последовательность зациклена, она будет проигрываться, пока вы её не измените. Если последовательность не зациклена, она проиграется один раз, после чего генерируется событие on_pat. При входе в обработчик этого события свойство pat.channel автоматически устанавливается в номер канала, для которого возникло событие.

Светодиодные последовательности - удобный способ показать пользователю, что делает система. Для разных состояний устройства можно придумать разные последовательности.

Вот простой пример, в котором зелёный светодиод всё время включён, кроме момента нажатия кнопки. После нажатия зелёный светодиод выключается, а красный трижды быстро мигает. Кроме того, при запуске и зелёный, и красный светодиоды четыре раза мигают. В этом примере работаем с каналом 0:

void 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);
}
void on_button_pressed() {
	pat.play("*R-R-R-", PL_PAT_CANINT);
}
void on_pat() {
	if (pat.channel == 0) {	// Not really necessary since we are not using any other channels
		pat.play("~G",PL_PAT_CANINT);
	}
}

В примере выше последовательность при включении питания загружается внутри обработчика события on_sys_init. Она не зациклена, поэтому по окончании её проигрывания генерируется событие on_pat, и в обработчике этого события загружается «постоянная» последовательность «зелёный светодиод включён». Эта новая последовательность зациклена (обратите внимание на «~»). При нажатии кнопки загружается быстрая последовательность (обратите внимание на «*»): она заставляет красный светодиод трижды мигнуть. Эта последовательность тоже не зациклена, поэтому после её проигрывания снова генерируется событие on_pat и снова загружается «постоянная зелёная» последовательность.

LED-линейка

Объект pat. может управлять пятью синими светодиодами состояния платы LTPP3(G2). Последовательность для проигрывания загружается методом pat.playlb.

В этом простом примере при запуске приложения светодиоды по очереди включаются в цикле три раза. При нажатии кнопки проигрывается другая последовательность. Когда любая последовательность завершается, включаются все пять синих светодиодов.

void on_sys_init() {
	pat.playlb("L1L2L3L4L5L4L2L2L1L2L3L4L5L4L2L2L1L2L3L4L5L4L2L2L1*", PL_PAT_CANINT);
}
void on_button_pressed() {
	pat.playlb("L135L24L135L24L135L24L135L24L135L24L135", PL_PAT_CANINT);
}
void on_pat_ledbar() { pat.playlb("L12345~", PL_PAT_CANINT); }
Исходный материал Tibbo обновлён 22 марта 2023Оригинал на docs.tibbo.com · Сообщить об ошибке