Выплескивание эмоций

Тема в разделе "Флудилка", создана пользователем alp69, 15 окт 2016.

  1. DetSimen

    DetSimen Guest

    Си бывает от Микрософта, от Борланда, от Интела и т.д. и у всех функции биб-ки для работы с COM-портом - с.ка, разные.
     
  2. akl

    akl Гуру

    кодблокс с mingw. программа для сокетов вроде нормально получилась, а тут с компортом непонятно как хорошо сделать асинхронность
     
  3. DetSimen

    DetSimen Guest

    за mingw ничо не скажу. нинаю.
     
  4. akl

    akl Гуру

    дак винАПИ он же вроде один и тот же не?
     
  5. parovoZZ

    parovoZZ Гуру

    а в винде их нет изначально???
     
  6. akl

    akl Гуру

    в винде по умолчанию (в winbase.h например) есть куча всего для ком порта, почти всё что мне надо там есть, затык только в том как правильно отлавливать события в ком-порте. как уже писал, по идее должно быть стандартное сообщение WM_COMMNOTIFY, но оно числится как устаревшее, и какая-то функция с ним связанная которая якобы раньше была, теперь отсутствует и вообще с этим как-то непонятно.

    конечно можно тупо запустить таймер и 100 раз в секунду например проверять что там в порте, но это мне кажется не очень хорошо
     
  7. DetSimen

    DetSimen Guest

    Есть, канеш. В деццтве я работал через обычный CreateFile, но как добывалась асинхронность, не упомню.
     
  8. DetSimen

    DetSimen Guest

  9. akl

    akl Гуру

    это читал, там в примере используется WaitForSingleObject(), что как мне кажется нифига не асинхронность, т.к. оно тупо останавливается и ждет пока не придут данные или пока не пройдет время. Наверно с многопоточностью это будет правильнее, но в многопоточности я не шарю и не думаю что это лучшее решение.
     
  10. SergeiL

    SergeiL Оракул Модератор

    А если это в thread запихать?
     
  11. akl

    akl Гуру

    вот и получается что пока вариант (кроме теребоньканья таймером) - создать отдельный поток который будет сидеть и ждать событий в ком-порте, а потом что-то с этим делать. Но я это пока не начал изучать, и еще мне казалось, что должно быть какое-то более простое решение по типу WSAAsyncSelect, только не для сокетов, а для компорта.
     
  12. parovoZZ

    parovoZZ Гуру

    но ведь драйвер в виндах блокирует ком-порт? Соответственно, там нет никакой очереди и FIFO, потому нет и асинхронности. Или я чушь прекрасную несу?
     
  13. SergeiL

    SergeiL Оракул Модератор

    Чушь!
     
  14. SergeiL

    SergeiL Оракул Модератор

    По таймеру не правильно - задержки. :)
    В многогозадачных системах, особенно реального времени, все ждет событий.
    Дальше все по приоритетам обрабатывается.
     
  15. timon

    timon Гик

    vt100 забодал! тут ескейп а тут просто код! определися уже, стандарт блин )))
     
  16. ИгорьК

    ИгорьК Гуру

    Мое новое Ардуино:

    SmartSelect_20191125-003447_Gmail.jpg
     
    alp69, SergeiL, DetSimen и 3 другим нравится это.
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    В 80-х интенсивно "сморкалась" (то бишь обсуждалась очередная кампанейщина) тема АРМ (автоматизированное рабочее место). В числе прочих обсмаркивалось встраивание модема в рабочий стол. Эта фигня называлась - СТОЛЕМ. Не знаю, в шутку или всерьёз. Вы решили сделать АРДУИНОТЭЙБЛ, или там - СТОЛАРДУЙ, во.
     
    Последнее редактирование: 25 ноя 2019
  18. parovoZZ

    parovoZZ Гуру

    Гроб для ардруино? Похвально! Весьма.
     
  19. issaom

    issaom Гуру

  20. akl

    akl Гуру

    у меня работает. ростелеком