WinLIRC работает по IP-протоколу. Поэтому с помощью одного ПДУ и одного приемника можно управлять хоть сотней компьютеров. Программы, которые работают с WinLIRC подключаются через 8765 порт. Сигналы, посылаемые WinLIRC другим программам чрезвычайно малы - от 20 до 30 байт. Экспериментальным путем установлено, что распознавание сигналов, идущих от приемника, гораздо лучше работает на Windows 2000, XP (т.е. NT-платформах), чем на Windows 9x и ME. Вероятно, это связано с разным механизмом работы COM-портов и с разным алгоритмом распределения вычислительных способностей компьютера. Для примера - эффективность распознавания на Windows 98 составляла около 40-50 %, при идеальных условиях (минимальное расстояние от ПДУ до приемника, новые батарейки в ПДУ и т.д.), на Windows XP этот показатель стремился с 100 % при любых условиях. Для начала проверьте, существует ли файл конфигурации для вашего пульта. Для этого идем на http://lirc.sourceforge.net/remotes/. Ищем там свой пульт. Если не удалось найти точно вашей модели, скачайте несколько конфигураций для сходных по наименованию моделей пультов. Очень возможно, что вам повезет. 
WinLIRC сидит в трее. Дважды щелкните по значку WinLIRC в трее и нажмите кнопку "Reconfigure". Укажите порт, на который вы подключили приемник (COM1, COM2 и т.д.), опция "Receiver type" должна быть "DCD". "Speed" - "115200" (по умолчанию) "Sense" - "autodetect" (по умолчанию). Для начала проверим, работает ли КомандIR. Для этого нажмите кнопку "Raw Codes" и пощелкайте в приемник кнопкой пульта. Побежали надписи с цифрами? Тогда все работает! Если не побежали, тогда у вас что-то не так (сели батарейки в пульте, отключен в BIOS COM-порт, неисправен пульт или КомандIR), проверьте все. Я надеюсь, цифры у вас побежали? Тогда нажмите кнопку "Browse..." выбирайте файл конфигурации вашего пульта. Жмите "OK", затем "Hide window". Теперь все готово. Следующие несколько абзацев не для вас, но прочитать их все же стоит. Если готовый файл конфигурации найти не удалось, придется обучить программу своему пульту самостоятельно. Делаем вот что: 1. В строке "Config" пишете "my_tv_remote.cf" (это для примера, в идеале укажите модель своего пульта, например "vm201.cf"). В этот файл конфигурации будет записываться настройка вашей дистанционки. 2. Нажимаете кнопку "Learn". Появится сообщение: This will record the signals from your remote control and create a config file for WinLIRC. Please enter a name for this remote. Это WinLIRC спрашивает название вашего пульта. Указывайте все данные в программе цифрами или латинскими буквами без пробелов. 3. When learning and analyzing signals, a margin of error is used in order to handle the normal variations in the received signal. The margin of error ranges from 1% to 99%. The default is 25%, but larger values might be necessary depending on your hardware and software. If you are having trouble using your remote, try increasing this value. You may enter the allowable margin of error now, or press ENTER to use the default. Desired margin of error for this remote? (1-99, enter=25) Пока для вас это не интересно - нажмите "Enter". Это нас спрашивают про допустимый уровень ошибок. 4. Step One: Determine signal gap, signal length, and repeat codes. -------------------------------------------------------- You will be asked to press an arbitrary button a number of times. Please hold it in for at least one second each time, and wait at least one second between keypresses. If you want to manually enter a signal gap and signal length, you may do so now (ie, "31000 52"). Otherwise, just hit ENTER. Gap and length? Нажмите "Enter", не парьтесь. ;-) 5. Press a button. Нажмите и отпустите любую кнопку на пульте. Please wait a second and press it again. Через секунду и нажмите и отпустите её опять. Появится строчка Baseline initialized. Теперь нажимаем эту же кнопку десять раз, в скобках указано сколько раз осталось. Please wait a second and press a button again (10 left) Please wait a second and press a button again (9 left) Please wait a second and press a button again (8 left) Press a button. 6. В итоге появится такая надпись: This is a signal-repeating remote with no special repeat code. Holding down the button can quickly yield many copies of that button's code. Therefore, 64 samples of each button will be taken. You will be prompted to enter each button's name in turn. To finish recording buttons, enter a blank button name. 7. Теперь надо обучить WinLIRC всем кнопкам дистанционке. Делается это так - вас спрашивают Button 1 name? (имя первой кнопки)? Пишете название цифрами или латинскими буквами без пробелов, лучше заглавными буквами. Указывайте то слово или цифру, которые есть на пульте. Например: "1", "STOP", "REW", "CH+", "VOL-", "MUTE" и т.д. и т.п.. После этого жмете на кнопку в течение нескольких секунд. В окошке будут бежать цифры, примерно вот так: Baseline initialized. matches=64, faults=19 Жмите, пока matches не дойдёт до 64. Чем меньше будет faults (ошибок), тем лучше, разумеется. 8. WinLIRC вас спросит имя второй кнопки - пишем имя второй кнопки. И так работаем пока не закончатся все кнопки на пульте. Когда кнопки закончатся, не вводя название, нажмите "Enter". Появится сообщение "Configuration written successfully, don't forget to analyze". 9. Жмете кнопку "Analyze", на что получаете "analysis successfully". Теперь все готово. Нажимаете "OK", затем "Hide window". После запуска настроенного WinLIRC в System Tray появится индикатор состояния в виде маленькой лампочки. Серый цвет сигнализирует о готовности принимать команды с пульта ДУ, красный, как не трудно догадаться, — о ошибке в настройках, зеленый — о успешном распознании нажатой клавиши ДУ, желтый — о инициализации (открытии) порта, синий — о передаче команды, например, бытовой технике. Сам по себе WinLIRC никаких действий не производит. Он выступает сервером, распознающим команды, посылает имена этих команд клиентам, которыми являются прикладные программы, и, таким образом, предоставляет программам доступ к любому пульту ДУ. Т.е. WinLIRC позволяет избежать программно/аппаратной привязанности к конкретному принимающему устройству и пульту, и в то же время он предоставляет стандартизированный способ получать эти самые команды, этим самым избавляя программистов от необходимости изобретать велосипед и от лишней головной боли.
|