diff options
| author | Arturs Artamonovs <arturs.artamonovs@protonmail.com> | 2026-09-26 21:53:06 +0100 |
|---|---|---|
| committer | Arturs Artamonovs <arturs.artamonovs@protonmail.com> | 2026-09-26 21:53:06 +0100 |
| commit | 40038b02ce651958ae703c8ecfe5f5578e1f7f09 (patch) | |
| tree | f6bc782c1b1d1a21073e5d40e4136d887f6fa4cd /ADSBDecoder/AirplaneTracker.swift | |
| parent | 505b23afc68ecbb63b8f0a7d44c0b0ad063d5cfd (diff) | |
| download | ADSBDecoder-40038b02ce651958ae703c8ecfe5f5578e1f7f09.tar.gz ADSBDecoder-40038b02ce651958ae703c8ecfe5f5578e1f7f09.zip | |
create adsbdecoder as UI, and renmae adsbdecoder to adsbdecodercli for terminal version
Diffstat (limited to 'ADSBDecoder/AirplaneTracker.swift')
| -rw-r--r-- | ADSBDecoder/AirplaneTracker.swift | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/ADSBDecoder/AirplaneTracker.swift b/ADSBDecoder/AirplaneTracker.swift deleted file mode 100644 index 3c1edcf..0000000 --- a/ADSBDecoder/AirplaneTracker.swift +++ /dev/null @@ -1,134 +0,0 @@ -// -// AirplaneTracker.swift -// ADSBDecoder -// -// Created by Jacky Jack on 20/06/2024. -// - -import Foundation - -struct Airplane { - var addressReady:Bool = false - var Address:Int - var ICAOready:Bool = false - var ICAOname:String = "" - var locationReady:Bool = false - var lat:Double = 0.0 - var long:Double = 0.0 - var altitudeReady:Bool = false - var altitude:Int = 0 - var altitudeCount:Int = 0 - var positionDecoder:PositionDecoder = PositionDecoder() -} - -class AirPlaneTracker { - - var airplanes:[Int:Airplane] = [:] - - init () { - - } - - func addDF17Indentification(_ address: Int, _ ICAOname: String) { - if (airplanes[address] == nil) { - airplanes[address] = Airplane(addressReady: true, Address: address,ICAOready: true, ICAOname: ICAOname) - - } else { - if (airplanes[address]?.ICAOname == "") { - airplanes[address]?.ICAOname = ICAOname - airplanes[address]?.ICAOready = true - } - } - } - - func addDF17AirBornPosition(_ address: Int, _ cpr_lat: Int, _ cpr_long: Int, _ alt: Int, _ even: Bool) { - - if airplanes[address] == nil { - return - } - - //deal with altitude - //if airplanes[address] != nil { - if (airplanes[address]?.altitudeReady != true) { - airplanes[address]?.altitudeReady = true - airplanes[address]?.altitude = alt - airplanes[address]?.altitudeCount += 1 - } else { - airplanes[address]?.altitude = alt - airplanes[address]?.altitudeCount += 1 - } - //} - //do the airborn position - if (even) { - airplanes[address]?.positionDecoder.addEvenPosition(UInt32(cpr_lat), UInt32(cpr_long), mstime()) - } else { - - airplanes[address]?.positionDecoder.addOddPosition(UInt32(cpr_lat), UInt32(cpr_long), mstime()) - } - - } - - func getPosition(_ address: Int) -> (Double,Double)? { - if (airplanes[address] == nil) { - return nil - } - - if let airplane = airplanes[address] { - if (airplane.positionDecoder.calcPosition()) { - return airplane.positionDecoder.getPosition() - } - } - - return nil - } - - func getAltitude(_ address: Int) -> Int? { - if (airplanes[address] == nil) { - return nil - } - if let airplane = airplanes[address] { - if airplane.altitudeReady { - return airplane.altitude - } else { - return nil - } - } else { - return nil - } - } - - func getICAOname(_ address: Int) -> String? { - if (airplanes[address] == nil) { - return nil - } - if let airplane = airplanes[address] { - if airplane.ICAOready { - return airplane.ICAOname - } else { - return nil - } - } else { - return nil - } - } - - func printAllICAOnames() { - let extra = false - var once=false - for (address,plane) in airplanes { - if plane.ICAOready { - print(String("\(plane.ICAOname) "), terminator: "") - } - if (extra) { - print("Alitude \(plane.altitudeCount) Positions \(plane.positionDecoder.queue.count)") - } - //if (!once) { - // for i in plane.positionDecoder.queue { - // print("\(i.cpr_lat) \(i.cpr_long) \(i.even)") - // } - // once = true - //} - } - } - -} |
