Mellékletek
POSEIDON NAVIGATION PROJECT iNtelligent Map with Rules of Traffic
Készítette: BED
K DÁVID & SZIRBIK FERENC
KONZULENSEK: VÁMOSSY ZOLTÁN (DOCENS) & MOLNÁR ANDRÁS (ADJUNKTUS)
2004. november 8. BMF-NIK IAR Budapesti M szaki F iskola – Neumann János Informatikai F iskolai Kar
Informatikai és Automatizált Rendszerek szakirány
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
TARTALOMJEGYZÉK TARTALOMJEGYZÉK ................................................................................................................2 A MELLÉKLET: ANGOL-MAGYAR SZAKSZÓTÁR .......................................................................3 B MELLÉKLET: µ-BLOX MS1E GPS VEV MODUL .................................................................4 M szaki paraméterei, fizikai specifikáció .....................................................................4 C MELLÉKLET: GRAPHS AND SPANNING TREES .....................................................................5 01 – Képerny kép indítás után .......................................................................................5 02 – Új gráf létrehozása ...................................................................................................5 03 – Új elem hozzáadása a gráf-pontok illetve a súlyvektor listájába .........................6 04 – Az „Elso” gráf létrehozás után................................................................................6 05 – Megjelenítési beállítások..........................................................................................7 06 – Globális konstansok és változók .............................................................................7 07 – Új gráf pont hozzáadása ..........................................................................................8 08 – (X;Y) sík megadása ...................................................................................................8 09 – Új él hozzáadása.......................................................................................................9 10 – Gráf pont kiválasztása .............................................................................................9 11 – Él kiválasztása ........................................................................................................ 10 12 – Gráf tulajdonságai .................................................................................................. 10 13 – Aktuális súly beállítása .......................................................................................... 11 14 – Statikus kapcsolatmátrix generálása ....................................................................11 15 – Kapcsolatmátrix ..................................................................................................... 12 16 – Útkeresés Dijksra algoritmusa alapján ................................................................. 12 17 – Egy gráf a kijelölt legrövidebb úttal A és C pont között..................................... 13 D MELLÉKLET: GRAPHS AND SPANNING TREES FEJLESZT I DOKUMENTÁCIÓ.................... 14 01 – TObject3D osztály .................................................................................................. 14 A konstansok ................................................................................................................14 Típusok.........................................................................................................................14 Változók .......................................................................................................................15 Az osztály .....................................................................................................................15 02 – A TGraph osztály ...................................................................................................17 A konstansok ................................................................................................................17 A változók ....................................................................................................................17 A típusok ......................................................................................................................17 Az osztály .....................................................................................................................19 03 – A TypeUnit további részei .................................................................................... 19 További típusok ............................................................................................................19 További eljárások illetve függvények ............................................................................20 04 – A TGraph osztály Draw() metódusa .................................................................... 20 E MELLÉKLET – C# OSZTÁLYLEÍRÁSOK A PPC FEJLESZTÉSB L: ....................................... 24
38/2.
POSEIDON NAVIGATION PROJECT
IAR
SZAKSZÓTÁR
A MELLÉKLET: ANGOL-MAGYAR SZAKSZÓTÁR Magyar szó/kifejezés útkeresés kiinduló pont cél elkerülend (objektumok) elkerülend ellenségek költségek minimalizálása objektum elkezd mozogni csapda csúcs feszít fa
38/3.
Angol szó/kifejezés pathfinding starting point goal avoiding obstacles avoiding enemies minimizing costs object begins to move trap vertex spanning tree
POSZEIDON NAVIGATION PROJECT
IAR
B MELLÉKLET: µ-BLOX MS1E GPS VEV M szaki paraméterei, fizikai specifikáció
38/4.
TARTALOMJEGYZÉK
MODUL
POSZEIDON NAVIGATION PROJECT
IAR
C MELLÉKLET: GRAPHS AND SPANNING TREES 01 – Képerny kép indítás után
02 – Új gráf létrehozása
38/5.
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
03 – Új elem hozzáadása a gráf-pontok illetve a súlyvektor listájába
04 – Az „Elso” gráf létrehozás után
38/6.
POSZEIDON NAVIGATION PROJECT 05 – Megjelenítési beállítások
06 – Globális konstansok és változók
38/7.
IAR
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT 07 – Új gráf pont hozzáadása
08 – (X;Y) sík megadása
38/8.
IAR
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT 09 – Új él hozzáadása
10 – Gráf pont kiválasztása
38/9.
IAR
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT 11 – Él kiválasztása
12 – Gráf tulajdonságai
38/10.
IAR
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT
IAR
13 – Aktuális súly beállítása
14 – Statikus kapcsolatmátrix generálása
38/11.
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT
IAR
15 – Kapcsolatmátrix
16 – Útkeresés Dijksra algoritmusa alapján
38/12.
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT
IAR
17 – Egy gráf a kijelölt legrövidebb úttal A és C pont között
38/13.
TARTALOMJEGYZÉK
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
D MELLÉKLET: GRAPHS AND SPANNING TREES FEJLESZT
I
DOKUMENTÁCIÓ
01 – TObject3D osztály A konstansok CONST MAXPOINTS MAXEDGES MAXARMS ACCURACY
= = = =
500; 1000; 3; 0.001;
A MAXPOINTS határozza meg, hogy maximálisan mennyi grafikai pont lehet az ábrán. A program ezen része is teljesen statikus m ködésre van felkészítve, a kés bbi programverziók legfontosabb lépése a dinamikus tárolás megvalósítása lesz. A MAXEDGES értelemszer en a maximálisan ábrázolható grafikai élek számát jelenti (már többször említettem, hogy a grafikai élek és pontok száma nem egyezik meg a gráf éleinek és pontjainak számával). A MAXARMS egy bels konstans, mely korlátozásával (3 a legkisebb értéke) a TObject3D osztály egy lényeges funkcióját elérhetetlenné tesszük. Képes lenne az osztály több elem tárolására (mindegyiket külön lokális koordinátarendszerben), és ezen elemeket egy osztálypéldány tagjaiként egymáshoz képest mozgatni, forgatni tudnánk. EZ a MAXARMS határozza meg, hogy mennyi ilyen elem tárolható egy példányban. Az 1. elem nem tényleges elem, itt nem tárolhatunk adatot. Ez a bázis koordinátarendszert határozza meg. A 2.-ban tároljuk a tárgyainkat, és ennek biztonságos kezeléséhez (mutatók elérik még a következ elemet is) szükséges még egy elem. Ezért 3 az értéke minimálisan a MAXARMS-nak. Az ACCURANCY egy pontosság érték. Két valós számot az osztály már egyenl nek tekint, ha ezen értéknél kisebb a különbség közöttük. Típusok TYPE (*** T3DObjects ***) TTrans = Array [1..4,1..4] TVector3D = Array [1..3] TPoint4D = Array [1..4] TCoords = Array [1..3] TPoints = Array [1..MAXPOINTS] TPointsColor = Array [1..MAXPOINTS,1..3] TPointsLabel = Array [1..MAXPOINTS,1..2] TEdges = Array [1..MAXEDGES,1..5] TMatrix3x3 = Array [1..3] TData = Record Active : Boolean; Prev : Byte; Next : Byte; Coords : TCoords; Offset : TVector3D; PointsDB : Integer; Points : TPoints; EdgesDB : Integer; Edges : TEdges; ResultPoints : TPoints;
38/14.
Of Of Of Of Of Of Of Of Of
Double; Double; Double; TPoint4D; TPoint4D; Byte; ShortString; Integer; TVector3D;
POSZEIDON NAVIGATION PROJECT
TDataArray
IAR
TARTALOMJEGYZÉK
PointsLabel : TPointsLabel; PointsColor : TPointsColor; End; = Array [1..MAXARMS] Of TData;
A TTrans mátrix tartalmazza a transzformációs m veleteket (forgatás, eltolás, stb.). A TVector3D egy 3D-s vektor avagy egy pont tárolására alkalmas. A TPoint4D ehhez hasonlósan a homogén koordinátás alakban képes ugyanerre. A TCoords a koordinátatengelyek homogén koordinátás alakjait tárolja. A TPoints tömbben találhatók a grafikus pontok, a TEdges tömbben pedig a grafikus élek adatai. A TPointsColor minden pontra tárolja a színét, a TPointsLabel pedig egy feliratot, mely szintén megjelenhet, ha a beállítások ezt engedik. A TMatrix3x3 egy 3D-s környezetben tárolt mátrix. A TDataArray tárolja az egyes elemek (amib l a Graphs and spanning trees csak ténylegesen egyet használ) adatait. Változók VAR TextFont BACKGROUND DefaultColor TEXTOVERWRITE VISI_SERIALOFPOINTS VISI_NAMEOFPOINTS VISI_SERIALOFEDGES VISI_NAMEOFEDGES VISI_WEIGHT VISI_COLORS VISI_DATUM SerialOfPointsColor NameOfPointsColor SerialOfEdgesColor NameOfEdgesColor WeightColor DatumColor
: : : : : : : : : : : : : : : : :
TFont; TColor; TColor; Boolean; Boolean; Boolean; Boolean; Boolean; Boolean; Boolean; Boolean; TColor; TColor; TColor; TColor; TColor; TColor;
A változók az egyes feliratok láthatóságát, illetve színét állítják be. A TEXTOVERWRITE igaz értéke esetén a feliratok háttere átlátszó lesz. Így bár több információ lesz az ábrán, ám ezek kevésbé leolvasható formában. Az osztály TObject3D = Class (TObject) Data : TDataArray; // Az objektumok adatai OX : Integer; // Origó X koordinátája OY : Integer; // Origó Y koordinátája RotateUgamma : TTrans; // Tetsz leges U tengely körüli forgatás mátrixa (gamma szöggel) u : TPoint4D; // Az u tenngely gamma : Double; // A gamma szög (radián) Act : Byte; // Az aktuális kar. RotXAlpha : TTrans; // Az X tengely körüli forgatás mátrixa RotYAlpha : TTrans; // Az Y tengely körüli forgatás mátrixa RotZAlpha : TTrans; // Az Z tengely körüli forgatás mátrixa alpha : Double; // A X, Y, Z tengely körüli forgatás szöge. PROCEDURE InitObject3D ( KX : Integer; KY : Integer ); PROCEDURE DataInit; PROCEDURE AddArm ( num : Byte;
38/15.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
prev : Byte; next : Byte; coords : TCoords; offset : TVector3D ); PROCEDURE AddEdge ( num : Byte; p1 : Integer; p2 : Integer; ColorR : Byte; ColorG : Byte; ColorB : Byte ); PROCEDURE AddPoint ( num : Byte; pointDB : Byte; x : Double; y : Double; z : Double ); PROCEDURE AddPointColor ( num : Byte; pointDB : Byte; R : Byte; G : Byte; B : Byte ); PROCEDURE AddPointWithLabel ( num : Byte; pointDB : Byte; x : Double; y : Double; z : Double; PLabel : ShortString; PLabelType : ShortString ); PROCEDURE DataStart ( num : Byte ); FUNCTION SetVector3D ( x : Double; y : Double; z : Double ) : TVector3D; FUNCTION SetPoint4D ( x : Double; y : Double; z : Double; h : Double ) : TPoint4D; FUNCTION SetCoords ( X : TPoint4D; Y : TPoint4D; Z : TPoint4D ) : TCoords; PROCEDURE InitRotateUgamma ( v : TPoint4D; rad : Double ); PROCEDURE InitRotXAlpha ( rad : Double ); PROCEDURE InitRotYAlpha ( rad : Double ); PROCEDURE InitRotZAlpha ( rad : Double ); FUNCTION SetTrans ( Coords : TCoords; Offset : TVector3D ) : TTrans; FUNCTION SetNegativMatrix ( Matrix : TMatrix3x3 ) : TMatrix3x3; FUNCTION SetInvTrans ( Coords : TCoords; Offset : TVector3D ) : TTrans; FUNCTION SetTransponalt ( TT : TMatrix3x3 ) : TMatrix3x3; FUNCTION Multiplication3x1_3x3 ( Matrix : TMatrix3x3; v : TVector3D ) : TVector3D; FUNCTION Multiplication4x1_4x4Single ( Matrix : TTrans; v : TPoint4D ): TPoint4D; FUNCTION Multiplication4x1_4x4 ( v : TPoints; Matrix : TTrans; PointsDB : Integer ) : TPoints; FUNCTION Multiplication4x1_4x4Coords ( v : TCoords; Matrix : TTrans ) : TCoords; PROCEDURE DrawObject ( ManipulatorImage : TImage; Original : Boolean; PointsOrEdgesDraw : Char );
38/16.
POSZEIDON NAVIGATION PROJECT
IAR
PROCEDURE MoveManipulator
FUNCTION GetVectorLength ( A FUNCTION SetNormalVector ( A B End;
TARTALOMJEGYZÉK
( ManipulatorImage : TImage; CLRSCR : Boolean; PointsOrEdgesDraw : Char ); : TVector3D ) : Double; : TVector3D; : TVector3D ) : TVector3D;
02 – A TGraph osztály A konstansok CONST MAXITEM MAXGRAPHPOINTS MAXGRAPHEDGES MAXSHAPEPOINTS SHAPELISTFILENAME SHAPEDIRECTORY SAVEDIRECTORY
= = = = = = =
10; 50 100 20; 'shapes.lst'; 'shape/'; 'graphs/';
A MAXITEM határozza meg, hogy statikus esetben egy élen mennyi súly, illetve egy pontban mennyi adat tárolható. A MAXGRAPHPOINTS és a MAXGRAPHEDGES a gráf pontjaira illetve éleire meghatározott statikus korlát. A MAXSHAPEPOINTS meghatározza, hogy egy gráf pont minta 3D-s objektuma maximálisan mennyi grafikai pontból állhat. A SHAPEDIRECTORY és a SAVEDIRECTORY az alapértelmezett könyvtárakat állítja be, míg a SHAPELISTFILENAME a minták listáját tároló file nevét. A változók Var DIRECTIVITYLENGTH DIRECTIVITYLENGTH2 WayColor
: Byte; : Byte; : TColor;
A gráf irányítottságát grafikailag jelölni többféleképpen lehet. A DIRECTIVITYLENGTH és a DIRECTIVITYLENGTH2 változók lehet vé teszik, hogy hosszabb, illetve nagyobb nyilakat tudjunk megjeleníteni. A WayColor a megtalált út színét határozza meg.
A típusok (*** TGraph ***) TRec
= Record ItemName : ItemType : DefaultValue : End; TGraphDataArray = Array [1..MAXITEM] TGraphWeightsArray = Array [1..MAXITEM] TPointRec = Record Enable : X : Y : Z : Serial : Name : AllowName : Shape :
38/17.
ShortString; ShortString; ShortString; Of ShortString; Of ShortString; Boolean; Double; Double; Double; Word; ShortString; Boolean; ShortString;
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Color : TColor; DataArray : TGraphDataArray; End; TEdgeRec = Record Enable : Boolean; PointOne : Word; PointTwo : Word; Serial : Word; Name : ShortString; AllowName : Boolean; Color : TColor; Directivity : Byte; WeightsArray : TGraphWeightsArray; IsWay : Boolean; End; TRecArray = Array [1..MAXITEM] Of TRec; TPointsArray = Array [1..MAXGRAPHPOINTS] Of TPointRec; TEdgesArray = Array [1..MAXGRAPHEDGES] Of TEdgeRec; TRelationMatrix = Array [1..MAXGRAPHPOINTS,1..MAXGRAPHPOINTS] Of Double; TPFRec = Record Length : Double; Prev : Word; Status : Boolean; End; TPFArray = Array [1..MAXGRAPHPOINTS] Of TPFRec;
A TRec rekord tárolja a súlyvektor illetve a pontok adatainak tulajdonságait a gráf tulajdonságai között. A TRecArray vektor tárolja a a TRec típusú elemeket a statikus súlyvektor és gráf pont adatvektor számára. A TGraphDataArray a pontok adatainak statikus vektora szinkronban TRecArray-el. A TGraphWeightsArray a statikus súlyvektor szinkronban TRecArray-el. A TPointRec rekord tárolja egy adott gráf pont tulajdonságait. Az ’Enable’ határozza meg, hogy logikailag törölt-e az elem, avagy sem. Az ’X’,’Y’ és ’Z’ a koordinátáit határozza meg, a ’Serial’ az automatikusan generálódó sorszámát, a ’Name’ a nevét, az ’AllowName’ ennek a létezését. A ’Shape’ az adott grafikai mintát tároló file neve, a ’Color’ pedig a gráf pont színe. A ’DataArray’ tárolja a TGraphDataArray-el szinkronban a gráf csomópontjaiban tárolt adatokat. A TEdgeRec rekord a gráf éleinek tulajdonságait tárolja. Az ’Enable’ itt is a logikai törlöttségre utal, a ’Serial’, ’Name’, ’AllowName’ és ’Color’ szintén azonos jelentéssel bír, mint a gráf pontjai esetén ezt már láttuk. A ’PointOne’ és ’PointTwo’ határozza meg az él által összekötött két pont sorszámát. A ’Directivity’ ennek függvényében az irányítottságot jelölheti. Ha értéke ’0’, akkor nincs irányítottság. Irányított gráf esetében ez azt jelenti, hogy oda-vissza út létezik (ezt a kés bbiekben le lehet majd tiltani, mivel el fordulhat olyan probléma, mely során ezt nem célszer alkalmazni, azonban térkép program esetén a kétsávú utat ezzel tudjuk modellezni)! Az ’IsWay’ logikai változó igaz értéke esetén az adott él egy korábbi útszámítás során az eredmény része volt. Ilyenkor a színe a saját ’Color’ tulajdonsága helyett a ’WayColor’ lesz. A TPointsArray és a TEdgesArray tárolják a pontokat és az éleket statikus esetben. A TRelationMatrix a kapcsolatmátrix típusa. A TPFRec és a TPFArray Dijkstra legrövidebb út keres algoritmusához szükséges. TPArray-ben fog keletkezni az eredmény.
38/18.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Az osztály TGraph
= Class (TObject) public // kesobbiekben private NameOfGraph : ShortString; Comment : ShortString; StorageType : ShortString; TypeOfGraph : ShortString; MultipleEdges : Boolean; Continuous : Boolean; MultipleWeight : Boolean; DataArray : TRecArray; WeightsArray : TRecArray; DANum : Byte; WANum : Byte; MaxXY : Integer; PointsArray : TPointsArray; PointsNum : Word; ShowPoints : TObject3D; EdgesNum : Word; EdgesArray : TEdgesArray; ShowInfo : TObject3D; CurrentWeight : Integer; CurrentDatum : Integer; RelationMatrix : TRelationMatrix; public PROCEDURE InitGraph; PROCEDURE AddItemRecArray ( Var TRA : TRecArray; Var Num : Byte; ItemName : ShortString; ItemType : ShortString; DefaultValue : ShortString ); PROCEDURE AddPoint ( PointRec : TPointRec ); PROCEDURE DeletePoint ( Serial : Word ); PROCEDURE EditPoint ( PointRec : TPointRec; Serial : Word ); PROCEDURE AddEdge ( EdgeRec : TEdgeRec ); PROCEDURE DeleteEdge ( Serial : Word ); PROCEDURE EditEdge ( EdgeRec : TEdgeRec; Serial : Word ); PROCEDURE Draw ( Image : TImage ); PROCEDURE PathfindingDijkstra ( StartPoint : Word; DestinationPoint : Word; Var PFArray : TPFArray ); PROCEDURE DijkstraNeighbours ( Var PFArray : TPFArray; act : Word ); FUNCTION DijkstraMinimum ( PFArray : TPFArray ) : Word; PROCEDURE InitEdgeWay; FUNCTION SearchEdge ( PointOne : Word; PointTwo : Word ) : Word; End;
03 – A TypeUnit további részei További típusok TPair
= Array [1..MAXSHAPEPOINTS,1..2] Of Word;
A TPair egy segédtömb, mely a gráf pont minták gráfhoz illesztéséhez szükséges. A probléma, melyet meg kellett oldani, hogy egy TObject3D adatmez it
38/19.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
(minta) egy másik TObject3D típusba (a gráfba) kellett átmásolni. Ilyenkor a pontok sorszáma megváltozik, de mivel az élek is a pontok eredeti sorszáma alapján tárolódnak, ezért az éleket párosítani kellett a pontokkal. További eljárások illetve függvények PROCEDURE CopyGraph
( Graph1 Var Graph2 PROCEDURE LoadShapeList ( Var ListBox PROCEDURE LoadShape ( Var Shape FileName PROCEDURE InitPair ( Var Pair Var Num FUNCTION SearchPair ( Pair local PROCEDURE SaveGraphToFile ( FileName PROCEDURE OpenGraphFromFile ( FileName
: : : : : : : : : : :
TGraph; TGraph ); TListBox ); TObject3D; String ); TPair; Byte ); TPair; Byte ) : Word; ShortString ); ShortString );
04 – A TGraph osztály Draw() metódusa procedure TGraph.Draw( Image : TImage ); Var i : Integer; TF : TextFile; num : Integer; X : Integer; Y : Integer; Z : Integer; numglobal : Word; AidePair : TPair; PairNum : Byte; Line : ShortString; numglobalinfo : Word; SX : Integer; SY : Integer; SZ : Integer; SDiv : Integer; A : TVector3D; B : TVector3D; IV : TVector3D; NV : TVector3D; SColor : TColor; begin ShowPoints.Free; ShowPoints:=TObject3D.Create; ShowPoints.InitObject3D(MaxXY Div 2,MaxXY Div 2); ShowPoints.DataInit; ShowInfo.Free; ShowInfo:=TObject3D.Create; ShowInfo.InitObject3D(MaxXY Div 2,MaxXY Div 2); ShowInfo.DataInit;
ShowPoints.AddArm(1,0,2,ShowPoints.SetCoords(ShowPoints.SetPoint4D(1,0,0,1),ShowPoints.SetPoin t4D(0,1,0,1),ShowPoints.SetPoint4D(0,0,1,1)),ShowPoints.SetVector3D(0,0,0)); ShowPoints.AddPoint(1,1,0,0,0); ShowPoints.DataStart(1); ShowPoints.AddArm(2,1,0,ShowPoints.SetCoords(ShowPoints.SetPoint4D(1,0,0,1),ShowPoints.SetPoin t4D(0,1,0,1),ShowPoints.SetPoint4D(0,0,1,1)),ShowPoints.SetVector3D(0,0,10)); ShowInfo.AddArm(1,0,2,ShowInfo.SetCoords(ShowInfo.SetPoint4D(1,0,0,1),ShowInfo.SetPoint4D(0,1, 0,1),ShowInfo.SetPoint4D(0,0,1,1)),ShowInfo.SetVector3D(0,0,0)); ShowInfo.AddPoint(1,1,0,0,0); ShowInfo.DataStart(1); ShowInfo.AddArm(2,1,0,ShowInfo.SetCoords(ShowInfo.SetPoint4D(1,0,0,1),ShowInfo.SetPoint4D(0,1, 0,1),ShowInfo.SetPoint4D(0,0,1,1)),ShowInfo.SetVector3D(0,0,10)); numglobal:=0;
38/20.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
numglobalinfo:=0; For i:=1 To (PointsNum) Do Begin If (PointsArray[i].Enable) Then Begin AssignFile(TF,SHAPEDIRECTORY+PointsArray[i].Shape); {$I-} ReSet(TF); {$I+} If (IoResult<>0) Then Begin ShowMessage('There was some error during shape file opening.'); Halt; End; Line:=''; If (VISI_SERIALOFPOINTS) Then Begin Line:=IntToStr(PointsArray[i].Serial); End; If (VISI_NAMEOFPOINTS) And (PointsArray[i].AllowName) Then Begin Line:=PointsArray[i].Name; End; If (VISI_DATUM) And (CurrentDatum<>0) Then Begin Line:=PointsArray[i].DataArray[CurrentDatum]; End; If (VISI_SERIALOFPOINTS) Or (VISI_NAMEOFPOINTS) Or (VISI_DATUM) Then Begin Inc(numglobalinfo); ShowInfo.AddPointWithLabel(2,numglobalinfo,PointsArray[i].X,PointsArray[i].Y,PointsArray[i].Z, Line,'Point'); End; ReadLn(TF,Line); ReadLn(TF,num,X,Y,Z); InitPair(AidePair,PairNum); While (Not(EoF(TF))) And (num<>0) Do Begin Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[i].X+X,PointsArray[i].Y+Y,PointsArray[i].Z+Z); Inc(PairNum); AidePair[PairNum,1]:=num; AidePair[PairNum,2]:=numglobal; ReadLn(TF,num,X,Y,Z); End; While (Not(EoF(TF))) Do Begin ReadLn(TF,X,Y); X:=SearchPair(AidePair,X); Y:=SearchPair(AidePair,Y); ShowPoints.AddEdge(2,X,Y,GetRValue(PointsArray[i].Color),GetGValue(PointsArray[i].Color),GetBV alue(PointsArray[i].Color)); End; Close(TF); End; End; For i:=1 To (EdgesNum) Do Begin If (EdgesArray[i].Enable) Then Begin Line:=''; If (VISI_SERIALOFEDGES) Then Begin Line:=IntToStr(EdgesArray[i].Serial); End; If (VISI_NAMEOFEDGES) And (EdgesArray[i].AllowName) Then Begin Line:=EdgesArray[i].Name; End; If (VISI_WEIGHT) And (CurrentWeight<>0) Then Begin Line:=EdgesArray[i].WeightsArray[CurrentWeight]; End; If (VISI_NAMEOFEDGES) Or (VISI_SERIALOFEDGES) Or (VISI_WEIGHT) Then Begin Inc(numglobalinfo); ShowInfo.AddPointWithLabel(2,numglobalinfo, (PointsArray[EdgesArray[i].PointOne].X+PointsArray[EdgesArray[i].PointTwo].X)/2, (PointsArray[EdgesArray[i].PointOne].Y+PointsArray[EdgesArray[i].PointTwo].Y)/2, (PointsArray[EdgesArray[i].PointOne].Z+PointsArray[EdgesArray[i].PointTwo].Z)/2, Line,'Edge'); End; Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i ].PointOne].Y,PointsArray[EdgesArray[i].PointOne].Z); Inc(numglobal);
38/21.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i ].PointTwo].Y,PointsArray[EdgesArray[i].PointTwo].Z); If (EdgesArray[i].IsWay) Then Begin SColor:=WayColor; End Else Begin SColor:=EdgesArray[i].Color; End; ShowPoints.AddEdge(2,numglobal1,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); If (EdgesArray[i].Directivity=1) Then Begin A:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i].Poin tOne].Y,PointsArray[EdgesArray[i].PointOne].Z); B:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i].Poin tTwo].Y,PointsArray[EdgesArray[i].PointTwo].Z); IV:=ShowPoints.SetNormalVector(A,B); NV:=ShowPoints.SetVector3D(IV[3],-IV[1],IV[2]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength+ NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength+NV[2]*D irectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLength+NV[3]*Directiv ityLength2); ShowPoints.AddEdge(2,numglobal,numglobal2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLengthNV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLengthNV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLengthNV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); NV:=ShowPoints.SetVector3D(-IV[2],-IV[3],IV[1]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLength+ NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLength+NV[2]*D irectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLength+NV[3]*Directiv ityLength2); ShowPoints.AddEdge(2,numglobal,numglobal4,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointOne].X+IV[1]*DirectivityLengthNV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Y+IV[2]*DirectivityLengthNV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointOne].Z+IV[3]*DirectivityLengthNV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal5,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal,numglobal2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-2,numglobal1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-1,numglobal3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal3,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); End; If (EdgesArray[i].Directivity=2) Then Begin A:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointOne].X,PointsArray[EdgesArray[i].Poin tOne].Y,PointsArray[EdgesArray[i].PointOne].Z); B:=ShowPoints.SetVector3D(PointsArray[EdgesArray[i].PointTwo].X,PointsArray[EdgesArray[i].Poin tTwo].Y,PointsArray[EdgesArray[i].PointTwo].Z); IV:=ShowPoints.SetNormalVector(A,B); NV:=ShowPoints.SetVector3D(IV[3],-IV[1],IV[2]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].XIV[1]*DirectivityLength+NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].YIV[2]*DirectivityLength+NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].ZIV[3]*DirectivityLength+NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor));
38/22.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].XIV[1]*DirectivityLength-NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].YIV[2]*DirectivityLength-NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].ZIV[3]*DirectivityLength-NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); NV:=ShowPoints.SetVector3D(-IV[2],-IV[3],IV[1]); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].XIV[1]*DirectivityLength+NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].YIV[2]*DirectivityLength+NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].ZIV[3]*DirectivityLength+NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); Inc(numglobal); ShowPoints.AddPoint(2,numglobal,PointsArray[EdgesArray[i].PointTwo].XIV[1]*DirectivityLength-NV[1]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].YIV[2]*DirectivityLength-NV[2]*DirectivityLength2,PointsArray[EdgesArray[i].PointTwo].ZIV[3]*DirectivityLength-NV[3]*DirectivityLength2); ShowPoints.AddEdge(2,numglobal,numglobal4,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal,numglobal2,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-2,numglobal1,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal-1,numglobal3,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); ShowPoints.AddEdge(2,numglobal3,numglobal,GetRValue(SColor),GetGValue(SColor),GetBValue(SColor)); End; End; End; ShowPoints.DataStart(2); end;
38/23.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
E MELLÉKLET – C# OSZTÁLYLEÍRÁSOK A PPC FEJLESZTÉSB
L:
Az itt látható osztályokon kívül természetesen több lett implementálva, ahogy a példaprogramokban látható, de ezek lényegében csak megjelenítési funkciót látnak el. A tényleges m veletvégzés az alábbi osztályokban megy végbe. A Classes könyvtárban megtalálható mindegyik itt leírt osztály forráskódja, valamint egy osztálykönyvtár PNP.dll néven, amit bármilyen .NET-es fejleszt i környezetbe be lehet importálni. Ezek mellet az osztályok leírása is megtalálható HTML formátumban a Classes\CodeCommentReport könyvtárban.
PNP.Coord2BMP Osztály Az osztály a megadott hosszúsági, szélességi és egy bitkép megfelel X, Y koordinátái segítségével meghatározza tetsz leges szélességi és hosszúsági értékekb l a hozzájuk tartózó X és Y koordinátákat a bitképen. Hozzáférés: Public sosztály: Object Tagok
delX
delY Long0 Lat0
Coord2BMP
Coordinate
Coord2BMP
getX
38/24.
Leírás Tárolja, hogy egy egység (itt pixel), mekkora távolságnak felel meg fokban a hosszúsági tengely mentén. Tárolja, hogy egy egység (itt pixel), mekkora távolságnak felel meg fokban a szélességi tengely mentén. A referencia pont hosszúsági koordinátája. A referencia pont szélességi koordinátája. Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Az egy ponthoz tartozó X és Y koordináták, valamint hosszúsági és szélességi értékek. Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Az összetartozó értékek a 'Coordinates' sruktúrába lettek elhelyezve. Tetsz leges hosszúsági értékb l megadja a hozzá tartozó X koordinátát
Hozzáférés
Típus
Private
double
Private
double
Private
double
Private
double
Public
Konstruktor
Public
Struct
Public
Konstruktor
Public
Metódus
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
a bitképen. getY
Tetsz leges hosszúsági értékb l megadja a hozzá tartozó X koordinátát a bitképen.
Public
Metódus
PNP.Coord2BMP.Coord2BMP Függvény Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Public void Coord2BMP (int, int, float, float, int, int, float, float, int, int, float, float, int, int, float, float) Típus
Név
Leírás
int
X0
Az 1. pont X koordinátája a bitképen.
int
Y0
Az 1. pont Y koordinátája a bitképen.
float
lon0
Az 1. pont hosszúsági koordinátája a bitképen.
float
lat0
Az 1. pont szélességi koordinátája a bitképen.
int
X1
Az 2. pont X koordinátája a bitképen.
int
Y1
Az 2. pont Y koordinátája a bitképen.
float
lon1
Az 2. pont hosszúsági koordinátája a bitképen.
float
lat1
Az 2. pont szélességi koordinátája a bitképen.
int
X2
Az 3. pont X koordinátája a bitképen.
int
Y2
Az 3. pont Y koordinátája a bitképen.
float
lon2
Az 3. pont hosszúsági koordinátája a bitképen.
float
lat2
Az 3. pont szélességi koordinátája a bitképen.
int
X3
Az 4. pont X koordinátája a bitképen.
int
Y3
Az 4. pont Y koordinátája a bitképen.
float
lon3
Az 4. pont hosszúsági koordinátája a
38/25.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
bitképen. float
lat3
Az 4. pont szélességi koordinátája a bitképen.
Visszatérés
Leírás
void Más túlterhelés: PNP.Coord2BMP. Coord2BMP (Coordinate,Coordinate,Coordinate,Coordinate) PNP.Coord2BMP.Coord2BMP Függvény Az osztály konstruktora. Bemeneti paraméterei a bitképen lév X, Y koordináták és a hozzájuk tartozó hosszúsági és szélességi értékek. Az összetartozó értékek a 'Coordinates' sruktúrába lettek elhelyezve. Public void Coord2BMP (PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate, PNP.Coord2BMP.Coordinate) Típus
Név
Leírás
Coordinate
c0
Az 1. ponthoz tartozó értékek.
Coordinate
c1
A 2. ponthoz tartozó értékek.
Coordinate
c2
A 3. ponthoz tartozó értékek.
Coordinate
c3
A 4. ponthoz tartozó értékek.
Visszatérés
Leírás
void Más túlterhelés: PNP.Coord2BMP.Coord2BMP (2,2,4,4,2,2,4,4,2,2,4,4,2,2,4,4) PNP.Coord2BMP.Coordinate Struktúra Az egy ponthoz tartozó X és Y koordináták, valamint hosszúsági és szélességi értékek. Hozzáférés: Public Tagok X Y Longitude
38/26.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Latitude
PNP.NMEA_decoding Osztály NMEA mondatokat visszafejt osztály. Hozzáférés: Public sosztály: Object Hozzáférés
Tagok
Leírás
_Sentence
Tárolja az NMEA mondatot. Beállítja, vagy visszaadja az NMEA mondatot. Tárolja az NMEA mondat hosszát. Visszaadja az NMEA mondat hosszát. Az ellen rz kódot tárolja. Tárolja, hogy az NMEA mondat megfelel-e az ellen rz kódnak. Tárolja az NMEA mondat azonosítóját ($GPxxx). Az osztály konstruktora. Beállítja az osztály 'Checksum' adattagjának értékét. Kiveszi az NMEA mondat ellen rz kódját (checksum). Megvizsgálja, hogy az NMEA mondat megfelel-e az ellen rz kódnak. Visszaadja az NMEA mondat kívánt elemét. Visszaadja az NMEA mondat azonosítóját.
Sentence _SentenceLength SentenceLength Checksum ChecksumOK ID NMEA_decoding getChksum getChecksum isChecksumOK getParam getID
PNP.NMEA_decoding.NMEA_decoding Függvény Az osztály konstruktora. Public void NMEA_decoding () Visszatérés
Leírás
void PNP.NMEA_decoding.getID Függvény Visszaadja az NMEA mondat azonosítóját.
38/27.
Típus
Protected Public
string String
Protected
Int
Public
Int
Protected Protected
Byte Bool
Protected
String
Public Protected
Konstruktor Metódus
Public
Metódus
Public
Metódus
Public
Metódus
Public
Metódus
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Public string getID () Visszatérés
Leírás
string
Az NMEA mondat azonosítója.
PNP.NMEA_decoding.getChksum Függvény Beállítja az osztály 'Checksum' adattagjának értékét. Protected void getChksum () Visszatérés
Leírás
void PNP.NMEA_decoding.getChecksum Függvény Kiveszi az NMEA mondat ellen rz kódját (checksum). Public string getChecksum () Visszatérés
Leírás
string
Az NMEA mondat ellen rz kódja (Kivétel esetén "ERROR").
PNP.NMEA_decoding.isChecksumOK Függvény Megvizsgálja, hogy az NMEA mondat megfelel-e az ellen rz kódnak. Public bool isChecksumOK () Visszatérés
Leírás
bool
Megfelel-e az ellen rz kódnak a mondat (true->igen, false->nem).
PNP.NMEA_decoding.getParam Függvény Visszaadja az NMEA mondat kívánt elemét. Public string getParam (byte) Típus
Név
Leírás
byte
ParamNumber
Az adat sorszáma az NMEA mondaton belül.
Visszatérés
string
38/28.
Leírás a, a kívánt adat (ha nincs kitöltve, a visszatérési érték üres karakterlánc); b, EOL (End Of Line), ha a beadott érték nagyobb, mint a Mondat elemeinek száma; c, NVS (Not Valid Sentence), ha a tárolt string nem NMEA mondat;
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
PNP.NMEA_decoding.getID Függvény Visszaadja az NMEA mondat azonosítóját. Public string getID () Visszatérés
Leírás
string
Az NMEA mondat azonosítója.
PNP.GPGLL_decoding Class Az osztály segítségével a 'GPGLL' típusú NMEA szabványos GPS mondatokból lehet az adatokat lekérni. Szükséges hozzá a PNP.NMEA_decoding osztály, mint sosztály. Hozzáférés: Public sosztály: NMEA_decoding Tagok
Leírás
GPGLL_decoding
Az osztály konstruktora. Az id eltolódás a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Visszaadja az id eltolódás mértékét a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Az id eltolódás mértékének beállítása a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Kivételek: - ePostponementMinute : keletkezik, ha a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . - epostponementHour : keletkezik, ha a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Kivétel. Akkor keletkezik, ha
_Postponement
Postponement
setPostponement
ePostponementMinute 38/29.
Hozzáférés
Típus
Public
Konstruktor
Private
String
Public
String
Public
Metódus
Public
Kivétel
POSZEIDON NAVIGATION PROJECT
ePostponementHour
getLocalTime
getLatitude
getNS
getLongitude
getEW getUTCTime getValidate
IAR
az id eltolódás megadásánál a megadott percérték 0-nál kisebb, vagy 60-nál nagyobbegyenl . Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobbegyenl . Visszaadja a helyi id t. Az id eltolódást a setPostponement() metódussal lehet megadni. (alapbeállítás: 02:00 óra, Budapesti id ) Visszaadja a szélességi koordinátát. Visszaadja, hogy a koordináta az északi (North), vagy déli (South) féltekére vonatkozik. Visszaadja a hosszúsági koordinátát. Visszaadja, hogy a koordináta a keleti (East) vagy nyugati (West) féltekére vonatkozik. Visszaadja a UTC id t. Az adatok érvényességét jelzi. - A : érvényes adat; - V : érvénytelen adat.
TARTALOMJEGYZÉK
Public
Kivétel
Public
Metódus
Public
Metódus
Public
Metódus
Public
Metódus
Public
Metódus
Public
Metódus
Public
Metódus
PNP.GPGLL_decoding.GPGLL_decoding Függvény Az osztály konstruktora. Public void GPGLL_decoding (string) Típus
Név
Leírás
string
sentence
A feldolgozni kívánt NMEA mondat.
Visszatérés void
38/30.
Leírás
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
PNP.GPGLL_decoding.ePostponementMinute Osztály Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . Hozzáférés: Public sosztály: Exception PNP.GPGLL_decoding.ePostponementHour Osztály Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Hozzáférés: Public sosztály: Exception PNP.GPGLL_decoding.setPostponement Függvény Az id eltolódás mértékének beállítása a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Kivételek: - ePostponementMinute : keletkezik, ha a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . - epostponementHour : keletkezik, ha a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Public void setPostponement (string) Típus
Név
Leírás
string
Postp
Az id eltolódás. Formátum --> hh:mm, h=óra, m=perc.
Visszatérés
Leírás
void PNP.GPGLL_decoding.getLocalTime Függvény Visszaadja a helyi id t. Az id eltolódást a setPostponement() metódussal lehet megadni. (alapbeállítás: 02:00 óra, Budapesti id ) Public string getLocalTime () Visszatérés
Leírás
string
A helyi id .
PNP.GPGLL_decoding.getLatitude Függvény Visszaadja a szélességi koordinátát. Public string getLatitude () Visszatérés
Leírás
string
A hosszúsági koordináta.
PNP.GPGLL_decoding.getNS Függvény
38/31.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
Visszaadja, hogy a koordináta az északi (North), vagy déli (South) féltekére vonatkozik. Public string getNS () Visszatérés
Leírás
string
Az északi (N) vagy a déli (S) félteke.
PNP.GPGLL_decoding.getLongitude Függvény Visszaadja a hosszúsági koordinátát. Public string getLongitude () Visszatérés
Leírás
string
A hosszúsági koordináta.
PNP.GPGLL_decoding.getEW Függvény Visszaadja, hogy a koordináta a keleti (East) vagy nyugati (West) féltekére vonatkozik. Public string getEW () Visszatérés
Leírás
string
Az keleti (E) vagy nyugati (W) félteke.
PNP.GPGLL_decoding.getUTCTime Függvény Visszaadja a UTC id t. Public string getUTCTime () Visszatérés
Leírás
string
UTC id .
PNP.GPGLL_decoding.getValidate Függvény Az adatok érvényességét jelzi. A : érvényes adat; V : érvénytelen adat. Public string getValidate () Visszatérés
Leírás
string
Az adatok érvényessége.
PNP.GPGGA_decoding Osztály Az osztály segítségével a 'GPGGA' típusú NMEA szabványos GPS mondatokból lehet az adatokat lekérni. Szükséges hozzá a PNP.NMEA_decoding osztály, mint sosztály. Hozzáférés: Public 38/32.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
sosztály: NMEA_decoding Tagok
Leírás
GPGGA_decoding
Az osztály konstruktora.
_Postponement
Postponement
setPostponement
ePostponementMin ute
ePostponementHou r
getLocalTime
getUTCTime
38/33.
Az id eltolódás a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Visszaadja az id eltolódás mértékét a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Az id eltolódás mértékének beállítása a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Kivételek: - ePostponementMinute : keletkezik, ha a megadott percérték 0-nál kisebb, vagy 60-nál nagyobbegyenl . - epostponementHour : keletkezik, ha a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Visszaadja a helyi id t. Az id eltolódást a setPostponement() metódussal lehet megadni. (alapbeállítás: 02:00 óra, Budapesti id ) Visszaadja a UTC id t.
Hozzáférés
Típus
Public
Metód us
Private
String
Public
String
Public
Metód us
Public
Kivétel
Public
Kivétel
Public
Metód us
Public
Metód
POSZEIDON NAVIGATION PROJECT
getLatitude getNS getLongitude getEW
getValidate
getSatellite getHDOP getAntennaAltitude getAntennaAltitude Unit
getGeoidSeparation
getGeoidSeparation Units getDGPSAge getDGPSStationID
IAR
Visszaadja a Hosszúsági koordinátát. Visszaadja, hogy a koordináta az északi (North), vagy déli (South) féltekére vonatkozik. Visszaadja a hosszúsági koordinátát. Visszaadja, hogy a koordináta a keleti (East) vagy nyugati (West) féltekére vonatkozik. Az adatok min ségére vonatkozó információt adja vissza: 0: javítás nem elérhet ; 1: GPS javítás; 2: differenciális GPS javítás. Megadja, hogy hány darab szatellitet lát éppen a GPS készülékünk. (00-12) A horizontális tévedés méterben. (Horizontal Dilution of precision) Az antenna tengerszint feletti magassága (geoid). Az antenna magasságát jelz értékhez tartozó mértékegység (M = méter). Geoid elválasztás (separation). A különbség a WGS-84 és földellipszoid és az átlagos tengerszint (geoid) mértéke között. A negatív érték jelentése, hogy az átlagos tengerszint feletti érték alatta van az ellipszoidnak. A geoid elválasztás mértékegysége (M = méter). A differenciális GPS adat életkora másodpercekben. Üres mez , ha nincs DGPS. Referencia DGPS állomás azonosítója (0000-1023).
PNP.GPGGA_decoding.GPGGA_decoding Függvény Az osztály konstruktora. Public void GPGGA_decoding (string) Típus 38/34.
Név
Leírás
TARTALOMJEGYZÉK
Public
us Metód us
Public
Metód us
Public
Metód us
Public
Metód us
Public
Metód us
Public
Metód us
Public Public
Metód us Metód us
Public
Metód us
Public
Metód us
Public
Metód us
Public
Metód us
Public
Metód us
POSZEIDON NAVIGATION PROJECT
string
IAR
TARTALOMJEGYZÉK
A feldolgozni kívánt NMEA mondat.
sentence
Visszatérés
Leírás
void PNP.GPGGA_decoding.setPostponement Függvény Az id eltolódás mértékének beállítása a UTC id höz képest. (pl. Budapesten 02:00 óra, ez az alapbeállítás). Formátum --> hh:mm, h=óra, m=perc. Kivételek: ePostponementMinute : keletkezik, ha a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . epostponementHour : keletkezik, ha a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Public void setPostponement (string) Típus
Név
Leírás
string
Postp
Az id eltolódás. Formátum --> hh:mm, h=óra, m=perc.
Return
Leírás
void PNP.GPGGA_decoding.ePostponementMinute Osztály Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott percérték 0-nál kisebb, vagy 60-nál nagyobb-egyenl . Hozzáférés: Public sosztály: Exception PNP.GPGGA_decoding.ePostponementHour Osztály Kivétel. Akkor keletkezik, ha az id eltolódás megadásánál a megadott óraérték 0-nál kisebb, vagy 24-nél nagyobb-egyenl . Hozzáférés: Public sosztály: Exception PNP.GPGGA_decoding.getLocalTime Függvény Visszaadja a helyi id t. Az id eltolódást a setPostponement() metódussal lehet megadni. (alapbeállítás: 02:00 óra, Budapesti id ) Public string getLocalTime () Visszatérés
Leírás
string
A helyi id .
38/35.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
PNP.GPGGA_decoding.getUTCTime Függvény Visszaadja a UTC id t. Public string getUTCTime () Visszatérés
Leírás
string
UTC id .
PNP.GPGGA_decoding.getLatitude Függvény Visszaadja a szélességi koordinátát. Public string getLatitude () Visszatérés
Leírás
string
A hosszúsági koordináta.
PNP.GPGGA_decoding.getNS Függvény Visszaadja, hogy a koordináta az északi (North), vagy déli (South) féltekére vonatkozik. Public string getNS () Visszatérés
Leírás
string
Az északi (N) vagy a déli (S) félteke.
PNP.GPGGA_decoding.getLongitude Függvény Visszaadja a hosszúsági koordinátát. Public string getLongitude () Visszatérés
Leírás
string
A hosszúsági koordináta.
PNP.GPGGA_decoding.getEW Függvény Visszaadja, hogy a koordináta a keleti (East) vagy nyugati (West) féltekére vonatkozik. Public string getEW () Visszatérés
Leírás
string
Az keleti (E) vagy nyugati (W) félteke.
PNP.GPGGA_decoding.getValidate Függvény Az adatok min ségére vonatkozó információt adja vissza: - 0: javítás nem elérhet ; - 1: GPS javítás; - 2: differenciális GPS javítás. Public string getValidate ()
38/36.
POSZEIDON NAVIGATION PROJECT
IAR
Visszatérés
Leírás
string
GPS min ségi információ.
TARTALOMJEGYZÉK
PNP.GPGGA_decoding.getSatellite Függvény Megadja, hogy hány darab szatellitet lát éppen a GPS készülékünk. (00-12) Public string getSatellite () Visszatérés
Leírás
string
A jelenleg látható szatellitek száma (00-12).
PNP.GPGGA_decoding.getHDOP Függvény A horizontális tévedés méterben. (Horizontal Dilution of precision) Public string getHDOP () Visszatérés
Leírás
string
Horizontális tévedés méterben.
PNP.GPGGA_decoding.getAntennaAltitude Függvény Az antenna tengerszint feletti magassága (geoid). Public string getAntennaAltitude () Visszatérés
Leírás
string PNP.GPGGA_decoding.getAntennaAltitudeUnit Függvény Az antenna magasságát jelz értékhez tartozó mértékegység (M = méter). Public string getAntennaAltitudeUnit () Visszatérés
Leírás
string
Az antenna magasságát jelz értékhez tartozó mértékegység (M = méter).
PNP.GPGGA_decoding.getGeoidSeparation Függvény Geoid elválasztás (separation). A különbség a WGS-84 és föld-ellipszoid és az átlagos tengerszint (geoid) mértéke között. A negatív érték jelentése, hogy az átlagos tengerszint feletti érték alatta van az ellipszoidnak. Public string getGeoidSeparation () Visszatérés
Leírás
string
Geoid elválasztás.
38/37.
POSZEIDON NAVIGATION PROJECT
IAR
TARTALOMJEGYZÉK
PNP.GPGGA_decoding.getGeoidSeparationUnits Függvény A geoid elválasztás mértékegysége (M = méter). Public string getGeoidSeparationUnits () Visszatérés
Leírás
string
A geoid elválasztás mértékegysége.
PNP.GPGGA_decoding.getDGPSAge Függvény A differenciális GPS adat életkora másodpercekben. Üres mez , ha nincs DGPS. Public string getDGPSAge () Visszatérés
Leírás
string
DGPS adat életkora másodpercben.
PNP.GPGGA_decoding.getDGPSStationID Függvény Referencia DGPS állomás azonosítója (0000-1023). Public string getDGPSStationID () Visszatérés
Leírás
string
DGPS állomásazonosító.
38/38.