Com порт

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 30 окт 2008.

  1. Гость

    Вопщем мне требуется "поговорить с ком портом" , погуглил нашел вот такие фичи CreateFile, WriteFile,ReadFile , попробовал но не могу поянть какой параметр к чему, точнее напишите ваши говорилки с ком портом с описанием плиз.. :) ,
    Пример задачи открыть порт, запустить чтение из него(причем ели нет входящих строк в течение определенного времени выбрасывать эксепшн) чтение производить асинхронное, и раз в n секунда писать какую нить команду.. Чтение из порта производить в потоке демоне..
    ПС: это не моя задача, просто я хочу увидить как это выглядит в Си , на жабе это у меня реализованно.. Кто сможет помочь , помогите пожалуста.. :blink:
     
  2. Гость

    Понял в чем у меня сложность , счас точный вопрос сформулирую:
    Какая функция реализует вот такие вещи(пример на java написан):

    [codebox]InputStream in = port.getInputStream();
    byte[] buff = new byte[in.aviable];//помойму так пишется[/codebox]


    Вопщем я не знаю какое количество байт ко мне прийдет , какая фунция говорит , что чтение закончилось, или ожидайте к примеру 20 байт , чтоб в ReadFile , в поле по количеству чтения выставить точной количество байт ответа с ком порта , помойму вот так вопрос звучит?!
     
  3. zubr

    zubr Гость

    Кирзач
    Сложно отвечать на вопросы человеку, когда он не в теме.
    Советую
    1. Почитать книжку "Последовательные интерфейсы ПК. Практика программирования" П.Агуров. В сети есть в электронном виде.
    2. MSDN. Там тоже есть примеры работы с COM-портами.
     
  4. Гость

    Так есть какой нить метод ? :)
     
  5. zubr

    zubr Гость

    Есть несколько методов. Все зависит от реализации протокола обмена данными. Все возможные методы хорошо описаны у Агурова.
     
  6. Гость

    Thanks , за настойчивость , читаю книжку , зачетно написано. :)
     
  7. Гость

    Делаю так , но не работает..

    [codebox]
    TComStat statusBytes ;
    long AviableBytes =statusBytes.cbInQue;
    ShowMessage("BytesAviable:"+(AnsiString)AviableBytes);


    [/codebox]
    Какой еще вариант есть?
     
  8. Kmet

    Kmet Well-Known Member
    Java Team

    Регистрация:
    25 май 2006
    Сообщения:
    1.018
    Симпатии:
    1
    выкинуть сибилдер... я серьезно
     
Загрузка...

Поделиться этой страницей