как читать из com-порта?

Тема в разделе "WASM.WIN32", создана пользователем redsh, 21 авг 2008.

  1. redsh

    redsh New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    20
    хочу сделать что-то вроде терминала, т.е. чтобы данные, приходящие в порт сразу же печатались на экране, при этом программа не должна зависать на время ожидания данных. можно ли реализовать это без тредов, таймеров и прочих извращений?
     
  2. iceaxe

    iceaxe New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2007
    Сообщения:
    14
    Привет. Ответ - нет. И вообще "с извращениями" - это основной путь кодинга под винду, ты разве не знаешь?:))))

    Если серьезно, то в винде можно работать с com-портом (и не только) используя обычные функции CreateFile, Write/ReadFile. Есть функции для работы с параметрами порта. А еще есть чудесная функция WaitCommEvent (ожидание событий порта), которую я как токо не вызывал, какие токо мануалы не курил - она все равно чихать хотела на все события порта.
    Поэтому читать данные из порта приходится в цикле, а цикл выносить в "извращенский поток".

    Рекомендую по теме книжку "Нестандартные приемы программирования на Delphi" Юрия Ревича, глава 20.
    Можно взять на http://all-ebooks.com ТОЛЬКО ДЛЯ ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЕЙ!!!! :)))