📄 unit1.pas
字号:
{*********************************************************************
* FileName: unit1.pas
* Dependencies: See uses section below
* System: Win32 (WinXP)
* Compiler: Delphi 5
* Company: sprut
* Copyright: 2007-2010 Joerg Bredendiek (sprut)
* Homepage : www.sprut.de
*
********************************************************************}
{* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, CPort, StdCtrls, usbdll, Grids, Math, ComCtrls, Menus, ScktComp,
GraphicEx, URLMon, ShellApi, jpeg, ToolWin, ImgList, FileCtrl, about;
const
SET_MODE = $43;
RD_ADC = $37;
READ_OFFSET = $38;
SET_OFFSET = $39;
SYS_ADC = $51;
SYS_PWM2 = $58;
SYS_EEPROM = $5A;
Erde = 60;
rad = pi/180;
maxPlane = 255;
maxTrack = 255;
noheading = -10; // Wert fuer keinen kurs
clltRed = $008080FF;
clltBlue = $00FFc080;
clltBlue1 = $00FFA080;
clltGreen = $0080FF80;
clltYellow= $0080FFFF;
adsbPIC = 1;
rxcontrol = 2;
maxInterogatoren = 80;
type
Tkoordinaten = record
laenge : real;
breite : real;
x,y : integer;
V : boolean;
hoehe : integer; // in fuss
time : TDateTime;
end;
Tkenner = record
name : string[16];
typs : string[16];
typl : string[32];
end;
Tairframe = record
AA : dword;
known : boolean;
kenner : Tkenner;
end;
Tosmtile = record
z,x,y : integer;
ok : boolean;
url : string;
name : string;
bm : Tbitmap;
pic : Tpicture;
kul, kor,
kur, kol : Tkoordinaten; // Eckpunkte
end;
Tstring255 = string[255];
TForm1 = class(TForm)
ComPort1: TComPort;
Image1: TImage;
Timer1: TTimer;
TrackBar1: TTrackBar;
MainMenu1: TMainMenu;
File1: TMenuItem;
view1: TMenuItem;
Grid1: TMenuItem;
Statenames1: TMenuItem;
Towns1: TMenuItem;
detailedmaps1: TMenuItem;
Crosshair1: TMenuItem;
States1: TMenuItem;
Label2: TLabel;
End1: TMenuItem;
Colors1: TMenuItem;
Borders1: TMenuItem;
ColorDialog1: TColorDialog;
Grid2: TMenuItem;
Crosshair2: TMenuItem;
Statenames2: TMenuItem;
Towns2: TMenuItem;
loadmaps1: TMenuItem;
Europewest1: TMenuItem;
EuropeUK1: TMenuItem;
EuropeNorth1: TMenuItem;
EuropeSouth1: TMenuItem;
EuropeEast1: TMenuItem;
EuropeBalkan1: TMenuItem;
Russia1: TMenuItem;
Airports1: TMenuItem;
Label4: TLabel;
Airports2: TMenuItem;
AirportAltitude1: TMenuItem;
Aircraft1: TMenuItem;
RangeCircles1: TMenuItem;
Config1: TMenuItem;
RangeCircles2: TMenuItem;
N50NM1: TMenuItem;
N50km1: TMenuItem;
N5005ftaltitude1: TMenuItem;
AirportNames2: TMenuItem;
normal2: TMenuItem;
ICAO2: TMenuItem;
IATA2: TMenuItem;
none2: TMenuItem;
Panel1: TPanel;
StringGrid1: TStringGrid;
Memo2: TMemo;
Memo1: TMemo;
RadioGroup1: TRadioGroup;
Button1: TButton;
Button2: TButton;
dropAircraft1: TMenuItem;
after20s1: TMenuItem;
after1min1: TMenuItem;
after5min1: TMenuItem;
after30min1: TMenuItem;
after1hour1: TMenuItem;
never1: TMenuItem;
ATSRoutes1: TMenuItem;
Label5: TLabel;
ATSRoutes2: TMenuItem;
removeallMaps1: TMenuItem;
Label1: TLabel;
Label3: TLabel;
Label6: TLabel;
StatusBar1: TStatusBar;
goto1: TMenuItem;
N001: TMenuItem;
OSMbackground1: TMenuItem;
OSmap1: TMenuItem;
fullcolor1: TMenuItem;
pale1: TMenuItem;
pale2: TMenuItem;
gray1: TMenuItem;
rangering1: TMenuItem;
Aircrafttrack1: TMenuItem;
showpredictedposition1: TMenuItem;
OSMmap1: TMenuItem;
load1: TMenuItem;
save1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ImageList1: TImageList;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
savedef: TMenuItem;
loaddefault1: TMenuItem;
Afrika1: TMenuItem;
Asia1: TMenuItem;
Antarctika1: TMenuItem;
Northamerica1: TMenuItem;
Southamerica1: TMenuItem;
Asiawest1: TMenuItem;
Asiacentral1: TMenuItem;
default1: TMenuItem;
cleanuposm1: TMenuItem;
about1: TMenuItem;
AirportILS1: TMenuItem;
colorbyaltitude1: TMenuItem;
Coordinates1: TMenuItem;
N5112341: TMenuItem;
N5111221: TMenuItem;
N5111222: TMenuItem;
GroundRADAR1: TMenuItem;
GroundRADAR2: TMenuItem;
adsbPIC1: TMenuItem;
Urefoffset1: TMenuItem;
N40mV1: TMenuItem;
N60mV1: TMenuItem;
N80mV1: TMenuItem;
N100mV1: TMenuItem;
N120mV1: TMenuItem;
N140mV1: TMenuItem;
N160mV1: TMenuItem;
N180mV1: TMenuItem;
N200mV1: TMenuItem;
Reset1: TMenuItem;
activateBootloader1: TMenuItem;
off1: TMenuItem;
TestPWM501: TMenuItem;
TestPWM51: TMenuItem;
ButtonStart: TButton;
ButtonStop: TButton;
showReply1: TMenuItem;
all1: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
N41: TMenuItem;
Internet1: TMenuItem;
sprut1: TMenuItem;
Airframesorg1: TMenuItem;
ServerSocket: TServerSocket;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
procedure LoadAllMaps(dir :string);
procedure LoadMap(filename: string);
function asc2int(z : char):byte;
function koordtostr(x: real):string;
procedure makeBM(breite, hoehe : integer; erase :boolean);
function findairframe(AA: dword):Tairframe;
procedure reportufo(AA:dword);
procedure LoadTowns(filename: string);
procedure LoadPorts(filename: string);
function FindAirport(name : string):integer;
function rwkoord(st : string):Tkoordinaten;
procedure Load_apt_out(filename: string);
procedure load_all_apt_out;
procedure Load_ils_out(filename: string);
procedure load_all_ils_out;
procedure Load_ats_out(filename: string);
procedure load_all_ats_out;
procedure Loadicao24;
procedure LoadIFF;
procedure LoadJets(zusatz : boolean);
procedure movepunkt(var P : TKoordinaten);
procedure guesposition;
procedure move;
procedure MakeLatLong;
procedure zeichne;
procedure clrscr(bm: TBitmap);
procedure fillscr(bm: TBitmap; col :Tcolor);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Sende_Empfange(N,M :byte);
procedure RadioGroup1Click(Sender: TObject);
Function AA2Land(AA : dword):string;
procedure Workoff;
procedure Timer1Timer(Sender: TObject);
procedure makedir(name : string);
procedure Checkcontinents;
procedure FormCreate(Sender: TObject);
procedure kommandozeile;
procedure load_Eu_west(Sender: TObject);
procedure load_Eu_UK(Sender: TObject);
procedure load_Eu_North(Sender: TObject);
procedure load_Eu_South(Sender: TObject);
procedure load_Eu_East(Sender: TObject);
procedure load_Russia(Sender: TObject);
procedure load_Eu_balkan(Sender: TObject);
procedure Decode;
procedure Airplot(nr:integer);
procedure make_Table;
procedure repaintPPI(Bmove : boolean);
procedure TrackBar1Change(Sender: TObject);
procedure Grid1Click(Sender: TObject);
procedure Towns1Click(Sender: TObject);
procedure Statenames1Click(Sender: TObject);
procedure Crosshair1Click(Sender: TObject);
procedure detailedmaps1Click(Sender: TObject);
procedure States1Click(Sender: TObject);
procedure End1Click(Sender: TObject);
procedure Borders1Click(Sender: TObject);
procedure Grid2Click(Sender: TObject);
procedure Crosshair2Click(Sender: TObject);
procedure Statenames2Click(Sender: TObject);
procedure Towns2Click(Sender: TObject);
procedure Airports1Click(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Airports2Click(Sender: TObject);
procedure AirportAltitude1Click(Sender: TObject);
procedure Aircraft1Click(Sender: TObject);
procedure RangeCircles1Click(Sender: TObject);
procedure normal2Click(Sender: TObject);
procedure ICAO2Click(Sender: TObject);
procedure IATA2Click(Sender: TObject);
procedure none2Click(Sender: TObject);
procedure N50NM1Click(Sender: TObject);
procedure N50km1Click(Sender: TObject);
procedure N5005ftaltitude1Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure after20s1Click(Sender: TObject);
procedure after1min1Click(Sender: TObject);
procedure after5min1Click(Sender: TObject);
procedure after30min1Click(Sender: TObject);
procedure after1hour1Click(Sender: TObject);
procedure never1Click(Sender: TObject);
procedure ATSRoutes1Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ATSRoutes2Click(Sender: TObject);
procedure removeallMaps1Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label6Click(Sender: TObject);
function osm_CleanUp:integer;
function osm_koord2tile(lat, long : real; zoom : integer): Tosmtile;
procedure osm_tile2koord(var tile : Tosmtile);
procedure N001Click(Sender: TObject);
procedure loadOSM(zoom : integer);
procedure OSMbackground1Click(Sender: TObject);
procedure fullcolor1Click(Sender: TObject);
procedure pale1Click(Sender: TObject);
procedure pale2Click(Sender: TObject);
procedure gray1Click(Sender: TObject);
procedure rangering1Click(Sender: TObject);
procedure showpredictedposition1Click(Sender: TObject);
procedure OSMmap1Click(Sender: TObject);
procedure save1Click(Sender: TObject);
procedure saveposition(default: boolean);
procedure load1Click(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -