
- •2 Қолданыстағы желіні талдау
- •2.1 Шымкент қаласындағы Wi-Max желісіне талдау жасау
- •2.2 Жобаның мақсаты
- •2.3 WiMax стандартының сипаттамасы
- •2.4 Кеңжолақты рұқсат қондырғысын таңдау
- •3 Есептеу бөлімі
- •3.2 Тура көрімділік аймағындағы байланыс тұрақтылығын анықтау
- •3.3 Бағытталу диаграммасын есептеу
- •3.4Delphi 7 көмегімен программалау
- •4 Зерттеу жұмыстарының интелектуалды еңбек құнын анықтау
- •4.1 Резюме
- •4.2 Зерттеу жұмыстарының жоспары
- •4.3 Өнім сипаттамасы
- •4.4 Ғылыми-зерттеу жұмысының қаржылық жоспары
- •5.1 Өнеркәсіп бөлмелеріндегі еңбек жағдайына талдау жасау
- •5.2 Өрттің пайда болу көздерін талдау және өртке қарсы техниканы тиімді таңдау
- •Қысқартылған сөздер тізімі
- •Әдебиеттер тізімі
3.4Delphi 7 көмегімен программалау
«Шымкент қаласындағыWi-Max технологиясы» жобасын еңгізу кезінде желінің барлық барлық компаненттері жұмыс қалпында болуы қажет. Желінің барлық түйіндерін тексеру үшін , ІР-телефондарын қосқанда, ICMP протоколы бойынша сұраныс жібереді.Бұл амал стандартты Ping программасы көмегімен орындалады. Ping – бұл қызметтік компьютерлік программа, TCP/IP негізінде желідегі байланысты тексеруге арналған.Ол ICMP протоколының Echo-Request сұраныстарын көрсетілген желі түйініне жібереді және қабылданған жауаптарды бекітеді (ICMP Echo-Reply). Сұранысты жіберу және жауапты қабылдау арасындағы уақыт маршрут және жиілік бойынша пакеттер жоғалтулардың екі жақты шегеруін анықтайды,ол дегеніміз деректер тарату мен аралық құрылғылардағы каналдардың бос еместігін анықтайды. Тағы пинг деп компьпютерлік желілердегі клиентен серверге немесе керісінше серверден клиентке пакеттік деректерді тартуға кеткен уақытты айтады, ол милисекундпен өлшенеді.Пинг уақыты клиенттен серверге дейінгі аралықтағы арнаның байланыс жылдамдығы мен арна жектемесіне байланысты. ICMP жауаптың мүлдем болмауы шекті түйін (немесе кез-келген аралық маршрутизаторлар)ICMP Echo-Reply немесе ICMP Echo-Request сұраныстарын өткізбейді немесе тежейді деген сөз.
Бұл жобаны құрастыру кезінде осы сияқты жоба Delphi 7 тілінде жасалынды. Бұл жоба ICMP хаттамасы бойынша да жұмыс жасайды және эхо сұраныстарды жібереді.Программаның сипаты келесі сурет–3.1 көрсетілген.
Сурет 3.11 – «Ping» программасының түрі
Программаның бастапқы коды:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
IdIcmpClient, XPMan;
type
TForm1 = class(TForm)
IdIcmpClient1: TIdIcmpClient;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit3: TEdit;
Label3: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Ping(IP: String; OutMemo:TMemo);
const BUFSIZE = 2000;
var SecAttr : TSecurityAttributes;
hReadPipe,
hWritePipe : THandle;
StartupInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Buffer : Pchar;
WaitReason,
BytesRead : DWord;
begin
with SecAttr do
begin
nlength := SizeOf(TSecurityAttributes);
binherithandle := true;
lpsecuritydescriptor := nil;
end;
if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
begin
Buffer := AllocMem(BUFSIZE + 1);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.hStdOutput := hWritePipe;
StartupInfo.hStdInput := hReadPipe;
StartupInfo.dwFlags := STARTF_USESTDHANDLES +
STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE;
if CreateProcess(nil,
PChar('ping.exe '+IP),
@SecAttr,
@SecAttr,
true,
NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInfo) then
begin
repeat
WaitReason := WaitForSingleObject( ProcessInfo.hProcess,100);
Application.ProcessMessages;
until (WaitReason <> WAIT_TIMEOUT);
Repeat
BytesRead := 0;
ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);
Buffer[BytesRead]:= #0;
OemToAnsi(Buffer,Buffer);
OutMemo.Text := OutMemo.text + String(Buffer);
until (BytesRead < BUFSIZE);
end;
FreeMem(Buffer);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
end;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
edit5.Visible:=false;
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=true;
label1.Visible:=true;
label2.Visible:=true;
label3.Visible:=true;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
edit5.Visible:=true; edit1.Visible:=false; edit2.Visible:=false;
edit3.Visible:=false;
edit4.Visible:=false;
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
if radiobutton1.Checked=true then Ping(edit1.Text+'.'+edit2.Text+'.'+edit3.Text+'.'+edit4.Text,memo1) else
if radiobutton2.Checked=true then Ping(edit5.Text,memo1);
IdIcmpClient1.Ping;
Memo1.Lines.Add(IntToStr(IdIcmpClient1.ReplyStatus.TimeToLive));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end; end.