Почему через IrDA нельзя принимать команды ИК дистанционного управления


         

Практика


Если в момент считывания стопового бита в ИК фоне попадется импульс, байт не примется. См. рисунок (B). Таким образом в случае неправильного приема одного или нескольких байтов RX CHAR EVENT может возникнуть в точке (1), (2) или (3). Мало того RX CHAR EVENT может возникнуть несколько раз в течение одного информационного импульса с дистанционки, например в точках (1) и (3). Наиболее вероятен безошибочный прием байта, перекрывающего окончание информационного импульса с дистанционки (на стоповый бит не попадет никакого импульса).

Все это относится к случаю, когда для анализа команды с дистанционки используется плагин DCD (принцип работы аналогичен WinLIRC). Плагин UIR вообще не имеет понятия о кодировках различных пультов, от тупо анализирует последовательность принятых байтов. Вероятность того что для одной и той же команды пульта IrDA будет давать одинаковые байты очень маленькая. Результат, например, может меняться от расстояния между IrDA приемником и пультом. И наоборот для разных команд пульта могут быть получены одинаковые байты.

Вывод: при определенной частоте ИК фона (т.е. при определенной модели дистанционки) с большой натяжкой IrDA можно использовать для приема команд ДУ с pulse-distance модуляцией и при относительно коротких импульсах, ориентируясь при этом по времени между RX CHAR EVENT (плагин DCD). IrDA невозможно использовать для приема ИК команд от дистанционок с другим типом модуляции, а так же если в командах присутствует длинный первый информационный импульс, что встречается довольно часто.




Содержание  Назад  Вперед