|
@@ -19,6 +19,7 @@ class ViewController: UIViewController {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @IBOutlet weak var noOfFailedUpdatesUI: UILabel!
|
|
|
@IBOutlet weak var latestTSSent: UILabel!
|
|
|
@IBOutlet weak var noOfRxGPSPos: UILabel!
|
|
|
@IBOutlet weak var noOfSentGPSToServer: UILabel!
|
|
@@ -30,6 +31,7 @@ class ViewController: UIViewController {
|
|
|
|
|
|
var noOfSentPos: Int = 0
|
|
|
var noOfSentToServer: Int = 0
|
|
|
+ var noOfFailedUpdates: Int = 0
|
|
|
|
|
|
var gpsLogData: [NSManagedObject] = []
|
|
|
|
|
@@ -104,6 +106,10 @@ class ViewController: UIViewController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ enum MyError: Error {
|
|
|
+ case DataIsNil
|
|
|
+ case BadJSONResponse
|
|
|
+ }
|
|
|
func sendToHttpServer(gpsPosLog: [GPS_POS_LOG], latestDate: Date) {
|
|
|
|
|
|
let jsonEncoder = JSONEncoder()
|
|
@@ -124,29 +130,40 @@ class ViewController: UIViewController {
|
|
|
request.httpMethod = "POST"
|
|
|
|
|
|
let task = URLSession.shared.uploadTask(with: request, from: uploadData) { data, response, error in
|
|
|
- if let error = error {
|
|
|
- print ("HTTP: error: \(error)")
|
|
|
- return
|
|
|
- }
|
|
|
- guard let response = response as? HTTPURLResponse,
|
|
|
- (200...299).contains(response.statusCode) else {
|
|
|
- print ("HTTP: 200-299 server error")
|
|
|
- return
|
|
|
- }
|
|
|
- if let mimeType = response.mimeType,
|
|
|
- mimeType == "text/html",
|
|
|
- let data = data,
|
|
|
- let dataString = String(data: data, encoding: .utf8) {
|
|
|
- print ("HTTP: got data: \(dataString)")
|
|
|
- print ("HTTP: Latest date sent: " + self.convertStartDate(StartDate: latestDate))
|
|
|
- //self.latestTSSent.text = self.convertStartDate(StartDate: latestDate)
|
|
|
- self.latestDateSuccSent = latestDate
|
|
|
- }
|
|
|
- else {
|
|
|
- print("HTTP: KALLE:" + String(response.mimeType!))
|
|
|
+ do {
|
|
|
+ if let error = error {
|
|
|
+ print ("HTTP: error: ") //\(error)")
|
|
|
+ throw error
|
|
|
+ }
|
|
|
+ guard let response = response as? HTTPURLResponse,
|
|
|
+ (200...299).contains(response.statusCode) else {
|
|
|
+ print ("HTTP: 200-299 server error")
|
|
|
+
|
|
|
+ throw MyError.DataIsNil
|
|
|
+ }
|
|
|
+ if let mimeType = response.mimeType,
|
|
|
+ mimeType == "text/html",
|
|
|
+ let data = data,
|
|
|
+ let dataString = String(data: data, encoding: .utf8) {
|
|
|
+ print ("HTTP: got data: \(dataString)")
|
|
|
+ print ("HTTP: Latest date sent: " + self.convertStartDate(StartDate: latestDate))
|
|
|
+ //self.latestTSSent.text = self.convertStartDate(StartDate: latestDate)
|
|
|
+ self.latestDateSuccSent = latestDate
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ print("HTTP: KALLE:" + String(response.mimeType!))
|
|
|
+ throw MyError.DataIsNil
|
|
|
+ //self.noOfFailedUpdates += 1
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ self.noOfFailedUpdates += 1
|
|
|
+ //self.noOfFailedUpdatesUI.text = String(self.noOfFailedUpdates)
|
|
|
+ print("CATCH ERROR !!!")
|
|
|
}
|
|
|
}
|
|
|
task.resume()
|
|
|
+ print("Resume.....")
|
|
|
+ self.noOfFailedUpdatesUI.text = String(noOfFailedUpdates)
|
|
|
|
|
|
}
|
|
|
|
|
@@ -180,6 +197,8 @@ class ViewController: UIViewController {
|
|
|
pauseSwitch.isEnabled = true
|
|
|
noOfSentPos = 0
|
|
|
noOfSentToServer = 0
|
|
|
+ noOfFailedUpdates = 0
|
|
|
+ noOfFailedUpdatesUI.text = String(noOfFailedUpdates)
|
|
|
noOfRxGPSPos.text = String(noOfSentPos)
|
|
|
noOfSentGPSToServer.text = String(noOfSentToServer)
|
|
|
latestTSSent.text = "-"
|