А где эт можно глянуть?... ссылочкой не пожешь? (устарело)
Вот собственно как все это делается
На обоих компах открываем COM порт модема для этого:
PHP код:
var
hCommFile: THandle;
DCB: TDCB;
Begin
hCommFile := CreateFile(PChar('COM1'), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL{FILE_FLAG_OVERLAPPED}, 0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
Memo1.Lines.Append('Unable to open '+ CommPort);
exit;
end;
DCB.BaudRate := CBR_115200; //скорость
DCB.StopBits := 0; //стоповые биты (0 - 1, 1 - 1,5, 2 - 2)
DCB.Parity := 0; //проверка четности
DCB.ByteSize := 8; //биты данных
SetCommState(hCommFile, DCB);
End;
Закрытие порта
Вызов номера модема
PHP код:
Var
PhoneNumber: string; //номер
NumberWritten: Cardinal; //сдесь будет число реально записанных байт
Begin
WriteFile(hCommFile, PChar(PhoneNumber)^, Length(PhoneNumber),
NumberWritten,nil)
end;
Вызывать номер нужно согласно AT командам модема,
например ATDP89451234567
AT - Команды все начинаются с этого
D - Dial (вызов)
P - Пульсовый режим.
остальное номер телефона, подробнее можно узнать в яндексе
для считывания информации с модема нужно запустить циклическую бесконечную (до закрытия порта) процедуру, желательно в отдельном потоке.
PHP код:
var
CurrentState:TComStat;
CodeError:Cardinal;
PData:array [0..2048] of byte;
AvaibleBytes, RealRead:Cardinal;
Text:String
Begin
ClearCommError(hCommFile, CodeError, @CurrentState); //считываем состояние модема
AvaibleBytes:=CurrentState.cbInQue; // получаем количество пришедших байтов
if AvaibleBytes>0 then begin //если что-то пришло
If ReadFile(hCommFile, PData, AvaibleBytes, RealRead, nil) then begin // читаем из порта данные
if RealRead>0 then begin //если удалось прочитать больше чем ничего
Text:=Pchar(@PData); // что дальше делать с данными решайте сами
end;
end;
end;
end;
Если пришёл вызов на модем, то в переменой TEXT будет #13#10RING#13#10, и отвечаем за вызов записав в модем команду ATA
AT - Команда модема,
A - Ответить на звонок,
После этого модемы попробуют связаться друг с другом не требуя от вас никакого вмешательства,... если соединение удалось, то модем ответит сообщением CONNECT и скорость соединения. При этом модемы перейдут с состояние обмена данными, т.е. любая информация записанная в порт будет выдана на другом конце. Для окончания соединения нужно просто закрыть порт.