Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа Com-портом на WinAPi, ошибки при подключении 
:(
    Опции темы
Klotilda
Дата 6.8.2015, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



Здравствуйте! Пишу программу для ком-порта.  В программе есть 2 файла .cpp-main.cpp settings.cpp. В файле main.cpp происходит передача и прием данных с порта. В settings.cpp -настройка и подключение к порту.
Когда пытаюсь отправить файл, появляется ошибка "the handle is invalid". когда тестирую настройки с помощью дебаггера, появляется ошибка "Unable to configure the serial port". помогите, пожалуйста, разбраться что не так.  

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Settings.cpp 9,32 Kb
PM   Вверх
Romikgy
Дата 6.8.2015, 18:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



так оба файла и давайте ... для чего полумеры?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Klotilda
Дата 6.8.2015, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



пожалуйста

Добавлено через 38 секунд
и еще файл main.h

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Settings.cpp 7,42 Kb
PM   Вверх
Klotilda
Дата 6.8.2015, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



Очень прошу помочь

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  main.h 0,93 Kb
PM   Вверх
xvr
Дата 7.8.2015, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Где main.cpp ?

PM MAIL   Вверх
Klotilda
Дата 7.8.2015, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



загрузился

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  main.cpp 18,35 Kb
PM   Вверх
xvr
Дата 7.8.2015, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Как то у вас все очень запутанно  smile 
Порт нормально открывается?

Поставьте точку останова (в дебагере) внутри функции CreatePort, посмотрите, что вернул CreateFile
Пройдите по шагам всю инициализацию порта.
Потом поставьте точку останова в FormatOfCommand::SentToComPort, посмотрите, что в hPort лежит

PM MAIL   Вверх
Klotilda
  Дата 7.8.2015, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



порт открывается. В переменной hPort находится адрес 0X00000bc. Функция возвращаает 0. Код очень громозкий. Это потому что я новичок
PM   Вверх
xvr
Дата 10.8.2015, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



В приведенном коде криминала не видно (это не значит, что его там нет - это возможно значит, что его сложно там найти из за громоздкости кода  smile )

Проверьте, приходит ли тот же самый hPort в места, где получается ошибка. И еще проверьте, не закрыли ли вы где то порт (CloseHandle) по дороге

PM MAIL   Вверх
Klotilda
Дата 10.8.2015, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.3.2015

Репутация: нет
Всего: нет



С этим проблем нет. Я переписала ф-цию.
Код


bool ComPortSettings(void)
{
    DWORD err;
    if (!GetCommState (hPort,&MyDcb))//if (!SetCommState (hPort,&MyDcb))
    {
        err=GetLastError();
        MessageBox(0,"Unable to configure the serial port",0,MB_OK);
        return false;
    }
    else 
    {
        MyDcb.BaudRate = dcbset.BaudRate;
        MyDcb.ByteSize=dcbset.Bytesize;
        MyDcb.Parity=dcbset.ParityScheme;
        MyDcb.StopBits=dcbset.Stopbits;
        return true; 
    }
}  


Данные вроде отправляются. Но вот если сразу после отправки данных считать их с этого же порта, записывается 0
PM   Вверх
xvr
Дата 10.8.2015, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(Klotilda @  10.8.2015,  13:16 Найти цитируемый пост)
Но вот если сразу после отправки данных считать их с этого же порта, записывается 0 

Это нормально. COM порт вещь довольно медленная. Так что данные, посланные а ответ на что то, придут спустя некоторое время (если вообще придут)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.