diff options
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 - //} - } - } - -} |
