![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как соединить два компа при помощи модемов? [D7]
PanModem © (2006-09-25 18:42:00)Как соединить два компа при помощи модемов? Как это делает Hyper Terminal?
PanModem (2006-09-26 00:29:00) [1]Сенькью
Reindeer Moss Eater (2006-09-26 00:23:00) [2]Спасибо, а какая команда записывает буфер в модем?
Нет никакого модема. Есть только открытый порт и writefile.
И каков должен быть размер буфера
Любой. Какой больше нравится.
PanModem (2006-09-25 23:40:00) [3]И каков должен быть размер буфера
PanModem (2006-09-25 23:37:00) [4]Спасибо, а какая команда записывает буфер в модем?
Reindeer Moss Eater (2006-09-25 20:04:00) [5]Позвонить : записать в открытый порт 'atd' + номер телефона + CR
Передать файл : открыть файл, прочитать в буфер, записать буфер в порт. Повторить пока файл не будет передан целиком.
PanModem (2006-09-25 18:53:00) [6]А как звонить и передавать файлы? Другого соединения нет.
PanModem (2006-09-25 18:50:00) [7]
function Tmainform.SetupCOMPort: Boolean;
const RxBufferSize = 256;
TxBufferSize = 256;
var DCB: TDCB;
Config: string;
CommTimeouts: TCommTimeouts;
begin
Result := True;
if not SetupComm(ComFile, RxBufferSize, TxBufferSize) then
Result := False;
if not GetCommState(ComFile, DCB) then
Result := False;
Config := 'baud=' + IntToStr(ComSpeed) + ' parity=n data=8 stop=1'; //Устанавливаем скорость
if not BuildCommDCB(@Config[1], DCB) then
Result := False;
if not SetCommState(ComFile, DCB) then
Result := False;
with CommTimeouts do
begin
ReadIntervalTimeout := 0;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 1000;
WriteTotalTimeoutMultiplier := 0;
WriteTotalTimeoutConstant := 1000;
end;
if not SetCommTimeouts(ComFile, CommTimeouts) then
Result := False;
end;
Вот так я подключаюсь к момеду
procedure Tmainform.Connect;
begin
ComString := 'COM4';
ComSpeed := 9200;
if OpenCOMPort = true then //Открываем порт…
begin
mainform.Canvas.Draw(Image2.Left,Image2.Top,f1);
if SetupCOMPort = true then //…и конфигурируем его
begin
mainform.Canvas.Draw(Image2.Left,Image2.Top,f2);
Terminal.Lines.Add('Подключено к '+ComString+' на '+INtTostr(ComSpeed)+'Б\С');
end;
end;
Sleep(1500); //засыпаем на полторы секунды чтобы дать время на соединение
end;function Tmainform.OpenCOMPort: Boolean;
var DeviceName: array[0..80] of Char;
Device: string;
begin
Device := ComString;
StrPCopy(DeviceName, Device);
ComFile := CreateFile(DeviceName,
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if ComFile = INVALID_HANDLE_VALUE then
begin
Result := False;
Status := Result;
end
else
begin
Result := True;
Status := Result;
end;
end;