· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› COM-Port в Win32 через стандартные API

Посл.отвђт Сообщенiе


Дата: Сен 8, 2003 09:19:52

Требуется помощь по программированию com-port`ов в среде
Win32 пользуясь стандартными API функциями
Если у кого есть, пришлите ПОНЯТНЫЙ !!!! исходник,
а то в flux.asm черт голову сломит.


Дата: Сен 8, 2003 11:05:42

А куда присылать?


Дата: Сен 8, 2003 13:04:26

Тебя интересует обмен через com вообще или используя модем? Если второе, то посмотри исходники модемных звонилок на HLL - от C до Васика, они все апишные. Там можно найти вполне понятные примеры как пользоваться GetCommState, WriteFile в com и т.д. Многие проверял - работает.


Дата: Сен 8, 2003 13:54:23 · Поправил: Valdis

Моё мыло
4242@mail.ru


Дата: Сен 8, 2003 14:00:43 · Поправил: Valdis

А ещё интересует как отловить ошибку по приему,
Ну например через ReadFile читаем блок длинной 100 байт,
а пришло только 97 и система тупо висит и ждёт ещё три байта. и.т.п.
Как избавится от этого (назначить что-то вроде TimeOutError) ???


Дата: Сен 8, 2003 15:49:14 · Поправил: Valery

А ты установи тайм-аут и читай по одному байту асинхронно (и если хоть что-то есть - обрабатывай) - у меня так проходило всегда. Впрочем, мой совет - читать поменьше - идеален, если ты ждешь короткие ответы от модема, типа "NO DIAL TONE" и складываешь в строку в буфере. Повторяю свой первый вопрос - что ты делаешь с com портом?


Дата: Сен 8, 2003 16:39:00

Программирование -- Работа с COM и LPT в Win32:
http://www.happytown.ru/prog/practika/com_win32.html


Дата: Сен 8, 2003 22:36:33

система тупо висит и ждёт ещё три байта. и.т.п.
Как избавится от этого (назначить что-то вроде TimeOutError) ???


Висеть в любом случае не будет (или почти в любом :) ... у драйвера порта есть таймауты, отсчет которых начинается только тогда(!), когда вызваются функции ReadFile или WriteFile и никогда более ... это не так очевидно, как может показатся, однако я долго заблуждался :)... Эти таймауты можеш настроить функцией SetCommTimeouts ... Исходников проффесиональных нет, только мои, но они весьма замучаные (самому бы в них разобратся, да и вообще с портом :)))... Кстати если заимееш таковые - поделись пожалуйста, только меня интересует не какой-нить примитив, типа послал-принял серию байтов, а че-нить проблемное вроде недавнего моего поста http://wasm.ru/forum/index.php?action=vthread&forum=7&topic=2287

А так ... - чего будет не ясно, спрашивай, помогу чем могу.


Дата: Сен 8, 2003 22:39:27

... или нет ;)))


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.035