// // FlighState.swift // LearnMapKit // // Created by Jacky Jack on 30/06/2024. // import Foundation import Collections class FlightTracker { var last_time_seen: Int = 0 var ICAOName_avaliable = false @Published var ICAOName = "" var Position_avaliable = false @Published var long:Double = 0.0 @Published var lat:Double = 0.0 var FromTo_avaliable = false var flightFrom:String = "" var flightTo:String = "" } class FlightState: ObservableObject { var timer: Timer? //default location currently for testing var fromFile: Bool = false @Published var flight:[Int:FlightTracker] = [:] //configuration options let default_file_path = "/Users/jackyjack/Downloads/2024_05_27_raw_adsb.txt" let process_per_second = 120 init() { var count = 0 //let ADSBtask = ADSBFileRunner(filename: "") let adsb_file = ADSBFileRunner(filename: self.default_file_path) DispatchQueue.global(qos: .background).sync { print("Open file") adsb_file.openFile() adsb_file.readFile() } DispatchQueue.global(qos: .background).async { print("Start decoding data") adsb_file.decode() print("Stop decoding data") } //once a second read some data from decoded queue timer = Timer.scheduledTimer( withTimeInterval: 1, repeats: true ) { _ in //get the 10 entries if there is if adsb_file.jobDone() { print("Decoding done let get some data \(adsb_file.getCount())") //if adsb_file if adsb_file.getCount() > self.process_per_second { let data = adsb_file.getPlainData(self.process_per_second) //print(data.getCount()) for idx in 0..