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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависание при подключении к Com модему 
:(
    Опции темы
vie
Дата 17.4.2010, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Форумчане, прошу помогите...

Есть usb-модем опсосов HUAWEI "проецируется" на COM7
Так вот написал программу, которая соединяется с модемом и позволяет мне звонить или отправлять СМС с него, но вот проблема, программа зависает когда я подключаюсь к модему, ЕСЛИ я его НЕ "Опросил"(через диспетчер устройств) или НИ РАЗУ не выходил в интернет, ДО ТОГО как вставил модем в порт. Если это сделать то ОНА ПОЛНОСТЬЮ РАБОТАЕТ. 

Привожу кусочек проблемной части программы
Код

void OpenPort()
{
    if (hCom != INVALID_HANDLE_VALUE)
    {
        ClosePort();
        Sleep(300);
    }

    GetDlgItemTextA(hWnd, IDC_COMBO1, ModemPort, 6);

    char ComPort[10];
    lstrcpyA(ComPort, "\\.\\\\");
    lstrcatA(ComPort, ModemPort);

    hCom = CreateFileA(ComPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    
    if (hCom == INVALID_HANDLE_VALUE) SetDlgItemTextA(hWnd, IDC_EDIT5, "failed to open port");
    else  
    {
        SetDlgItemTextA(hWnd, IDC_EDIT5, "port successfully opened");
        
        hThread = CreateThread(0, 0, ReadThread, (LPVOID)hWnd, 0, 0);

        DCB dcb;
        memset(&dcb, 0, sizeof(dcb));
        dcb.DCBlength = sizeof(dcb);
        MessageBoxA(0, "Щас может зависнуть :(\nЧтобы этого не произошло:\
            \n Войдите хоть раз в интернет либо опросите модем ч/з диспетчер устройств.",
            "Bug", MB_OK | MB_ICONASTERISK );

        // При вызове GetCommState она и зависает...

        if(!GetCommState(hCom, &dcb)) SetDlgItemTextA(hWnd, IDC_EDIT5, "Error of get data about port");
        // Если закоментить GetCommState то прожка зависнет на SetCommState и т.д...
        dcb.BaudRate = CBR_57600; //460800;
        dcb.ByteSize = 8;
        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT;

        if (SetCommState(hCom, &dcb)) SetDlgItemTextA(hWnd, IDC_EDIT5, "Configuring OK");
        else SetDlgItemTextA(hWnd, IDC_EDIT5, "Configuring Error");
    }
    return;
}


знаете как это можно исправить? Или мне искать мануалы на английском, которых в открытом доступе скорее всего не будет :( Если они есть то можно и на них ссылочку...
PM MAIL   Вверх
vie
Дата 22.4.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос отпал сразу после полного анализа моего кода и удаления с него строчки создания потока на чтение.  smile 
(Да как я на нее раньше внимание не обратил только голову Вам зря заморочил, простите)
Тему можно прикрыть
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.1273 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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