Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизПротокол модема в текстовый файл Найти похожие ветки
← →
Veles (2005-03-03 13:51) [0]Подскажите пожалуйста как сохранить ответы модема в текстовый файл (в ходе выполнения программы)
Даю команду модему: АТххх и ответ выводить в допустим Memo...
← →
Anatoly Podgoretsky © (2005-03-03 13:57) [1]Нужен виртуальный порт модема, закажи разработку. Или с помощью двух компьютеров, перехватывая поток байт. Тут требуется кабель и небольшая программа записи в файл всех захваченных байт.
← →
Cosinus © (2005-03-03 13:58) [2]Memo1.lines.append(MomedAnswer);
← →
WondeRu © (2005-03-03 15:01) [3]Anatoly Podgoretsky © (03.03.05 13:57) [1]
Нужен виртуальный порт модема
а одного компа не хватит??? с двумя COM-портами
Anatoly Podgoretsky © (03.03.05 13:57) [1]
закажи разработку
например, мне ;)
← →
Anatoly Podgoretsky © (2005-03-03 15:03) [4]WondeRu © (03.03.05 15:01) [3]
Нет один порт нужен для связи с первым компьютером, а ко второму подключается модем. Вот на первом компьютере достаточно одного порта.
Существуют также шпионы для ком-портов.
← →
WondeRu © (2005-03-03 15:19) [5]Anatoly Podgoretsky © (03.03.05 15:03) [4]
Существуют также шпионы для ком-портов.
ага... например я пользую
Portmon http://www.sysinternals.com
← →
Cosinus © (2005-03-03 15:20) [6]
> Veles (03.03.05 13:51)
Прошу прощения за глупый ответ, но я просто вопроса не понял.
К > Anatoly Podgoretsky © (03.03.05 15:03) [4]
Существуют также шпионы для ком-портов LGComSpy, PortMon и тд
← →
WondeRu © (2005-03-03 15:22) [7]Veles (03.03.05 13:51)
может вот это поможет... эт я ерундой страдал, когда в модем в СониЭриксоне T230 разгонял)function SendToModem(AMessage: String): String;
var
NumberWritten, NumberReaded: cardinal;
a: array[0..511] of Byte;
PhoneCommand: string;
begin
Result := "";
PhoneCommand := AMessage + #13 + #10;
NumberWritten := 0;
if WriteFile(hCommFile,
PChar(PhoneCommand)^,
Length(PhoneCommand),
NumberWritten,
nil) = false then
begin
ShowMessage("Unable to write to CommPort");
end;
ReadFile(hCommFile, a, 512, NumberReaded, nil);
if NumberReaded > 0 then
begin
SetLength(Result, NumberReaded);
CopyMemory(@Result[1], @a, NumberReaded);
end;
end;
procedure SetSpeed(ASpeed: Cardinal);
var
FDCB: TDCB;
begin
GetCommState(hCommFile, FDCB);
FDCB.BaudRate := ASpeed;
SetCommState(hCommFile, FDCB);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
CommPort: string;
begin
CommPort := "COM3";
//-------------------Открыть порт как файл}
hCommFile := CreateFile(PChar(CommPort),
GENERIC_WRITE or GENERIC_READ ,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hCommFile = INVALID_HANDLE_VALUE then
begin
ShowMessage("Unable to open " + CommPort);
exit;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Lines.Add(SendToModem("at"));
memo1.Lines.Add(SendToModem("at+ipr=19200"));
SetSpeed(CBR_19200);
memo1.Lines.Add(SendToModem("at"));
memo1.Lines.Add(SendToModem("at&w"));
memo1.Lines.Add(SendToModem("at+ipr=38400"));
SetSpeed(CBR_38400);
memo1.Lines.Add(SendToModem("at"));
memo1.Lines.Add(SendToModem("at&w"));
memo1.Lines.Add(SendToModem("at+ipr=57600"));
SetSpeed(CBR_57600);
memo1.Lines.Add(SendToModem("at"));
memo1.Lines.Add(SendToModem("at&w"));
memo1.Lines.Add(SendToModem("at+ipr=115200"));
SetSpeed(CBR_115200);
end;
← →
Cosinus © (2005-03-03 15:24) [8]Сорри за OFFTOP
> WondeRu © (03.03.05 15:19) [5]
Насколько реально написать монитор портов на таком уровне, чтобы система не воспринимала порт, как занятый, но не особо углубляясь в железо? Т.е. на уровень ниже, чем виндовое. Т.е. банальным перехватом каким-нибудь?
← →
WondeRu © (2005-03-03 15:28) [9]Cosinus © (03.03.05 15:24) [8]
банальным перехватом каким-нибудь?
перехват API функцииReadFile
, думаю самый простой способ...
← →
Cosinus © (2005-03-03 15:43) [10]
> WondeRu © (03.03.05 15:28) [9]
Насколько я понимаю, перехват ReadFile будет работать, только если этот самый ReadFile, кто-нибудь инициирует. То есть если не запущено ни одно приложение, работающее с портом, а на него (порт) данные сыпятся, то перехват ничего не даст. Или не так?
← →
WondeRu © (2005-03-03 15:50) [11]Cosinus © (03.03.05 15:43) [10]
так... но если порт никем не открыт... сам открывай его) из своей проги!)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c