Commit 92a39654 authored by shigemi miura's avatar shigemi miura

NGAデータ更新修正

タスク確認見直し
parent faecedf5
...@@ -1307,7 +1307,7 @@ ...@@ -1307,7 +1307,7 @@
CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements; CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 44; CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\"";
DEVELOPMENT_TEAM = D2DC7QNNJ8; DEVELOPMENT_TEAM = D2DC7QNNJ8;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
...@@ -1353,7 +1353,7 @@ ...@@ -1353,7 +1353,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements; CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 44; CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\"";
DEVELOPMENT_TEAM = D2DC7QNNJ8; DEVELOPMENT_TEAM = D2DC7QNNJ8;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
...@@ -1536,7 +1536,7 @@ ...@@ -1536,7 +1536,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements; CODE_SIGN_ENTITLEMENTS = Sailassist/Sailassist.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 44; CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"Sailassist/Preview Content\"";
DEVELOPMENT_TEAM = D2DC7QNNJ8; DEVELOPMENT_TEAM = D2DC7QNNJ8;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
import CoreLocation import CoreLocation
let taskCheckTime = 5.0
let UpdateTime = 360.0
class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate { class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate {
@Published var authorizationStatus: CLAuthorizationStatus @Published var authorizationStatus: CLAuthorizationStatus
var lastSeenLocation: CLLocation? var lastSeenLocation: CLLocation?
...@@ -89,7 +92,7 @@ class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate { ...@@ -89,7 +92,7 @@ class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate {
self.ecaTask.checkEca() self.ecaTask.checkEca()
self.ngaTask.checkNga() self.ngaTask.checkNga()
serverLocationInterval = DateTextLib.Date2UnixTime(date: Date()) + Int64(TimerInterval) serverLocationInterval = DateTextLib.Date2UnixTime(date: Date()) + Int64(taskCheckTime)
} }
} }
} }
...@@ -104,7 +107,7 @@ class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate { ...@@ -104,7 +107,7 @@ class LocationViewModel: NSObject, ObservableObject, CLLocationManagerDelegate {
self.ecaTask.checkEca() self.ecaTask.checkEca()
self.ngaTask.checkNga() self.ngaTask.checkNga()
serverLocationInterval = DateTextLib.Date2UnixTime(date: Date()) + Int64(TimerInterval) serverLocationInterval = DateTextLib.Date2UnixTime(date: Date()) + Int64(taskCheckTime)
} }
} }
......
...@@ -32,7 +32,6 @@ class LoginViewParam: ObservableObject{ ...@@ -32,7 +32,6 @@ class LoginViewParam: ObservableObject{
} }
let TimerInterval = 60.0 let TimerInterval = 60.0
let UpdateTime = 360.0
struct LoginView: View { struct LoginView: View {
@ObservedObject var scannerViewModel = ScannerViewModel() @ObservedObject var scannerViewModel = ScannerViewModel()
...@@ -216,18 +215,12 @@ struct LoginView: View { ...@@ -216,18 +215,12 @@ struct LoginView: View {
timer = Timer.scheduledTimer(withTimeInterval: TimerInterval, repeats: true) { _ in timer = Timer.scheduledTimer(withTimeInterval: TimerInterval, repeats: true) { _ in
print(debug: "called timer") print(debug: "called timer")
let eca = EcaTask()
eca.start()
let route = MonitoringRoute() let route = MonitoringRoute()
route.start() route.start()
let ecaList = GetEcaList() let ecaList = GetEcaList()
ecaList.start() ecaList.start()
let ngaList = GetNgaList()
ngaList.start()
let pushHistory = GetPushHistory() let pushHistory = GetPushHistory()
pushHistory.start() pushHistory.start()
} }
......
...@@ -22,32 +22,33 @@ class GetNgaList { ...@@ -22,32 +22,33 @@ class GetNgaList {
case .success(let resultData): case .success(let resultData):
let serverSession = ServerSession() let serverSession = ServerSession()
let resjson = serverSession.fromJSON(resultData: resultData, resltType: [ReqNgaList].self) let resjson = serverSession.fromJSON(resultData: resultData, resltType: [ReqNgaList].self)
if let res = resjson { // if let res = resjson {
var ngaTmp: Dictionary<UUID, RegisteredNga> = [:] // var ngaTmp: Dictionary<UUID, RegisteredNga> = [:]
for ngaList in res { // for ngaList in res {
if let id = NSUUID(uuidString: ngaList.id) { // if let id = NSUUID(uuidString: ngaList.id) {
if var nga = RegisteredNga(areaName: "") { // if var nga = RegisteredNga(areaName: "") {
nga.areaId = id as UUID // nga.areaId = id as UUID
if let name = ngaList.name { // if let name = ngaList.name {
nga.name = name // nga.name = name
} // }
nga.isLock = ngaList.lock // nga.isLock = ngaList.lock
nga.isRunning = ngaList.enabled // nga.isRunning = ngaList.enabled
if !ngaList.enabled { // if !ngaList.enabled {
nga.passingCnt = 0 // nga.passingCnt = 0
} // }
nga.color = Color.green.description // nga.color = Color.green.description
for pos in ngaList.geometry{ // for pos in ngaList.geometry{
let point = CLLocationCoordinate2D(latitude: pos.lat!, longitude: pos.lon!) // let point = CLLocationCoordinate2D(latitude: pos.lat!, longitude: pos.lon!)
nga.points.append(point) // nga.points.append(point)
} // }
ngaTmp.updateValue(nga, forKey: nga.areaId) // ngaTmp.updateValue(nga, forKey: nga.areaId)
} // }
} // }
} // }
ngaData.ngaArea = [:] // ngaData.ngaArea = [:]
ngaData.ngaArea = ngaTmp // ngaData.ngaArea = ngaTmp
} // }
// if let res = resjson { // if let res = resjson {
// var ngaAreas = ngaData.ngaArea // var ngaAreas = ngaData.ngaArea
// for ngaList in res { // for ngaList in res {
...@@ -88,6 +89,73 @@ class GetNgaList { ...@@ -88,6 +89,73 @@ class GetNgaList {
// } // }
// } // }
// } // }
if let res = resjson {
var ngaAreas = ngaData.ngaArea
//更新確認用フラグ
for area in ngaAreas {
var areaData = area.value
areaData.isUpdate = false
ngaAreas.updateValue(areaData, forKey: area.value.areaId)
}
for ngaList in res {
if let id = NSUUID(uuidString: ngaList.id) {
if var nga = ngaAreas[id as UUID] {
//更新
if let name = ngaList.name {
nga.name = name
}
nga.isLock = ngaList.lock
if ngaList.enabled {
if !nga.isRunning {
nga.passingCnt = 0
}
nga.isRunning = true
} else {
nga.passingCnt = 0
nga.isRunning = false
}
nga.points.removeAll()
for pos in ngaList.geometry{
let point = CLLocationCoordinate2D(latitude: pos.lat!, longitude: pos.lon!)
nga.points.append(point)
}
nga.isUpdate = true
ngaAreas.updateValue(nga, forKey: nga.areaId)
} else {
//追加
if var nga = RegisteredNga(areaName: "") {
nga.areaId = id as UUID
if let name = ngaList.name {
nga.name = name
}
nga.isLock = ngaList.lock
nga.color = Color.green.description
nga.isRunning = ngaList.enabled
nga.passingCnt = 0
for pos in ngaList.geometry{
let point = CLLocationCoordinate2D(latitude: pos.lat!, longitude: pos.lon!)
nga.points.append(point)
}
nga.isUpdate = true
ngaAreas.updateValue(nga, forKey: nga.areaId)
}
}
}
}
//更新と削除
for area in ngaAreas {
if area.value.isUpdate {
ngaData.setNgaArea(key: area.value.areaId, value: area.value)
} else {
ngaData.deleteNgaArea(key: area.value.areaId)
}
}
}
case .failure(let errorCode): case .failure(let errorCode):
print(debug: errorCode) print(debug: errorCode)
break break
......
...@@ -29,6 +29,7 @@ struct RegisteredNga { ...@@ -29,6 +29,7 @@ struct RegisteredNga {
var datetime: String = "" //時刻(UTC ISO8601準拠) var datetime: String = "" //時刻(UTC ISO8601準拠)
var color = Color.green.description //ライン色(ARGB) var color = Color.green.description //ライン色(ARGB)
var width: Int = 1 //ライン幅 var width: Int = 1 //ライン幅
var isUpdate: Bool = false
var points: [CLLocationCoordinate2D] = [] var points: [CLLocationCoordinate2D] = []
init?(areaName: String ) { init?(areaName: String ) {
......
...@@ -299,6 +299,10 @@ class SharingData{ ...@@ -299,6 +299,10 @@ class SharingData{
ngaArea.updateValue(value, forKey: key) ngaArea.updateValue(value, forKey: key)
} }
func deleteNgaArea(key: UUID) {
ngaArea.removeValue(forKey: key)
}
func editNgaArea(value: RegisteredNga, type: NgaOperation) { func editNgaArea(value: RegisteredNga, type: NgaOperation) {
let setNgaArea = SetNgaArea() let setNgaArea = SetNgaArea()
var task = ReqNgaList(Id: value.areaId.uuidString) var task = ReqNgaList(Id: value.areaId.uuidString)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment