mirror of
https://github.com/ok2cqr/cqrlog.git
synced 2024-09-21 10:27:17 +00:00
Removed RBNThread to see what is the effect.
Now connects ALSO WITH QT5 !!! Code cleanups Defined localdbg with value -16 to see debug only from this form
This commit is contained in:
parent
696e372dc4
commit
f5d72ff423
@ -228,10 +228,10 @@ object frmGrayline: TfrmGrayline
|
||||
Left = 158
|
||||
Top = 32
|
||||
end
|
||||
object tmrRemoveDots: TTimer
|
||||
Enabled = False
|
||||
object tmrSpotDots: TTimer
|
||||
Interval = 1000
|
||||
OnTimer = tmrRemoveDotsTimer
|
||||
Enabled = False
|
||||
OnTimer = tmrSpotDotsTimer
|
||||
Left = 40
|
||||
Top = 32
|
||||
end
|
||||
|
@ -22,27 +22,6 @@ type
|
||||
const
|
||||
MAX_ITEMS = 300;
|
||||
|
||||
type
|
||||
TRBNThread = class(TThread)
|
||||
private
|
||||
lTelnet : TLTelnetClientComponent;
|
||||
login : String;
|
||||
watchFor : String;
|
||||
delAfter : Word;
|
||||
cs : TRTLCriticalSection;
|
||||
|
||||
function ConnectToRBN : Boolean;
|
||||
function GetEmptyPos : Word;
|
||||
function SpotterExists(spotter : String) : Word;
|
||||
|
||||
procedure lConnect(aSocket: TLSocket);
|
||||
procedure lDisconnect(aSocket: TLSocket);
|
||||
procedure lReceive(aSocket: TLSocket);
|
||||
procedure AddToList(spot : String);
|
||||
protected
|
||||
procedure Execute; override;
|
||||
end;
|
||||
|
||||
|
||||
type
|
||||
|
||||
@ -64,7 +43,7 @@ type
|
||||
sbtnGrayLine : TSpeedButton;
|
||||
tmrAutoConnect : TTimer;
|
||||
tmrGrayLine: TTimer;
|
||||
tmrRemoveDots: TTimer;
|
||||
tmrSpotDots: TTimer;
|
||||
procedure acConnectExecute(Sender : TObject);
|
||||
procedure acLinkToRbnMonitorExecute(Sender: TObject);
|
||||
procedure acShowStatusBarExecute(Sender : TObject);
|
||||
@ -82,12 +61,20 @@ type
|
||||
procedure sbtnGrayLineClick(Sender : TObject);
|
||||
procedure tmrAutoConnectTimer(Sender : TObject);
|
||||
procedure tmrGrayLineTimer(Sender: TObject);
|
||||
procedure tmrRemoveDotsTimer(Sender: TObject);
|
||||
procedure tmrSpotDotsTimer(Sender: TObject);
|
||||
private
|
||||
lTelnet : TLTelnetClientComponent;
|
||||
csRBN : TRTLCriticalSection;
|
||||
RBNThread : TRBNThread;
|
||||
login : String;
|
||||
delAfter : integer;
|
||||
watchFor : String;
|
||||
LocalDbg : boolean;
|
||||
|
||||
procedure lConnect(aSocket: TLSocket);
|
||||
procedure lDisconnect(aSocket: TLSocket);
|
||||
procedure lReceive(aSocket: TLSocket);
|
||||
|
||||
function ConnectToRBN : Boolean;
|
||||
|
||||
public
|
||||
RBNSpotList : array[1..MAX_ITEMS] of TRBNList;
|
||||
@ -114,19 +101,17 @@ implementation
|
||||
|
||||
uses dUtils, dData, uMyIni, dDXCluster, fNewQSO;
|
||||
|
||||
procedure TRBNThread.lConnect(aSocket: TLSocket);
|
||||
procedure TfrmGrayline.lConnect(aSocket: TLSocket);
|
||||
begin
|
||||
frmGrayline.rbn_status := 'Connected';
|
||||
Synchronize(@frmGrayline.SynRBN)
|
||||
rbn_status := 'Connected';
|
||||
end;
|
||||
|
||||
procedure TRBNThread.lDisconnect(aSocket: TLSocket);
|
||||
procedure TfrmGrayline.lDisconnect(aSocket: TLSocket);
|
||||
begin
|
||||
frmGrayline.rbn_status := 'Disconnected';
|
||||
Synchronize(@frmGrayline.SynRBN)
|
||||
rbn_status := 'Disconnected';
|
||||
end;
|
||||
|
||||
procedure TRBNThread.lReceive(aSocket: TLSocket);
|
||||
procedure TfrmGrayline.lReceive(aSocket: TLSocket);
|
||||
const
|
||||
CR = #13;
|
||||
LF = #10;
|
||||
@ -147,19 +132,19 @@ begin
|
||||
begin
|
||||
tmp := Copy(Buffer, sStart, sStop - sStart);
|
||||
tmp := trim(tmp);
|
||||
if dmData.DebugLevel >=1 then Writeln(tmp);
|
||||
if LocalDbg then Writeln('Rcvd:',tmp);
|
||||
itmp := Pos('DX DE',UpperCase(tmp));
|
||||
if (itmp > 0) or TryStrToFloat(copy(tmp,1,Pos(' ',tmp)-1),f) then
|
||||
begin
|
||||
//Writeln('RBN:',tmp);
|
||||
AddToList(tmp);
|
||||
if LocalDbg then Writeln(' RBN:',tmp);
|
||||
AddSpotToList(tmp);
|
||||
end
|
||||
else begin
|
||||
if (Pos('LOGIN',UpperCase(tmp)) > 0) and (cqrini.ReadString('RBN','login','') <> '') then
|
||||
lTelnet.SendMessage(cqrini.ReadString('RBN','login','')+#13+#10);
|
||||
if (Pos('please enter your call',LowerCase(tmp)) > 0) and (cqrini.ReadString('RBN','login','') <> '') then
|
||||
lTelnet.SendMessage(cqrini.ReadString('RBN','login','')+#13+#10);
|
||||
//Writeln('RBN:',tmp)
|
||||
if LocalDbg then Writeln('RBN:',tmp)
|
||||
end;
|
||||
sStart := sStop + 1;
|
||||
if sStart > Length(Buffer) then
|
||||
@ -173,7 +158,7 @@ begin
|
||||
lTelnet.CallAction
|
||||
end;
|
||||
|
||||
function TRBNThread.GetEmptyPos : Word;
|
||||
function TfrmGrayline.GetEmptyPos : Word;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
@ -188,7 +173,7 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
function TRBNThread.SpotterExists(spotter : String) : Word;
|
||||
function TfrmGrayline.SpotterExists(spotter : String) : Word;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
@ -203,145 +188,7 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TRBNThread.AddToList(spot : String);
|
||||
procedure GetRealCoordinate(lat,long : String; var latitude, longitude: Currency);
|
||||
var
|
||||
s,d : String;
|
||||
begin
|
||||
s := lat;
|
||||
d := long;
|
||||
if ((Length(s)=0) or (Length(d)=0)) then
|
||||
begin
|
||||
longitude := 0;
|
||||
latitude := 0;
|
||||
exit
|
||||
end;
|
||||
|
||||
if s[Length(s)] = 'S' then
|
||||
s := '-' +s ;
|
||||
s := copy(s,1,Length(s)-1);
|
||||
if pos('.',s) > 0 then
|
||||
s[pos('.',s)] := FormatSettings.DecimalSeparator;
|
||||
if not TryStrToCurr(s,latitude) then
|
||||
latitude := 0;
|
||||
|
||||
if d[Length(d)] = 'W' then
|
||||
d := '-' + d ;
|
||||
d := copy(d,1,Length(d)-1);
|
||||
if pos('.',d) > 0 then
|
||||
d[pos('.',d)] := FormatSettings.DecimalSeparator;
|
||||
if not TryStrToCurr(d,longitude) then
|
||||
longitude := 0;
|
||||
if dmData.DebugLevel>=4 then
|
||||
begin
|
||||
//Writeln('Lat: ',latitude);
|
||||
//Writeln('Long: ',longitude);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure ParseSpot(spot : String; var spotter, dxstn, freq, mode, stren : String);
|
||||
var
|
||||
i : Integer;
|
||||
y : Integer;
|
||||
b : Array of String[50];
|
||||
p : Integer=0;
|
||||
begin
|
||||
SetLength(b,1);
|
||||
for i:=1 to Length(spot) do
|
||||
begin
|
||||
if spot[i]<>' ' then
|
||||
b[p] := b[p]+spot[i]
|
||||
else begin
|
||||
if (b[p]<>'') then
|
||||
begin
|
||||
inc(p);
|
||||
SetLength(b,p+1)
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
spotter := b[2];
|
||||
i := pos('-', spotter);
|
||||
if i > 0 then
|
||||
spotter := copy(spotter, 1, i-1);
|
||||
dxstn := b[4];
|
||||
freq := b[3];
|
||||
mode := b[5];
|
||||
stren := b[6]
|
||||
end;
|
||||
|
||||
var
|
||||
spotter : String;
|
||||
call : String;
|
||||
stren : String;
|
||||
freq : String;
|
||||
lat : String;
|
||||
long : String;
|
||||
index : Word;
|
||||
band : String;
|
||||
tmp : Integer;
|
||||
wCall : String;
|
||||
mode : String;
|
||||
latitude, longitude: Currency;
|
||||
begin
|
||||
ParseSpot(spot, spotter, call, freq, mode, stren);
|
||||
if watchFor<>'' then
|
||||
begin
|
||||
if Pos('*',watchFor) > 0 then //ZL*
|
||||
begin
|
||||
wCall := copy(watchFor,1,Pos('*',watchFor)-1);
|
||||
if (Pos(wCall,call) <> 1) then //all callsign started with ZL
|
||||
exit
|
||||
end
|
||||
else begin
|
||||
if (call <> watchFor) then exit;
|
||||
end
|
||||
end;
|
||||
|
||||
if dmData.DebugLevel>=1 then
|
||||
begin
|
||||
Writeln('Spotter:',spotter,'*');
|
||||
Writeln('Signal: ',stren,'*');
|
||||
Writeln('*Freq: ',freq,'*')
|
||||
end;
|
||||
|
||||
dmDXCluster.id_country(spotter,lat,long);
|
||||
|
||||
index := SpotterExists(spotter);
|
||||
if index = 0 then //spotter doesn't exist, we need new position
|
||||
index := GetEmptyPos;
|
||||
|
||||
if index = 0 then
|
||||
begin
|
||||
Writeln('CRITICAL ERROR! THIS SHOULD NOT HAPPEN, RBN LIST IS FULL');
|
||||
exit
|
||||
end;
|
||||
band := dmDXCluster.GetBandFromFreq(freq,True);
|
||||
|
||||
frmGrayline.RBNSpotList[index].band := band;
|
||||
frmGrayline.RBNSpotList[index].spotter := spotter;
|
||||
frmGrayline.RBNSpotList[index].time := now;
|
||||
if TryStrToInt(stren,tmp) then
|
||||
frmGrayline.RBNSpotList[index].strengt := tmp
|
||||
else
|
||||
frmGrayline.RBNSpotList[index].strengt := 0;
|
||||
|
||||
GetRealCoordinate(lat,long,latitude, longitude);
|
||||
frmGrayline.RBNSpotList[index].lat := latitude;
|
||||
frmGrayline.RBNSpotList[index].long := longitude;
|
||||
if dmData.DebugLevel>=1 then
|
||||
begin
|
||||
Writeln('call: ',call);
|
||||
Writeln('spotter:',spotter);
|
||||
Writeln('stren: ',stren);
|
||||
Writeln('freq: ',freq);
|
||||
Writeln('band: ',dmDXCluster.GetBandFromFreq(freq,True));
|
||||
Writeln('Lat: ',lat);
|
||||
Writeln('Long: ',long)
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRBNThread.ConnectToRBN : Boolean;
|
||||
function TfrmGrayline.ConnectToRBN : Boolean;
|
||||
var
|
||||
server : String;
|
||||
port : Integer;
|
||||
@ -356,7 +203,7 @@ begin
|
||||
if not TryStrToInt(tmp,port) then
|
||||
port := 7000; //default value
|
||||
|
||||
if dmData.DebugLevel>=1 then Writeln('Server:',server,' Port:',port);
|
||||
if LocalDbg then Writeln('Server:',server,' Port:',port);
|
||||
|
||||
lTelnet.OnConnect := @lConnect;
|
||||
lTelnet.OnDisconnect := @lDisconnect;
|
||||
@ -369,41 +216,11 @@ begin
|
||||
on E : Exception do
|
||||
begin
|
||||
Result := False;
|
||||
if dmData.DebugLevel>=1 then Writeln('Can not connect to RBN! ',E.Message)
|
||||
if LocalDbg then Writeln('Can not connect to RBN! ',E.Message)
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TRBNThread.Execute;
|
||||
begin
|
||||
if not ConnectToRBN then
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then Writeln('Can not connect to RBN!');
|
||||
FreeAndNil(lTelnet);
|
||||
exit
|
||||
end;
|
||||
|
||||
InitCriticalSection(cs);
|
||||
while not Terminated do
|
||||
begin
|
||||
EnterCriticalsection(cs);
|
||||
try
|
||||
login := cqrini.ReadString('RBN','login','');
|
||||
watchFor := cqrini.ReadString('RBN','watch','');
|
||||
finally
|
||||
LeaveCriticalsection(cs)
|
||||
end;
|
||||
//RemoveOldSpots; done now by tmrRemoveDots
|
||||
Synchronize(@frmGrayline.SynRBN);
|
||||
sleep(1000)
|
||||
end;
|
||||
lTelnet.Disconnect(true);
|
||||
sleep(100);
|
||||
FreeAndNil(lTelnet);
|
||||
frmGrayline.rbn_status :='Disconnected';
|
||||
DoneCriticalsection(cs)
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.acShowStatusBarExecute(Sender : TObject);
|
||||
begin
|
||||
if acShowStatusBar.Checked then
|
||||
@ -425,16 +242,17 @@ begin
|
||||
else begin
|
||||
if acConnect.Caption = 'Disconnect' then
|
||||
begin
|
||||
RBNThread.Terminate;
|
||||
acConnect.Caption := 'Connect to RBN';
|
||||
sbGrayLine.SimpleText := rbn_status;//'Disconnected';
|
||||
pumLinkToRBNMonitor.Enabled:=true;
|
||||
if ltelnet <> nil then
|
||||
Begin
|
||||
lTelnet.Disconnect;
|
||||
sleep(100);
|
||||
FreeAndNil(lTelnet);
|
||||
rbn_status := 'Disconnected';
|
||||
end;
|
||||
end
|
||||
else begin
|
||||
acLinkToRbnMonitor.Checked :=false;
|
||||
RBNThread := TRBNThread.Create(True);
|
||||
RBNThread.FreeOnTerminate := True;
|
||||
RBNThread.Start
|
||||
ConnectToRBN;
|
||||
end
|
||||
end
|
||||
end;
|
||||
@ -448,7 +266,6 @@ begin
|
||||
rbn_status := 'Linked to RBNMonitor'
|
||||
else
|
||||
rbn_status := 'Disconnected';
|
||||
sbGrayLine.SimpleText := rbn_status;
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.FormCreate(Sender: TObject);
|
||||
@ -457,8 +274,7 @@ var
|
||||
i : Integer;
|
||||
begin
|
||||
InitCriticalSection(csRBN);
|
||||
tmrRemoveDots.Enabled:=false;
|
||||
RBNThread := nil;
|
||||
tmrSpotDots.Enabled:=false;
|
||||
for i:=1 to MAX_ITEMS do
|
||||
RBNSpotList[i].band := '';
|
||||
ImageFile := dmData.HomeDir+'images'+PathDelim+'grayline.bmp';
|
||||
@ -466,6 +282,13 @@ begin
|
||||
ImageFile := ExpandFileNameUTF8('..'+PathDelim+'share'+PathDelim+'cqrlog'+
|
||||
PathDelim+'images'+PathDelim+'grayline.bmp');
|
||||
ob:=new(Pgrayline,init(ImageFile));
|
||||
|
||||
//set debug rules for this form
|
||||
// bit 5, %10000, ---> -16 for routines in this form
|
||||
LocalDbg := dmData.DebugLevel >= 1 ;
|
||||
if dmData.DebugLevel < 0 then
|
||||
LocalDbg := LocalDbg or ((abs(dmData.DebugLevel) and 16) = 16 );
|
||||
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.FormShow(Sender: TObject);
|
||||
@ -479,28 +302,33 @@ begin
|
||||
tmrGrayLineTimer(nil);
|
||||
tmrAutoConnect.Enabled := True;
|
||||
delAfter := cqrini.ReadInteger('RBN','deleteAfter',60);
|
||||
tmrRemoveDots.Interval:=1000; //remove Spots(DOts) timer will always run 1 sec period.
|
||||
tmrRemoveDots.Enabled:=true;
|
||||
tmrSpotDots.Interval:=1000; //remove Spots(DOts) timer will always run 1 sec period.
|
||||
tmrSpotDots.Enabled:=true;
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
||||
begin
|
||||
tmrGrayLine.Enabled := False;
|
||||
tmrAutoConnect.Enabled:=False;
|
||||
tmrRemoveDots.Enabled:=False;
|
||||
sleep(100)
|
||||
tmrSpotDots.Enabled:=False;
|
||||
if ltelnet <> nil then
|
||||
Begin
|
||||
lTelnet.Disconnect;
|
||||
sleep(100);
|
||||
FreeAndNil(lTelnet);
|
||||
end;
|
||||
RemoveOldSpots(0);
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
begin
|
||||
if RBNThread<>nil then RBNThread.Terminate;
|
||||
cqrini.WriteBool('Grayline','Statusbar',sbGrayLine.Visible);
|
||||
dmUtils.SaveWindowPos(frmGrayline)
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
if dmData.DebugLevel>=1 then Writeln('Closing GrayLine window');
|
||||
if LocalDbg then Writeln('Closing GrayLine window');
|
||||
dispose(ob,done);
|
||||
DoneCriticalsection(csRBN)
|
||||
end;
|
||||
@ -544,23 +372,25 @@ end;
|
||||
|
||||
procedure TfrmGrayline.pumClearAllSpotsClick(Sender: TObject);
|
||||
begin
|
||||
tmrRemoveDots.Enabled:=False;
|
||||
tmrSpotDots.Enabled:=False;
|
||||
RemoveOldSpots(0);
|
||||
delAfter := cqrini.ReadInteger('RBN','deleteAfter',60);
|
||||
tmrRemoveDots.Enabled:=true;
|
||||
tmrSpotDots.Enabled:=true;
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.pumWatchForClick(Sender: TObject);
|
||||
|
||||
var inpWF:string;
|
||||
begin
|
||||
EnterCriticalsection(csRBN);
|
||||
watchFor := cqrini.ReadString('RBN','watch','');
|
||||
if InputQuery('Watch for:','', false, watchFor) then
|
||||
inpWF := cqrini.ReadString('RBN','watch','');
|
||||
if InputQuery('Watch for:','Enter up- or lowcase callsign or prefix and asterisk like OK2* ', false, inpWF) then
|
||||
Begin
|
||||
pumWatchFor.Caption:='Watch for: '+uppercase(watchFor);
|
||||
cqrini.WriteString('RBN','watch',watchFor);
|
||||
EnterCriticalsection(csRBN);
|
||||
watchFor:= uppercase(inpWF);
|
||||
pumWatchFor.Caption:='Watch for: '+watchFor;
|
||||
cqrini.WriteString('RBN','watch',watchFor);
|
||||
LeaveCriticalsection(csRBN);
|
||||
RemoveOldSpots(0);
|
||||
end;
|
||||
LeaveCriticalsection(csRBN);
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.sbtnGrayLineClick(Sender : TObject);
|
||||
@ -582,7 +412,7 @@ begin
|
||||
exit;
|
||||
end;
|
||||
if cqrini.ReadBool('RBN','AutoConnect',False) and (cqrini.ReadString('RBN','login','') <> '')
|
||||
and (RBNThread = nil) then acConnect.Execute;
|
||||
and (lTelnet = nil) then acConnect.Execute;
|
||||
|
||||
tmrAutoConnect.Enabled:=False; //job is done, nex initiate when FormShow run
|
||||
end;
|
||||
@ -592,9 +422,9 @@ begin
|
||||
Refresh
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.tmrRemoveDotsTimer(Sender: TObject);
|
||||
procedure TfrmGrayline.tmrSpotDotsTimer(Sender: TObject);
|
||||
begin
|
||||
tmrRemoveDots.Enabled:=false;
|
||||
tmrSpotDots.Enabled:=false;
|
||||
|
||||
dec(delAfter);
|
||||
if delAfter < 1 then
|
||||
@ -602,8 +432,22 @@ begin
|
||||
delAfter := cqrini.ReadInteger('RBN','deleteAfter',60);
|
||||
RemoveOldSpots(delAfter);
|
||||
end;
|
||||
|
||||
sbGrayLine.SimpleText := rbn_status;
|
||||
if rbn_status='Connected' then
|
||||
Begin
|
||||
acConnect.Caption := 'Disconnect';
|
||||
pumLinkToRBNMonitor.Enabled:=false;
|
||||
end
|
||||
else
|
||||
Begin
|
||||
acConnect.Caption := 'Connect to RBN';
|
||||
pumLinkToRBNMonitor.Enabled:=True;
|
||||
end;
|
||||
|
||||
tmrRemoveDots.Enabled:=true;
|
||||
SynRBN;
|
||||
|
||||
tmrSpotDots.Enabled:=true;
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.kresli;
|
||||
@ -655,18 +499,6 @@ var
|
||||
c : TColor;
|
||||
begin
|
||||
|
||||
sbGrayLine.SimpleText := rbn_status;
|
||||
if rbn_status='Connected' then
|
||||
Begin
|
||||
acConnect.Caption := 'Disconnect';
|
||||
pumLinkToRBNMonitor.Enabled:=false;
|
||||
end
|
||||
else
|
||||
Begin
|
||||
acConnect.Caption := 'Connect to RBN';
|
||||
pumLinkToRBNMonitor.Enabled:=True;
|
||||
end;
|
||||
|
||||
ob^.body_smaz;
|
||||
for i:=1 to MAX_ITEMS do
|
||||
begin
|
||||
@ -678,13 +510,14 @@ begin
|
||||
if band<>RBNSpotList[i].band then
|
||||
Continue
|
||||
end;
|
||||
{
|
||||
Writeln('Syn:spotter:',RBNSpotList[i].spotter);
|
||||
Writeln('Syn:stren: ',RBNSpotList[i].strengt);
|
||||
Writeln('Syn:band: ',RBNSpotList[i].band);
|
||||
Writeln('Syn:lat: ',RBNSpotList[i].lat);
|
||||
Writeln('Syn:long: ',RBNSpotList[i].long);
|
||||
}
|
||||
if LocalDbg then
|
||||
begin
|
||||
Writeln('Syn:spotter:',RBNSpotList[i].spotter);
|
||||
Writeln('Syn:stren: ',RBNSpotList[i].strengt);
|
||||
Writeln('Syn:band: ',RBNSpotList[i].band);
|
||||
Writeln('Syn:lat: ',RBNSpotList[i].lat);
|
||||
Writeln('Syn:long: ',RBNSpotList[i].long);
|
||||
end;
|
||||
case RBNSpotList[i].strengt of
|
||||
11..20 : c := cqrini.ReadInteger('RBN','20db',clPurple);
|
||||
21..30 : c := cqrini.ReadInteger('RBN','30db',clMaroon);
|
||||
@ -698,36 +531,6 @@ begin
|
||||
Refresh
|
||||
end;
|
||||
|
||||
function TfrmGrayline.GetEmptyPos : Word;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
Result := 0;
|
||||
for i:= 1 to MAX_ITEMS do
|
||||
begin
|
||||
if frmGrayline.RBNSpotList[i].band='' then
|
||||
begin
|
||||
Result := i;
|
||||
break
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
function TfrmGrayline.SpotterExists(spotter : String) : Word;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
Result := 0;
|
||||
for i:= 1 to MAX_ITEMS do
|
||||
begin
|
||||
if frmGrayline.RBNSpotList[i].spotter=spotter then
|
||||
begin
|
||||
Result := i;
|
||||
break
|
||||
end
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TfrmGrayline.RemoveOldSpots(RemoveAfter:integer); //setting RemoveAfter:=0 removes all Spots
|
||||
var
|
||||
i : Integer;
|
||||
@ -783,10 +586,10 @@ procedure TfrmGrayline.AddSpotToList(spot : String);
|
||||
d[pos('.',d)] := FormatSettings.DecimalSeparator;
|
||||
if not TryStrToCurr(d,longitude) then
|
||||
longitude := 0;
|
||||
if dmData.DebugLevel>=4 then
|
||||
if LocalDbg then
|
||||
begin
|
||||
//Writeln('Lat: ',latitude);
|
||||
//Writeln('Long: ',longitude);
|
||||
Writeln('Lat: ',latitude);
|
||||
Writeln('Long: ',longitude);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -834,7 +637,7 @@ begin
|
||||
end
|
||||
end;
|
||||
|
||||
if dmData.DebugLevel>=1 then
|
||||
if LocalDbg then
|
||||
begin
|
||||
Writeln('Spotter:',spotter,'*');
|
||||
Writeln('Signal: ',stren,'*');
|
||||
@ -865,17 +668,18 @@ begin
|
||||
GetRealCoordinate(lat,long,latitude, longitude);
|
||||
frmGrayline.RBNSpotList[index].lat := latitude;
|
||||
frmGrayline.RBNSpotList[index].long := longitude;
|
||||
if dmData.DebugLevel>=1 then
|
||||
if LocalDbg then
|
||||
begin
|
||||
Write('call: ',call);
|
||||
Write(' spotter:',spotter);
|
||||
Write(' stren: ',stren);
|
||||
Write(' freq: ',freq);
|
||||
Write(' band: ',dmDXCluster.GetBandFromFreq(freq,True));
|
||||
Write(' Lat: ',lat);
|
||||
Writeln(' Long: ',long)
|
||||
Write('Add call: ',call);
|
||||
Write('Add spotter:',spotter);
|
||||
Write('Add stren: ',stren);
|
||||
Write('Add freq: ',freq);
|
||||
Write('Add band: ',dmDXCluster.GetBandFromFreq(freq,True));
|
||||
Write('Add Lat: ',lat);
|
||||
Writeln('Add Long: ',long)
|
||||
end;
|
||||
SynRBN;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user