Автоматизация процесса настройки антенно-фидерных систем GSM-терминалов
Выбор оборудования и разработка программного обеспечение (ПО) для настройки антенно-фидерных систем (АФС) GSM – терминалов высокого уровня оперативности и низкой стоимости разработанного продукта, с возможностью его дальнейшего усовершенствования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.06.2012 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Edit19: TEdit;
Edit20: TEdit;
Operator: TEdit;
Image1: TImage;
GroupBox3: TGroupBox;
Edit21: TEdit;
Edit22: TEdit;
Edit23: TEdit;
Edit24: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Edit27: TEdit;
Gauge2: TGauge;
MCC1: TEdit;
MNC1: TEdit;
LAC1: TEdit;
CI1: TEdit;
BSIC1: TEdit;
BCCHFreq1: TEdit;
RxLev1: TEdit;
Edit36: TEdit;
Band1: TEdit;
GroupBox5: TGroupBox;
Gauge3: TGauge;
Edit38: TEdit;
Edit39: TEdit;
Edit40: TEdit;
Edit41: TEdit;
Edit42: TEdit;
Edit43: TEdit;
Edit44: TEdit;
MCC4: TEdit;
MNC4: TEdit;
LAC4: TEdit;
CI4: TEdit;
BSIC4: TEdit;
BCCHFreq4: TEdit;
RxLev4: TEdit;
Edit52: TEdit;
Band4: TEdit;
GroupBox6: TGroupBox;
Gauge4: TGauge;
Edit54: TEdit;
Edit55: TEdit;
Edit56: TEdit;
Edit57: TEdit;
Edit58: TEdit;
Edit59: TEdit;
Edit60: TEdit;
MCC2: TEdit;
MNC2: TEdit;
LAC2: TEdit;
CI2: TEdit;
BSIC2: TEdit;
BCCHFreq2: TEdit;
RxLev2: TEdit;
Edit68: TEdit;
Band2: TEdit;
GroupBox7: TGroupBox;
Gauge5: TGauge;
Edit70: TEdit;
Edit71: TEdit;
Edit72: TEdit;
Edit73: TEdit;
Edit74: TEdit;
Edit75: TEdit;
Edit76: TEdit;
MCC3: TEdit;
MNC3: TEdit;
LAC3: TEdit;
CI3: TEdit;
BSIC3: TEdit;
BCCHFreq3: TEdit;
RxLev3: TEdit;
Edit84: TEdit;
Band3: TEdit;
GroupBox8: TGroupBox;
Gauge6: TGauge;
Edit86: TEdit;
Edit87: TEdit;
Edit88: TEdit;
Edit89: TEdit;
Edit90: TEdit;
Edit91: TEdit;
Edit92: TEdit;
MCC5: TEdit;
MNC5: TEdit;
LAC5: TEdit;
CI5: TEdit;
BSIC5: TEdit;
BCCHFreq5: TEdit;
RxLev5: TEdit;
Edit100: TEdit;
Band5: TEdit;
GroupBox9: TGroupBox;
Gauge7: TGauge;
Edit102: TEdit;
Edit103: TEdit;
Edit104: TEdit;
Edit105: TEdit;
Edit106: TEdit;
Edit107: TEdit;
Edit108: TEdit;
MCC6: TEdit;
MNC6: TEdit;
LAC6: TEdit;
CI6: TEdit;
BSIC6: TEdit;
BCCHFreq6: TEdit;
RxLev6: TEdit;
Edit116: TEdit;
Band6: TEdit;
ERROR: TEdit;
SERVICE: TEdit;
Timer1: TTimer;
procedure StartClick(Sender: TObject);
procedure StopClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BComPort1RxChar(Sender: TObject; Count: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
RxStr, sCSQ, sMCC, sMNC, sLAC, sCI, sBSIC, sBCCHFreq, sRxLev, sIMEI: String;
sRxLevFull, sRxLevSub, sRxQual, sRxQualFull, sRxQualSub, sIdleTS: String;
visual, visual1, visual2, visual3, visual4, visual5, visual6, dbm, l, p, i, result: integer;
proc, proc1, proc2, proc3, proc4, proc5, proc6: real;
sMCC1, sMNC1, sLAC1, sCI1, sBSIC1, sBCCHFreq1, sRxLev1, sBand1: String;
sMCC2, sMNC2, sLAC2, sCI2, sBSIC2, sBCCHFreq2, sRxLev2, sBand2: String;
sMCC3, sMNC3, sLAC3, sCI3, sBSIC3, sBCCHFreq3, sRxLev3, sBand3: String;
sMCC4, sMNC4, sLAC4, sCI4, sBSIC4, sBCCHFreq4, sRxLev4, sBand4: String;
sMCC5, sMNC5, sLAC5, sCI5, sBSIC5, sBCCHFreq5, sRxLev5, sBand5: String;
sMCC6, sMNC6, sLAC6, sCI6, sBSIC6, sBCCHFreq6, sRxLev6, sBand6: String;
implementation
{$R *.dfm}
procedure TForm1.StartClick(Sender: TObject);
begin
if timer1.Enabled = false then
begin
BComPort1.Port:=ComboBox1.Text;
BcomPort1.BaudRate:=TBaudRate(ComboBox2.ItemIndex);
BComPort1.Open;
Start.Enabled:=false;
ComboBox1.Enabled:=false;
ComboBox2.Enabled:=false;
Timer1.Enabled:=true;
MCC.Text:='n/a';
MNC.Text:='n/a';
LAC.Text:='n/a';
CI.Text:='n/a';
BSIC.Text:='n/a';
BCCHFreq.Text:='n/a';
RxLev.Text:='n/a';
RxLevFull.Text:='n/a';
RxLevSub.Text:='n/a';
RxQual.Text:='n/a';
RxQualFull.Text:='n/a';
RxQualSub.Text:='n/a';
IdleTS.Text:='n/a';
CSQ.Text:='n/a';
Band.Text:='n/a';
Edit29.Text:='n/a';
Edit19.Text:='n/a';
Gauge1.Progress:=0;
MCC1.Text:='n/a';
MNC1.Text:='n/a';
LAC1.Text:='n/a';
CI1.Text:='n/a';
BSIC1.Text:='n/a';
BCCHFreq1.Text:='n/a';
RxLev1.Text:='n/a';
Band1.Text:='n/a';
Gauge2.Progress:=0;
MCC2.Text:='n/a';
MNC2.Text:='n/a';
LAC2.Text:='n/a';
CI2.Text:='n/a';
BSIC2.Text:='n/a';
BCCHFreq2.Text:='n/a';
RxLev2.Text:='n/a';
Band2.Text:='n/a';
Gauge4.Progress:=0;
MCC3.Text:='n/a';
MNC3.Text:='n/a';
LAC3.Text:='n/a';
CI3.Text:='n/a';
BSIC3.Text:='n/a';
BCCHFreq3.Text:='n/a';
RxLev3.Text:='n/a';
Band3.Text:='n/a';
Gauge5.Progress:=0;
MCC4.Text:='n/a';
MNC4.Text:='n/a';
LAC4.Text:='n/a';
CI4.Text:='n/a';
BSIC4.Text:='n/a';
BCCHFreq4.Text:='n/a';
RxLev4.Text:='n/a';
Band4.Text:='n/a';
Gauge3.Progress:=0;
MCC5.Text:='n/a';
MNC5.Text:='n/a';
LAC5.Text:='n/a';
CI5.Text:='n/a';
BSIC5.Text:='n/a';
BCCHFreq5.Text:='n/a';
RxLev5.Text:='n/a';
Band5.Text:='n/a';
Gauge6.Progress:=0;
MCC6.Text:='n/a';
MNC6.Text:='n/a';
LAC6.Text:='n/a';
CI6.Text:='n/a';
BSIC6.Text:='n/a';
BCCHFreq6.Text:='n/a';
RxLev6.Text:='n/a';
Band6.Text:='n/a';
Gauge7.Progress:=0;
end;
BComPort1.WriteStr('ate1'+#13 +#10);
if ERROR.Visible=false then
begin
ERROR.Visible:=true;
Gauge1.ForeColor:=clRed;
Gauge2.ForeColor:=clRed;
Gauge3.ForeColor:=clRed;
Gauge4.ForeColor:=clRed;
Gauge5.ForeColor:=clRed;
Gauge6.ForeColor:=clRed;
Gauge7.ForeColor:=clRed;
end
else
begin
ERROR.Visible:=false;
Gauge1.ForeColor:=clWhite;
Gauge2.ForeColor:=clWhite;
Gauge3.ForeColor:=clWhite;
Gauge4.ForeColor:=clWhite;
Gauge5.ForeColor:=clWhite;
Gauge6.ForeColor:=clWhite;
Gauge7.ForeColor:=clWhite;
end;
sleep(100);
BComPort1.WriteStr('at+cgsn'+#13 +#10);
end;
procedure TForm1.StopClick(Sender: TObject);
begin
BComPort1.Close;
Start.Enabled:=true;
ComboBox1.Enabled:=true;
ComboBox2.Enabled:=true;
ERROR.Visible:=false;
Timer1.Enabled:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnumComPorts(ComboBox1.Items);
ComboBox1.ItemIndex:=0;
ComboBox2.ItemIndex:=6;
Timer1.Enabled:=false;
end;
procedure TForm1.BComPort1RxChar(Sender: TObject; Count: Integer);
Var
RxStr: String;
begin
Timer1.Enabled:=false;
Timer1.Enabled:=true;
sleep(200);
BComPort1.ReadStr(RxStr,10000);
ERROR.Visible:=false;
SERVICE.Visible:=false;
Edit14.Text:=RxStr;
RxStr:=UpperCase(RxStr);
p:=0;
p:=pos('ERROR',RxStr);
if p<>0
then begin BComPort1.WriteStr('a/'+#13 +#10); ERROR.Visible:=true; end
else
begin
p:=0; // Iieo?aiea ioaaoa ia cai?in CSQ
p:=pos('CSQ',RxStr); //
if p <> 0 then //
begin //
p:=0; //
p:=pos(' ',RxStr); //
Delete(RxStr,1,p); //
//
p:=0; //
p:=pos(',',RxStr); //
sCSQ:=Copy(RxStr,1,p-1); //
try //
dbm:=StrToInt(sCSQ); //
except
on Exception : EConvertError do begin dbm:=0; ERROR.Visible:=true; end;
end;
if dbm = 99 then begin dbm:=0; ERROR.Visible:=true; SERVICE.Visible:=true; end;
visual:=dbm; //
dbm:=113-2*dbm; //
Edit29.Text:='-0'+IntToStr(dbm)+'dbm'; //
if dbm < 10 then //
Edit29.Text:='-00'+IntToStr(dbm)+'dbm'; //
if dbm > 99 then //
Edit29.Text:='-'+IntToStr(dbm)+'dbm'; //
//
proc:=visual*3.226; //
visual:=round(proc); //
if visual > 50 then Gauge1.ForeColor:=clGreen //
else //
begin //
if visual < 21 then Gauge1.ForeColor:=clRed //
else Gauge1.ForeColor:=clYellow; //
end; //
Gauge1.Progress:=visual; //
//
if sCSQ='' then sCSQ:='n/a'; //
CSQ.Text:=sCSQ; //
BComPort1.WriteStr('at+cced=0,1'+#13 +#10); //
end; //
p:=0;
p:=pos('CCED:',RxStr);
if p <> 0 then
begin
Delete(RxStr,1,p);
p:=0;
p:=pos(' ',RxStr);
Delete(RxStr,1,p);
i:=0; // Iian??o eiee?anoaa caiyouo
result := 0; // aey aaeuiaeoaai ii?aaaeaiey
for i := 1 to length(RxStr) do // eaeay nioa ioaaoeea
if RxStr[i] = ',' then // 12 - aeoeaiay
inc(result); // < 7 eee > 12 - ninaaiea
//Edit14.Text:=IntToStr(result); //
edit14.Text:=RxStr;
if result = 12 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxLev:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxLevFull:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxLevSub:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxQual:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxQualFull:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sRxQualSub:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos('OK',RxStr);
sIdleTS:=Copy(RxStr,1,p-5);
if sMCC='' then sMCC:='n/a';
MCC.Text:=sMCC;
if sMNC='' then sMNC:='n/a';
MNC.Text:=sMNC;
if sLAC='' then sLAC:='n/a';
LAC.Text:=sLAC;
if sCI='' then sCI:='n/a';
CI.Text:=sCI;
if sBSIC='' then sBSIC:='n/a';
BSIC.Text:=sBSIC;
if sBCCHFreq='' then sBCCHFreq:='n/a';
BCCHFreq.Text:=sBCCHFreq;
if sRxLev='' then sRxLev:='n/a';
RxLev.Text:=sRxLev;
if sRxLevFull='' then sRxLevFull:='n/a';
RxLevFull.Text:=sRxLevFull;
if sRxLevSub='' then sRxLevSub:='n/a';
RxLevSub.Text:=sRxLevSub;
if sRxQual='' then sRxQual:='n/a';
RxQual.Text:=sRxQual;
if sRxQualFull='' then sRxQualFull:='n/a';
RxQualFull.Text:=sRxQualFull;
if sRxQualSub='' then sRxQualSub:='n/a';
RxQualSub.Text:=sRxQualSub;
if sIdleTS='' then sIdleTS:='n/a';
IdleTS.Text:=sIdleTS;
if StrToInt(sMCC)=250 then // Ioia?a?aiea no?aiu
Country.Text:='Russia' //
else //
Country.Text:='n/a'; //
if sBCCHFreq <> 'n/a' then begin
if StrToInt(sBCCHFreq) > 128 then // Ioia?a?aiea aeaiaciia
begin //
Band.Text:='1800'; //
Edit19.Text:=' DCS'; //
end //
else //
begin //
Band.Text:='900'; //
Edit19.Text:=' GSM'; //
end; //
end
else Edit19.Text:=' n/a';
if StrToInt(sMNC) = 1 then // Auaia iacaaiey iia?aoi?a
Operator.Text:='ION'; //
if sMNC = '02' then //
Operator.Text:='Iaaaoii'; //
if sMNC = '20' then //
Operator.Text:='OAEA2'; //
if sMNC = '99' then //
Operator.Text:='Aeeaei'; //
if (sMNC <> '01') and (sMNC <> '02') and (sMNC <> '20') and (sMNC <> '99')
then
Operator.Text:='Other';
BComPort1.WriteStr('at+cced=0,2'+#13 +#10); //
end
else
begin
if result = 0 then
begin
MCC1.Text:='n/a';
MNC1.Text:='n/a';
LAC1.Text:='n/a';
CI1.Text:='n/a';
BSIC1.Text:='n/a';
BCCHFreq1.Text:='n/a';
RxLev1.Text:='n/a';
Band1.Text:='n/a';
Gauge2.Progress:=0;
MCC2.Text:='n/a';
MNC2.Text:='n/a';
LAC2.Text:='n/a';
CI2.Text:='n/a';
BSIC2.Text:='n/a';
BCCHFreq2.Text:='n/a';
RxLev2.Text:='n/a';
Band2.Text:='n/a';
Gauge4.Progress:=0;
MCC3.Text:='n/a';
MNC3.Text:='n/a';
LAC3.Text:='n/a';
CI3.Text:='n/a';
BSIC3.Text:='n/a';
BCCHFreq3.Text:='n/a';
RxLev3.Text:='n/a';
Band3.Text:='n/a';
Gauge5.Progress:=0;
MCC4.Text:='n/a';
MNC4.Text:='n/a';
LAC4.Text:='n/a';
CI4.Text:='n/a';
BSIC4.Text:='n/a';
BCCHFreq4.Text:='n/a';
RxLev4.Text:='n/a';
Band4.Text:='n/a';
Gauge3.Progress:=0;
MCC5.Text:='n/a';
MNC5.Text:='n/a';
LAC5.Text:='n/a';
CI5.Text:='n/a';
BSIC5.Text:='n/a';
BCCHFreq5.Text:='n/a';
RxLev5.Text:='n/a';
Band5.Text:='n/a';
Gauge6.Progress:=0;
MCC6.Text:='n/a';
MNC6.Text:='n/a';
LAC6.Text:='n/a';
CI6.Text:='n/a';
BSIC6.Text:='n/a';
BCCHFreq6.Text:='n/a';
RxLev6.Text:='n/a';
Band6.Text:='n/a';
Gauge7.Progress:=0;
end;
if result > 0 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
if result < 7
then
begin
p:=0;
p:=pos('OK',RxStr);
sRxLev1:=Copy(RxStr,1,p-5);
end
else
begin
p:=0;
p:=pos(',',RxStr);
sRxLev1:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
end;
if sMCC1='' then sMCC1:='n/a';
MCC1.Text:=sMCC1;
if sMNC1='' then sMNC1:='n/a';
MNC1.Text:=sMNC1;
if sLAC1='' then sLAC1:='n/a';
LAC1.Text:=sLAC1;
if sCI1='' then sCI1:='n/a';
CI1.Text:=sCI1;
if sBSIC1='' then sBSIC1:='n/a';
BSIC1.Text:=sBSIC1;
if sBCCHFreq1='' then sBCCHFreq1:='n/a';
BCCHFreq1.Text:=sBCCHFreq1;
if sRxLev1='' then begin RxLev1.Text:='n/a'; sRxLev1:='0'; end
else RxLev1.Text:=sRxLev1;
if sBCCHFreq1 <> 'n/a' then begin
if StrToInt(sBCCHFreq1) > 128 then // Ioia?a?aiea aeaiaciia
Band1.Text:='1800' //
else //
Band1.Text:='900'; //
end
else Band1.Text:=sBCCHFreq1;
visual1:=round(StrToInt(sRxLev1));
proc1:=visual1*1.8; //
visual1:=round(proc1); //
if visual1 > 50 then Gauge2.ForeColor:=clGreen //
else //
begin //
if visual1 < 21 then Gauge2.ForeColor:=clRed //
else Gauge2.ForeColor:=clYellow; //
end; //
Gauge2.Progress:=visual1;
end;
if result > 7 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
if result < 14
then
begin
p:=0;
p:=pos('OK',RxStr);
sRxLev2:=Copy(RxStr,1,p-5);
end
else
begin
p:=0;
p:=pos(',',RxStr);
sRxLev2:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
end;
if sMCC2='' then sMCC2:='n/a';
MCC2.Text:=sMCC2;
if sMNC2='' then sMNC2:='n/a';
MNC2.Text:=sMNC2;
if sLAC2='' then sLAC2:='n/a';
LAC2.Text:=sLAC2;
if sCI2='' then sCI2:='n/a';
CI2.Text:=sCI2;
if sBSIC2='' then sBSIC2:='n/a';
BSIC2.Text:=sBSIC2;
if sBCCHFreq2='' then sBCCHFreq2:='n/a';
BCCHFreq2.Text:=sBCCHFreq2;
if sRxLev2='' then begin RxLev2.Text:='n/a'; sRxLev2:='0'; end
else RxLev2.Text:=sRxLev2;
if sBCCHFreq2 <> 'n/a' then begin
if StrToInt(sBCCHFreq2) > 128 then // Ioia?a?aiea aeaiaciia
Band2.Text:='1800' //
else //
Band2.Text:='900'; //
end
else Band2.Text:=sBCCHFreq2;
visual2:=round(StrToInt(sRxLev2));
proc2:=visual2*1.8; //
visual2:=round(proc2); //
if visual2 > 50 then Gauge4.ForeColor:=clGreen //
else //
begin //
if visual2 < 21 then Gauge4.ForeColor:=clRed //
else Gauge4.ForeColor:=clYellow; //
end; //
Gauge4.Progress:=visual2;
end
else
begin
MCC2.Text:='n/a';
MNC2.Text:='n/a';
LAC2.Text:='n/a';
CI2.Text:='n/a';
BSIC2.Text:='n/a';
BCCHFreq2.Text:='n/a';
RxLev2.Text:='n/a';
Band2.Text:='n/a';
Gauge4.Progress:=0;
end;
if result > 14 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
if result < 21
then
begin
p:=0;
p:=pos('OK',RxStr);
sRxLev3:=Copy(RxStr,1,p-5);
end
else
begin
p:=0;
p:=pos(',',RxStr);
sRxLev3:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
end;
if sMCC3='' then sMCC3:='n/a';
MCC3.Text:=sMCC3;
if sMNC3='' then sMNC3:='n/a';
MNC3.Text:=sMNC3;
if sLAC3='' then sLAC3:='n/a';
LAC3.Text:=sLAC3;
if sCI3='' then sCI3:='n/a';
CI3.Text:=sCI3;
if sBSIC3='' then sBSIC3:='n/a';
BSIC3.Text:=sBSIC3;
if sBCCHFreq3='' then sBCCHFreq3:='n/a';
BCCHFreq3.Text:=sBCCHFreq3;
if sRxLev3='' then begin RxLev3.Text:='n/a'; sRxLev3:='0'; end
else RxLev3.Text:=sRxLev3;
if sBCCHFreq3 <> 'n/a' then begin
if StrToInt(sBCCHFreq3) > 128 then // Ioia?a?aiea aeaiaciia
Band3.Text:='1800' //
else //
Band3.Text:='900'; //
end
else Band3.Text:=sBCCHFreq3;
visual3:=round(StrToInt(sRxLev3));
proc3:=visual3*1.8; //
visual3:=round(proc3); //
if visual3 > 50 then Gauge5.ForeColor:=clGreen //
else //
begin //
if visual3 < 21 then Gauge5.ForeColor:=clRed //
else Gauge5.ForeColor:=clYellow; //
end; //
Gauge5.Progress:=visual3;
end
else
begin
MCC3.Text:='n/a';
MNC3.Text:='n/a';
LAC3.Text:='n/a';
CI3.Text:='n/a';
BSIC3.Text:='n/a';
BCCHFreq3.Text:='n/a';
RxLev3.Text:='n/a';
Band3.Text:='n/a';
Gauge5.Progress:=0;
end;
if result > 21 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
if result < 28
then
begin
p:=0;
p:=pos('OK',RxStr);
sRxLev4:=Copy(RxStr,1,p-5);
end
else
begin
p:=0;
p:=pos(',',RxStr);
sRxLev4:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
end;
if sMCC4='' then sMCC4:='n/a';
MCC4.Text:=sMCC4;
if sMNC4='' then sMNC4:='n/a';
MNC4.Text:=sMNC4;
if sLAC4='' then sLAC4:='n/a';
LAC4.Text:=sLAC4;
if sCI4='' then sCI4:='n/a';
CI4.Text:=sCI4;
if sBSIC4='' then sBSIC4:='n/a';
BSIC4.Text:=sBSIC4;
if sBCCHFreq4='' then sBCCHFreq4:='n/a';
BCCHFreq4.Text:=sBCCHFreq4;
if sRxLev4='' then begin RxLev4.Text:='n/a'; sRxLev4:='0'; end
else RxLev4.Text:=sRxLev4;
if sBCCHFreq4 <> 'n/a' then begin
if StrToInt(sBCCHFreq4) > 128 then // Ioia?a?aiea aeaiaciia
Band4.Text:='1800' //
else //
Band4.Text:='900'; //
end
else Band4.Text:=sBCCHFreq4;
visual4:=round(StrToInt(sRxLev4));
proc4:=visual4*1.8; //
visual4:=round(proc4); //
if visual4 > 50 then Gauge3.ForeColor:=clGreen //
else //
begin //
if visual4 < 21 then Gauge3.ForeColor:=clRed //
else Gauge3.ForeColor:=clYellow; //
end; //
Gauge3.Progress:=visual4;
end
else
begin
MCC4.Text:='n/a';
MNC4.Text:='n/a';
LAC4.Text:='n/a';
CI4.Text:='n/a';
BSIC4.Text:='n/a';
BCCHFreq4.Text:='n/a';
RxLev4.Text:='n/a';
Band4.Text:='n/a';
Gauge3.Progress:=0;
end;
if result > 28 then
begin
p:=0;
p:=pos(',',RxStr);
sMCC5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sMNC5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sLAC5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sCI5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBSIC5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
p:=0;
p:=pos(',',RxStr);
sBCCHFreq5:=Copy(RxStr,1,p-1);
Delete(RxStr,1,p);
if sMCC5='' then sMCC5:='n/a';
MCC5.Text:=sMCC5;
if sMNC5='' then sMNC5:='n/a';
MNC5.Text:=sMNC5;
if sLAC5='' then sLAC5:='n/a';
LAC5.Text:=sLAC5;
if sCI5='' then sCI5:='n/a';
CI5.Text:=sCI5;
if sBSIC5='' then sBSIC5:='n/a';
BSIC5.Text:=sBSIC5;
if sBCCHFreq5='' then sBCCHFreq5:='n/a';
BCCHFreq5.Text:=sBCCHFreq5;
if sRxLev5='' then begin RxLev5.Text:='n/a'; sRxLev5:='0'; end
else RxLev5.Text:=sRxLev5;
if sBCCHFreq5 <> 'n/a' then begin
if StrToInt(sBCCHFreq5) > 128 then // Ioia?a?aiea aeaiaciia
Band5.Text:='1800' //
else //
Band5.Text:='900'; //
end
else Band5.Text:=sBCCHFreq5;
visual5:=round(StrToInt(sRxLev5));
proc5:=visual5*1.8; //
visual5:=round(proc5); //
if visual5 > 50 then Gauge6.ForeColor:=clGreen //
else //
begin //
if visual5 < 21 then Gauge6.ForeColor:=clRed //
else Gauge6.ForeColor:=clYellow; //
end; //
if sMCC6='' then sMCC6:='n/a';
MCC6.Text:=sMCC6;
if sMNC6='' then sMNC6:='n/a';
MNC6.Text:=sMNC6;
if sLAC6='' then sLAC6:='n/a';
LAC6.Text:=sLAC6;
if sCI6='' then sCI6:='n/a';
CI6.Text:=sCI6;
if sBSIC6='' then sBSIC6:='n/a';
BSIC6.Text:=sBSIC6;
if sBCCHFreq6='' then sBCCHFreq6:='n/a';
BCCHFreq6.Text:=sBCCHFreq6;
if sRxLev6='' then begin RxLev6.Text:='n/a'; sRxLev6:='0'; end
else RxLev6.Text:=sRxLev6;
if sBCCHFreq6 <> 'n/a' then begin
if StrToInt(sBCCHFreq6) > 128 then // Ioia?a?aiea aeaiaciia
Band6.Text:='1800' //
else //
Band6.Text:='900'; //
end
else Band6.Text:=sBCCHFreq6;
visual6:=round(StrToInt(sRxLev6));
proc6:=visual6*1.8; //
visual6:=round(proc6); //
if visual6 > 50 then Gauge7.ForeColor:=clGreen //
else //
begin //
if visual6 < 21 then Gauge7.ForeColor:=clRed //
else Gauge7.ForeColor:=clYellow; //
end; //
Gauge7.Progress:=visual6;
end
else
begin
MCC6.Text:='n/a';
MNC6.Text:='n/a';
LAC6.Text:='n/a';
CI6.Text:='n/a';
BSIC6.Text:='n/a';
BCCHFreq6.Text:='n/a';
RxLev6.Text:='n/a';
Band6.Text:='n/a';
Gauge7.Progress:=0;
end;
BComPort1.WriteStr('at+csq'+#13 +#10);
end;
end;
p:=0; // Cai?in IMEI ec iiaaia
p:=pos('CGSN',RxStr); //
if p <> 0 then //
begin //
sIMEI:=Copy(RxStr,p+8,15); //
IMEI.Text:=sIMEI; //
BComPort1.WriteStr('at+csq'+#13 +#10); // Iinueea cai?ina ia o?iaia neaiaea
end; // at+CSQ
end;
//BComPort1.WriteStr('a/'+#13 +#10);
end;
end.
Размещено на Allbest.ru
Подобные документы
Обзор существующих систем атоматизированного поиска. Мир электронных денег. Разработка структуры системы автоматизированного поиска отделений и терминалов банков. Обоснование выбора технологии разработки, программной среды и языка программирования.
курсовая работа [1,2 M], добавлен 17.01.2011Анализ хозяйственной деятельности, технического и программного обеспечения ООО НПФ "Интек". Полная автоматизация настройки контроллеров, предназначенных для процесса отслеживания показателей в нефтяных установках. Оценка экономической эффективности ИС.
дипломная работа [2,6 M], добавлен 18.06.2013Требования к создаваемому программному модулю. Разработка необходимых алгоритмов и интерфейсов. Описание протокола SPA-BUS. Выбор языка программирования. Тестирование и документирование программного продукта. Оценка экономической эффективности программы.
дипломная работа [722,4 K], добавлен 06.07.2012Создание прикладного программного обеспечения для реализации интерфейса терминала по приему платежей за услуги связи. Анализ требований к программному обеспечению. Выбор языка программирования. Разработка интерфейса пользователя и проектной документации.
дипломная работа [1,3 M], добавлен 18.06.2015Классификация терминалов с изолированной программной средой. Изучение их конструкции и принципа работы. Обзор особенностей построения систем защиты информации терминальных клиентов. Технологические карты по устранению неисправностей компонентов терминала.
дипломная работа [1,2 M], добавлен 11.10.2015Обоснование необходимости разработки сайта и основные требования его функционалу. Анализ процесса обработки информации и выбор структур данных для ее хранения. Реализации программного продукта, а также принципы его настройки, тестирования и отладки.
дипломная работа [4,3 M], добавлен 19.01.2017Оснащенность предприятия системным программным обеспечением, используемым для организации производственного процесса. Проектирование, внедрение и эксплуатация системного и прикладного программного обеспечения. Тестирование и отладка программного продукта.
отчет по практике [272,2 K], добавлен 29.12.2014Разработка комплекса алгоритмов. Кодирование и компиляция. Тестирование, отладка, испытание и сдача программы. Минимальные системные требования для использования Delphi 7. Написание программы с использованием инструментального языка высокого уровня.
курсовая работа [2,7 M], добавлен 21.02.2011Анализ программных средств (операционных систем), необходимых для реализации учебных задач компьютерного класса. Особенности Windows XP, Linux Mandriva. Информационная модель настройки сервера на примере Windows Server 2008, его программное обеспечение.
дипломная работа [4,7 M], добавлен 21.09.2012Цели разработки корпоративной сети на уровне предприятия. Проектирование доменной структуры. Развертывание служб терминалов. Организация доступа в сеть Internet на базе сервисного оборудования. Разработка стратегии виртуализации операционных систем.
курсовая работа [1,6 M], добавлен 07.06.2014