⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 ADS-B接收机DIY全套资料
💻 PAS
📖 第 1 页 / 共 2 页
字号:

{*********************************************************************
 * 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 + -