Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Win & блокирующий/неблокирующий / 13 сообщений из 13, страница 1 из 1
14.10.2008, 17:34
    #35594140
TheOne_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
Пишу программу для работы с COM-портом. Подскажите как под Win переключить блокирующий/неблокирующий режим работы. Есть ли аналог линуксявого select в винде?

Заранее благодарен!
...
Рейтинг: 0 / 0
14.10.2008, 17:37
    #35594148
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
так select же есть в винде

на студии пишешь?
...
Рейтинг: 0 / 0
14.10.2008, 17:53
    #35594193
TheOne_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
Поставил Microsoft Visual C++ 2008 Express.
...
Рейтинг: 0 / 0
14.10.2008, 17:54
    #35594199
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
Так должен быть селект смотри WinSock.h

На счет блокирующего смотри режимы открытия. В линуксе так устанавливаются, может быть и в винде.
...
Рейтинг: 0 / 0
14.10.2008, 17:56
    #35594220
TenkfM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
Тут все написано, если верно понял

----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)
...
Рейтинг: 0 / 0
14.10.2008, 17:58
    #35594226
TheOne_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
нашел вот...
http://book.itep.ru/7/sock_71.htm

но чтото все про сокеты... под nix сокеты, порты вводы вывода все, условно- int fd; В винде есть отличия сокет это или коммуникационный порт?
...
Рейтинг: 0 / 0
14.10.2008, 18:00
    #35594239
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
TenkfM Тут все написано, если верно понял

----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)

я, например, не нашел. Если это рассматривать как собственную интерпритацию посиксного управления терминалами (куда входит ком порт), то здесь, похоже, даже нет установки/снятия канонического режима.
...
Рейтинг: 0 / 0
14.10.2008, 18:02
    #35594249
clihlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
select из WinSock предназначен вроде только для сокетов.

Для комм портов для асинхронного ввода вывода вроде бы юзать OVERLAPPED параметр у функций ReadFile / WriteFile
...
Рейтинг: 0 / 0
14.10.2008, 18:06
    #35594259
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
TheOne_нашел вот...
http://book.itep.ru/7/sock_71.htm

но чтото все про сокеты... под nix сокеты, порты вводы вывода все, условно- int fd; В винде есть отличия сокет это или коммуникационный порт?

честно говоря, я селект для ком порта в винде не применял. Что селект в винде есть - это точно, для сокетов работает - тоже сто процентов.

Вообще, WinSock как когда-то кто-то говорил (Глюк, вроде) Бил спер в BSD для реализации сокетов, следовательно, разумно предпологать, что с ком портами они не пересекаются, и, вполне возможно, работать не будет.

Лучше тебе искать литературу по программированию COM-портов в винде, а не основываться на информации из линукс. Если что-то встретишь похожее - хорошо, а основные понятия могут в корне расходиться.
...
Рейтинг: 0 / 0
14.10.2008, 18:06
    #35594266
TheOne_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
TenkfM Тут все написано, если верно понял

----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)

Отличная ссылка! Спасибо!

Наверное мне надо чтото типа Этого
...
Рейтинг: 0 / 0
14.10.2008, 18:17
    #35594300
TenkfM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
SetCommTimeouts - Проставляет таймауты при работе с портом.
Напр.:
Код: plaintext
1.
2.
3.
4.
5.
6.
   COMMTIMEOUTS timeouts={ 0 };
   timeouts.ReadIntervalTimeout          = MAXDWORD;
   timeouts.ReadTotalTimeoutMultiplier   =  50 ;
   timeouts.ReadTotalTimeoutConstant     =  50 ;
   timeouts.WriteTotalTimeoutConstant    =  0 ;
   timeouts.WriteTotalTimeoutMultiplier  =  0 ;
   SetCommTimeouts( hCOM, &timeouts );


----------------------------------------------
«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» (с)
...
Рейтинг: 0 / 0
14.10.2008, 18:30
    #35594335
TheOne_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
Всем огромное спасибо! Не ожидал такой оперативной помощи!
...
Рейтинг: 0 / 0
14.10.2008, 20:04
    #35594464
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Win & блокирующий/неблокирующий
AkhТак должен быть селект смотри WinSock.h

На счет блокирующего смотри режимы открытия. В линуксе так устанавливаются, может быть и в винде.

select действительно есть в winsock в видне. Но он работает ТОЛЬКО с сокетами TPC/IP.
С простыми файлами он не работает.

На сколько я помню, для цели ожидания готовности файлового дескриптора для операций ввода-вывода
можно использовать WaitForSingleObject и его аналоги. Или ещё какие-то другие функции.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Win & блокирующий/неблокирующий / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]