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

NGAデータ更新修正

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