Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2008, 13:09   #1
Виталь
 
Регистрация: 24.12.2008
Сообщений: 3
По умолчанию GPRS modem (RS 232)

Всем, здравствуйте!
У меня такая проблема:
Написал программку для работы с модемом (RS-232).
Но она работает только в том случае если предварительно запустить какую-нибудь другую программу для работы с АТ командами (например Terminal.exe). Т.е. пока другая программа не "пробьёт Сом порт", моя "висит".
Вот код:
Код:
procedure open_modem;
var CommPort, PhoneCommandW, PhoneCommandR: string;NM:Cardinal;
begin
  CommPort := 'COM1';
  hCommFile := CreateFile(PChar(CommPort),GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_ALWAYS,0,0);
  if hCommFile = INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open ' + CommPort+' '+ IntToStr(GetLastError));
    exit;
  end;
  GetCommState(hCommFile, mode);
  Mode.BaudRate := 57600;
  Mode.ByteSize := 8;
  Mode.Parity := NOPARITY;
  Mode.StopBits := ONESTOPBIT;//нужен был для перезаписи в NT
  SetCommState(hCommFile, mode);
  NM:=1;
PhoneCommand := 'AT'+#13+#10  ;
if WriteFile(hCommFile,PhoneCommand,SizeOf(PhoneCommand),NM,nil) then ShowMessage('Error Write') else
if ReadFile(hCommFile,PhoneCommand,SizeOf(PhoneCommand),NM,nil) then ShowMessage('Error Read') else //Тут уже 
ShowMessage(PhoneCommand1); //"висит"; 'Error Read','Error
Write',PhoneCommand1 не было,//"висит" и всё
end;
Потом закрываю, запускаю Terminal.exe(так сказать "пробиваю" Сом порт) и всё работает, пока не перезегружу компьютер. Перезагрузил-и всё по-новой.
Может я как-то порт неправльно открываю.
Спасибо.

Последний раз редактировалось rpy3uH; 25.12.2008 в 17:30.
Виталь вне форума Ответить с цитированием
Старый 24.12.2008, 13:12   #2
Виталь
 
Регистрация: 24.12.2008
Сообщений: 3
По умолчанию

В конце-это опечатка.
Извините.
Виталь вне форума Ответить с цитированием
Старый 24.12.2008, 16:24   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Используйте нормальный компонент Сом порта и не будет проблем.
Можно этот попробовать
Вложения
Тип файла: rar cport-3.10.rar (570.8 Кб, 76 просмотров)
SERG1980 вне форума Ответить с цитированием
Старый 25.12.2008, 11:03   #4
Виталь
 
Регистрация: 24.12.2008
Сообщений: 3
По умолчанию

Спасибо всё нормально заработало.
Виталь вне форума Ответить с цитированием
Старый 26.12.2008, 04:30   #5
Ash
Пользователь
 
Аватар для Ash
 
Регистрация: 27.10.2008
Сообщений: 45
По умолчанию

От TurboPower есть прекрасные компоненты-AsyncPro... Последнюю (во всех смыслах) версию (кажется максимум Delphi7) можно взять на sourceforge.net
Ash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У кого из российских операторов дешевле GPRS-интернет? JTG Свободное общение 17 26.04.2009 08:29
RS-232 интерфейс SLIMMUS Общие вопросы Delphi 2 07.09.2008 23:32
[Error] UIsp.pas(232): Incompatible types: 'TAge' and 'TDateTime' Nikitin Общие вопросы Delphi 2 03.04.2008 11:56
Последовательный порт RS-232 LepihinMS Общие вопросы Delphi 4 23.06.2007 00:53
работа с Ft245/232 на Delphi dima00 Win Api 8 06.04.2007 23:55