Форум программистов, компьютерный форум CyberForum.ru

Не выполняется SetCommState - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
NiТR0
0 / 0 / 0
Регистрация: 22.08.2011
Сообщений: 18
23.11.2011, 13:31     Не выполняется SetCommState #1
Ребята, проблема. Помогите, кто может.
Я вручную заполняю структуру DCB для настройки COM-порта, а SetCommState не выполняется и FormatMessage говорит что "Неверная ф-ия".
Синхронный режим, хэндл беру нормально, грешу на структуру DCB, но что в ней может быть не так? Спасайте, народ.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
BOOL WorkComm(int NumCommPort)
{
HANDLE HandleCommPortPrinter;
char strNumCommPort[5] = "";
DCB dcb;
 
ZeroMemory(&dcb, sizeof(DCB));
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate = CBR_57600;
dcb.fBinary = true;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY;
// Если XoffChar и XonChar равны, то SetCommState выдаёт ошибку:
// The SetCommState function fails if the XonChar member of the DCB structure is equal to the XoffChar member.
// Поэтому делаю так:
dcb.XoffChar = 0;
dcb.XonChar = 1;
 
sprintf(strNumCommPort, "COM%i", NumCommPort);
HandleCommPortPrinter = CreateFile(strNumCommPort, GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, 0, NULL);
 
SetCommState(HandleCommPortPrinter, &dcb);
...
Close(HandleCommPortPrinter);
return true;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 13:31     Не выполняется SetCommState
Посмотрите здесь:

C++ Не выполняется сортировка
C++ Не выполняется realloc
C++ Код не выполняется в одном месте, но выполняется в другом
C++ Не выполняется условие
C++ Не выполняется условие!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiТR0
0 / 0 / 0
Регистрация: 22.08.2011
Сообщений: 18
23.11.2011, 16:55  [ТС]     Не выполняется SetCommState #2
Вопрос решён.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
23.11.2011, 18:20     Не выполняется SetCommState #3
каким образом?
NiТR0
0 / 0 / 0
Регистрация: 22.08.2011
Сообщений: 18
23.11.2011, 18:26  [ТС]     Не выполняется SetCommState #4
Порт нельзя конфигурировать, если на нем стоит драйвер, т.е. он занят.
Ничего хорошего правда, но главное - до истины добрался!
Yandex
Объявления
23.11.2011, 18:26     Не выполняется SetCommState
Ответ Создать тему
Опции темы

Текущее время: 12:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru