А як дізнатися як завершує команди мій пульт?
Їх завершується не пульт, а драйвер. Незалежно від пульта.
Прибери ось ці рядки:
if ch = # 255 then inc (k)
else begin
і отримаєш все, що посилає драйвер.
У мене вони вставлені, щоб розділяти одну комманду від іншої, тому що вони йдуть в порт суцільним потоком і, якщо тримати кнопку пульта, то функція нічого не поверне, поки її не відпустиш - читає поки дані йдуть.
Для цього і вставлено умова на два # 036; FF - щоб повертала дані з нарізкою покоммандно.
Не думаю, що нарізка буде інша, але всяке буває.
Чи реально таким пультом управляти комп'ютером, написавши софтину?
Для цього і пишеться.
Стандартний IrDA порт обслуговується іншим драйвером і призначений для з'єднання пристроїв за своїм протоколом.
Даний код тут неприйнятний.
Цей код для портів, драйвер яких створено для приймання сигналів, а не забезпечення сеансів.
Пульт ДУ ніколи не стане встановлювати сеанс.
Як бути тоді?
І чи реально вобще пультом ДУ управляти комп'ютером через ІК порт?
Потрібно купити ІК порт для пульта.
У мене то взагалі завдання ідентифікувати пульт по його натискання.
тобто беремо лівий пульт на якому взагалі нічого не написано, натискаємо їм "в комп'ютер" а той нам і каже: це мовляв від такого-то телика або там відика тощо.
Це не складно.
Наприклад пульти від LG дають однакову сигнатуру.
Для більшості фірм те ж саме.
У мене цей код визначав сигнатури від будь-яких пультів.
Причому сигнатура пульта вентилятора була 32 байта. А від телевізора 4 байта.
Але потрібно буде створити базу сигнатур різних пультів.
Подивіться тут .
Це не приклад, а два готових продукту. Один для управління комп'ютером від пультів. А другий, ідентіфіцірнует пульти. Має БД пультів різних марок.