Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fileprivate let START_MOVING_EVENT = 13
- fileprivate let STOP_MOVING_EVENT = 39
- fileprivate let mile = 0.621371192
- fileprivate var currentDrivingEvent: UnassignedDrivingEvent?
- fileprivate var lastUdrvResponce: UnidentifiedEvent?
- fileprivate var totalRecords: Int = 0
- fileprivate var processedCount: Int = 0
- fileprivate var waitingForInternet = false
- @objc func networkStateChanged() {
- EZLogger.log(entry: "networkStateChanged 1")
- if waitingForInternet && Utils.isNetworkAvailable() {
- EZLogger.log(entry: "networkStateChanged 2")
- _ = WherequbeService.sharedInstance.startTransmittingUnidentifiedDriverMessages()
- }
- }
- fileprivate func processUnidentifiedResponce(_ responce: UnidentifiedEvent) {
- if !Utils.isNetworkAvailable() {
- waitingForInternet = true
- finishSync()
- return
- }
- if lastUdrvResponce != nil && lastUdrvResponce?.timestamp == responce.timestamp {
- return
- }
- processedCount += 1
- lastUdrvResponce = responce
- print("udrvEvent: reason: \(responce.reason ?? -1) time: \(responce.timestamp ?? Date()) speed: \(responce.vehicleSpeed)")
- if responce.reason == START_MOVING_EVENT {
- if (responce.timestamp?.timeIntervalSince1970 ?? 0) < 1420070400 {
- return
- }
- self.currentDrivingEvent = UnassignedDrivingEvent.init()
- self.currentDrivingEvent?.truckId = self.connectedTruck?.truckId
- if let scanner = ELMManager.shared.currentScanner {
- self.currentDrivingEvent?.deviceId = String.init(format: "%d", arguments:[scanner.scannerId.intValue])
- }
- self.currentDrivingEvent?.odometerStart = NSNumber.init(value: responce.odometer * mile)
- self.currentDrivingEvent?.engineHoursStart = NSNumber.init(value: responce.engTotalHours)
- self.currentDrivingEvent?.latitudeStart = NSNumber.init(value: (responce.latitude))
- self.currentDrivingEvent?.longitudeStart = NSNumber.init(value: (responce.longitude))
- self.currentDrivingEvent?.dateStart = NSNumber.init(value: (responce.timestamp?.timeIntervalSince1970 ?? 0))
- } else if responce.reason == STOP_MOVING_EVENT {
- if self.currentDrivingEvent == nil {
- return
- }
- self.currentDrivingEvent?.odometerEnd = NSNumber.init(value: responce.odometer * mile)
- self.currentDrivingEvent?.engineHoursEnd = NSNumber.init(value: responce.engTotalHours)
- self.currentDrivingEvent?.latitudeEnd = NSNumber.init(value: (responce.latitude))
- self.currentDrivingEvent?.longitudeEnd = NSNumber.init(value: (responce.longitude))
- self.currentDrivingEvent?.dateEnd = NSNumber.init(value: (responce.timestamp?.timeIntervalSince1970 ?? 0))
- sendUnidentifiedEvent()
- }
- if getSyncProgress() == 1 {
- finishSync()
- // _ = WherequbeService.sharedInstance.purgeTransmittingUnidentifiedDriverMessages()
- }
- }
- fileprivate func finishSync() {
- _ = WherequbeService.sharedInstance.stopTransmittingUnidentifiedDriverMessages()
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "EldSynchronizationFinished"), object: nil)
- }
- fileprivate func sendUnidentifiedEvent() {
- DispatchQueue.global().async {
- DataManager.sharedInstance().sendUnidentifiedDrivingEvent(self.currentDrivingEvent) { (success) in // send driving event to server and save it to DB
- if success == false {
- EZLogger.log(entry: "send events not success")
- return
- }
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "UpdateUnidentifiedLogs"), object: nil)
- }
- }
- }
- override func synchronize(simplified: Bool) {
- _ = WherequbeService.sharedInstance.startTransmittingUnidentifiedDriverMessages()
- }
- override func getSyncProgress() -> Float {
- if totalRecords == 0 {
- return 0
- }
- var value = Float(processedCount) / Float(totalRecords)
- if value > 1 {
- value = 1
- }
- return value
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement