![]() |
Страницы (2): [1] 2 » Показать все 17 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- COM порт не открывается (https://hlfx.ru/forum/showthread.php?threadid=3515)
COM порт не открывается
В общем, суть вопроса вот в чем. Я открываю СОМ порт.
condev = CreateFile(portName.c_str(), GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); |
DCB dcb = {0}; |
if (condev == INVALID_HANDLE_VALUE) { CloseHandle(condev); ShowMessage("Не удалось открыть порт"); } else бла бла остальной код программы{ |
__________________
I tell you to enjoy life
__________________
Помнится с комами был аналогичный занятный глюк модемов. То есть зависнет, пока не перезагрузишь - фиг зайдешь в интернет.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
i=StrToInt(Text); |
const AnsiString portName = "COM"+IntToStr(i); |
condev = CreateFile("COM3",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); |
__________________
I tell you to enjoy life
Может, дело в OPEN_EXISTING? Что если убрать?
__________________
__________________
I tell you to enjoy life
AntiPlayer
Возможно, проблема вовсе не в том коде, что ты привёл.
А может быть, проблема вообще в системе.
__________________
Мб ты его не закрываешь....
__________________
I tell you to enjoy life
__________________
XaeroX
Скорее всего ты прав. Буду шаманить с настройками dcb.
__________________
I tell you to enjoy life
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
PomanoB
А ну так это, глюк проявляется сразу после перезагрузки компа. То есть порт никто и не открывал, не вижу смсла его закрывать. Но ради эксперимента попробую.
__________________
I tell you to enjoy life
В общем разобрался.
Порт действительно надо инициализировать. Но по каким-то причинам инициализация порта не происходила при сохранении параметров командой SetCommState. Почему - не знаю, уже не было времени отлавливать баг. Но его придется отлавливать позже.
пришлось в принудительном порядке конфигурировать порт с помощью cmd команд. В итоге при запуске программы запускается .bat файл с командами:
mode com% baud=9600 stop=2 data=8 parity=n
Костыли, такие костыли. Не удивлюсь если это "прикол" собственно RAD Studio
__________________
I tell you to enjoy life
Временная зона GMT. Текущее время 20:52. | Страницы (2): [1] 2 » Показать все 17 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024