Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Передача AT-команд модему на примере поднятия модемом трубки

Delphi , Интернет и Сети , Dial-up



Автор: Владимир
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Данная процедура показывает как передавать AT команды модему.
Передача команд осуществляется через файл .
В данном примере передается команда 'ATH1' поднять трубку
(можно послушать разговор на линии )
Переменная hCommFile объявляется на уровне модуля.

Ограничением к применению является активные программы держущие порт модема
открытым (факс,некоторые терминальные программы )

Зависимости: Messages, SysUtils
Автор:       Владимир, P.V@inetcomm.ru
Copyright:   Компакт диск неизвестного происхождения
Дата:        8 июня 2002 г.
***************************************************** }

procedure upmodem;
var
  PhoneCommand: string;
  CommPort: string;
  NumberWritten: cardinal;
begin
  PhoneCommand := 'ath1' + #13 + #10; //Поднять трубку
  CommPort := 'COM1';

  //-------------------Открыть порт как файл}

  hCommFile := CreateFile(PChar(CommPort),
    GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    0);
  if hCommFile = INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open ' + CommPort);
    exit;
  end;

  //-------------Выполнить команду по средству записи в файл

  NumberWritten := 0;
  if WriteFile(hCommFile,
    PChar(PhoneCommand)^,
    Length(PhoneCommand),
    NumberWritten,
    nil) = false then
  begin
    ShowMessage('Unable to write to ' + CommPort);
  end;
end;

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
  upmodem;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  CloseHandle(hCommFile); //закрыть файл
end;

Пример программирования на языке Delphi, демонстрирующий отправку команд AT модему с помощью функций CreateFile и WriteFile. Пример показывает, как открыть порт модема как файл, записать в файл команду AT и закрыть файл.

Разбивка кода:

  1. Процедура upmodem определена на верхнем уровне модуля.
  2. Процедура объявляет три переменные: PhoneCommand, CommPort и NumberWritten. Переменная PhoneCommand задается строкой 'ath1' + #13 + #10, которая является командой AT для поднятия модема (т.е., отключения). Переменная CommPort задается строкой 'COM1', которая является именем порта сериальной связи.
  3. Процедура использует функцию CreateFile для открытия порта модема как файла. Функция принимает несколько параметров, включая:
    • PChar(CommPort): Имя файла для открытия (т.е., порта сериальной связи).
    • GENERIC_WRITE: Тип доступа, желаемый в этом случае (только для записи).
    • 0: Длина файла (не используется в этом примере).
    • nil: Указатель на буфер для чтения из файла (не используется в этом примере).
    • OPEN_EXISTING: Режим открытия файла (если файл существует, использовать его; иначе, создать его).
    • FILE_ATTRIBUTE_NORMAL: Атрибуты файла (в этом случае, нормальные).
    • 0: Резервный параметр (не используется в этом примере).
  4. Если файл не может быть открыт, отображается сообщение с ошибкой.
  5. Процедура затем записывает команду AT в файл с помощью функции WriteFile. Функция принимает несколько параметров, включая:
    • hCommFile: Указатель на открытый файл (т.е., порта сериальной связи).
    • PChar(PhoneCommand)^: Указатель на буфер строки, содержащей команду AT.
    • Length(PhoneCommand): Длина буфера строки.
    • NumberWritten: Переменная, которая будет хранить количество байтов, записанных в файл.
    • nil: Указатель на буфер для чтения из файла (не используется в этом примере).
  6. Если операция записи неудачна, отображается сообщение с ошибкой.

Пример также включает два процедуры событий:

  1. Процедура Button1Click вызывается при клике на первый кнопку на форме. Она вызывает процедуру upmodem, чтобы отправить команду AT модему.
  2. Процедура Button2Click вызывается при клике на вторую кнопку на форме. Она закрывает файловый указатель с помощью функции CloseHandle.

В целом, этот пример демонстрирует использование функций Delphi CreateFile и WriteFile для отправки команд AT модему через порта сериальной связи.

В статье описывается пример передачи AT-команд модему на языке Delphi, демонстрирующий поднятие модемом трубки с помощью команды 'ATH1'.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Dial-up ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:57:02/0.0034658908843994/0