Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AT-команды, как посылать? 
:(
    Опции темы
ksili
Дата 26.1.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



Нашёл много разных описаний команд управления модемом (AT-команды). Но нигде не сказано как же их собственно посылать. Вроде где-то видел какую-то прогу на ассемблере, но там было прямое использование портов, а мне надо под WinXP.
Как же всё-таки управлять модемом из Сишной программы?
PM MAIL   Вверх
Romikgy
Дата 26.1.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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





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

PM   Вверх
ksili
Дата 29.1.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



Да уж... Содержательный ответ. Давайте тогда сразу по нажатию кнопки "Новая тема" посылать на Google.  smile Посмотрел первые 4 страницы результатов поиска, та же засада - все примеры под DOS или Win9x.

Мне вообще надо знать как это сделать в Builder'e. Какие есть хорошие компоненты для работы с последовательными портами? Вроде есть TComPort для Delphi, но я читал плохие отзывы о нём.
Да я бы мог и напрямую без компонента, если бы кто-нибудь ответил на изначальный вопрос. Хотя бы кусок кода, как перевести модем в командный режим и послать ему конкретную команду.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Romikgy
Дата 29.1.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



ksili, ну так и покажи что наваял,
и скажи что здесь и здесь у меня ошибка, и будем разбиратся,
а в ссылке были книги , где есть примеры программирования модемов, или ты не это спрашивал?


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

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

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



Цитата(ksili @  29.1.2007,  12:31 Найти цитируемый пост)
как перевести модем в командный режим

Послать "+++".

Цитата(ksili @  29.1.2007,  12:31 Найти цитируемый пост)
и послать ему конкретную команду.

Берешь и посылаешь smile . 
Цитата(ksili @  29.1.2007,  12:31 Найти цитируемый пост)
Хотя бы кусок кода

Как у меня появится время напишу тебе пример.


Это сообщение отредактировал(а) ptr - 29.1.2007, 13:48


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
ptr
Дата 31.1.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

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



Вот тебе пример:
Код

    HANDLE hCom = CreateFile( "\\\\.\\your modem",   //"\\\\.\\COM3"
        GENERIC_READ | GENERIC_WRITE, 0,
        NULL, OPEN_EXISTING, 0, NULL);

    if (INVALID_HANDLE_VALUE==hCom) 
    {
        cout<<"CreateFile failed with error "<<GetLastError()<<endl;
        return -1;
    }
    char buffer[1024]={0};
    DWORD dwRead, dwWritten;
    if(0==WriteFile(hCom, "ATI3\r", strlen("ATI3\r"), &dwRead, NULL))
    {
        cout<<"error! "<<GetLastError()<<endl;
        CloseHandle(hCom);
        return -1;
    }
    if(0==ReadFile(hCom, buffer, sizeof(buffer), &dwWritten, NULL))
    {
        cout<<"error! "<<GetLastError()<<endl;
        CloseHandle(hCom);
        return -1;
    }
    cout<<buffer<<endl;
    CloseHandle(hCom);


Это сообщение отредактировал(а) ptr - 31.1.2007, 16:31


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
ksili
Дата 1.2.2007, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



ptr, спасибо.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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