Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 4.34 KB | None | 0 0
  1. fileprivate let START_MOVING_EVENT = 13
  2.     fileprivate let STOP_MOVING_EVENT = 39
  3.     fileprivate let mile = 0.621371192
  4.    
  5.     fileprivate var currentDrivingEvent: UnassignedDrivingEvent?
  6.     fileprivate var lastUdrvResponce: UnidentifiedEvent?
  7.     fileprivate var totalRecords: Int = 0
  8.     fileprivate var processedCount: Int = 0
  9.     fileprivate var waitingForInternet = false
  10.  
  11. @objc func networkStateChanged() {
  12.         EZLogger.log(entry: "networkStateChanged 1")
  13.         if waitingForInternet && Utils.isNetworkAvailable() {
  14.             EZLogger.log(entry: "networkStateChanged 2")
  15.             _ = WherequbeService.sharedInstance.startTransmittingUnidentifiedDriverMessages()
  16.         }
  17.     }
  18.  
  19. fileprivate func processUnidentifiedResponce(_ responce: UnidentifiedEvent) {
  20.         if !Utils.isNetworkAvailable() {
  21.             waitingForInternet = true
  22.             finishSync()
  23.             return
  24.         }
  25.         if lastUdrvResponce != nil && lastUdrvResponce?.timestamp == responce.timestamp {
  26.             return
  27.         }
  28.         processedCount += 1
  29.         lastUdrvResponce = responce
  30.         print("udrvEvent: reason: \(responce.reason ?? -1) time: \(responce.timestamp ?? Date()) speed: \(responce.vehicleSpeed)")
  31.         if responce.reason == START_MOVING_EVENT {
  32.             if (responce.timestamp?.timeIntervalSince1970 ?? 0) < 1420070400 {
  33.                 return
  34.             }
  35.             self.currentDrivingEvent = UnassignedDrivingEvent.init()
  36.             self.currentDrivingEvent?.truckId = self.connectedTruck?.truckId
  37.            
  38.             if let scanner = ELMManager.shared.currentScanner {
  39.                 self.currentDrivingEvent?.deviceId = String.init(format: "%d", arguments:[scanner.scannerId.intValue])
  40.             }
  41.            
  42.             self.currentDrivingEvent?.odometerStart = NSNumber.init(value: responce.odometer * mile)
  43.             self.currentDrivingEvent?.engineHoursStart = NSNumber.init(value: responce.engTotalHours)
  44.             self.currentDrivingEvent?.latitudeStart = NSNumber.init(value: (responce.latitude))
  45.             self.currentDrivingEvent?.longitudeStart = NSNumber.init(value: (responce.longitude))
  46.             self.currentDrivingEvent?.dateStart = NSNumber.init(value: (responce.timestamp?.timeIntervalSince1970 ?? 0))
  47.         } else if responce.reason == STOP_MOVING_EVENT {
  48.             if self.currentDrivingEvent == nil {
  49.                 return
  50.             }
  51.             self.currentDrivingEvent?.odometerEnd = NSNumber.init(value: responce.odometer * mile)
  52.             self.currentDrivingEvent?.engineHoursEnd = NSNumber.init(value: responce.engTotalHours)
  53.             self.currentDrivingEvent?.latitudeEnd = NSNumber.init(value: (responce.latitude))
  54.             self.currentDrivingEvent?.longitudeEnd = NSNumber.init(value: (responce.longitude))
  55.             self.currentDrivingEvent?.dateEnd = NSNumber.init(value: (responce.timestamp?.timeIntervalSince1970 ?? 0))
  56.             sendUnidentifiedEvent()
  57.         }
  58.         if getSyncProgress() == 1 {
  59.             finishSync()
  60. //            _ = WherequbeService.sharedInstance.purgeTransmittingUnidentifiedDriverMessages()
  61.         }
  62.     }
  63.  
  64. fileprivate func finishSync() {
  65.         _ = WherequbeService.sharedInstance.stopTransmittingUnidentifiedDriverMessages()
  66.         NotificationCenter.default.post(name: NSNotification.Name(rawValue: "EldSynchronizationFinished"), object: nil)
  67.     }
  68.    
  69.     fileprivate func sendUnidentifiedEvent() {
  70.         DispatchQueue.global().async {
  71.             DataManager.sharedInstance().sendUnidentifiedDrivingEvent(self.currentDrivingEvent) { (success) in // send driving event to server and save it to DB
  72.                 if success == false {
  73.                     EZLogger.log(entry: "send events not success")
  74.                     return
  75.                 }
  76.                 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "UpdateUnidentifiedLogs"), object: nil)
  77.             }
  78.         }
  79.     }
  80.    
  81.     override func synchronize(simplified: Bool) {
  82.         _ = WherequbeService.sharedInstance.startTransmittingUnidentifiedDriverMessages()
  83.     }
  84.  
  85. override func getSyncProgress() -> Float {
  86.         if totalRecords == 0 {
  87.             return 0
  88.         }
  89.         var value = Float(processedCount) / Float(totalRecords)
  90.         if value > 1 {
  91.             value = 1
  92.         }
  93.         return value
  94.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement