Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Sailassist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
54
Merge Requests
54
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gr-ssv
Sailassist
Commits
dc03aff2
Commit
dc03aff2
authored
Nov 29, 2023
by
sugita mamoru
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
f1bcebd2
' into develop
parents
fa89e1e4
f1bcebd2
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
222 additions
and
8 deletions
+222
-8
project.pbxproj
Seilassist/Sailassist.xcodeproj/project.pbxproj
+12
-0
DeleteEcaArea.swift
Seilassist/Sailassist/ECA/DeleteEcaArea.swift
+32
-0
EcaTask.swift
Seilassist/Sailassist/ECA/EcaTask.swift
+4
-0
GetEcaList.swift
Seilassist/Sailassist/ECA/GetEcaList.swift
+34
-0
SetEcaArea.swift
Seilassist/Sailassist/ECA/SetEcaArea.swift
+32
-0
LoginView.swift
Seilassist/Sailassist/Login/LoginView.swift
+4
-1
InputIdPassWordView.swift
Seilassist/Sailassist/Login/View/InputIdPassWordView.swift
+1
-1
InputUserNameView.swift
Seilassist/Sailassist/Login/View/InputUserNameView.swift
+3
-0
TaskSwitchingMenuView.swift
...sist/Sailassist/Map/Task/View/TaskSwitchingMenuView.swift
+2
-0
MenuGpsSelectView.swift
Seilassist/Sailassist/Menu/View/MenuGpsSelectView.swift
+5
-0
ServerSession.swift
Seilassist/Sailassist/ServerSession/ServerSession.swift
+36
-4
SessionTaskList.swift
Seilassist/Sailassist/ServerSession/SessionTaskList.swift
+57
-2
No files found.
Seilassist/Sailassist.xcodeproj/project.pbxproj
View file @
dc03aff2
...
...
@@ -86,6 +86,9 @@
D52D21412AEDE18F00324D58
/* EcaCoordinatesTable.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D52D21402AEDE18F00324D58
/* EcaCoordinatesTable.swift */
;
};
D545FC742B09C74300F206D0
/* AlertManager.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D545FC732B09C74300F206D0
/* AlertManager.swift */
;
};
D545FC762B09C81300F206D0
/* PushNotificationTypes.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D545FC752B09C81300F206D0
/* PushNotificationTypes.swift */
;
};
D55135202B15B030007B66B1
/* SetEcaArea.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D551351F2B15B030007B66B1
/* SetEcaArea.swift */
;
};
D55135222B15C062007B66B1
/* GetEcaList.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D55135212B15C062007B66B1
/* GetEcaList.swift */
;
};
D55135242B15C3BF007B66B1
/* DeleteEcaArea.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D55135232B15C3BF007B66B1
/* DeleteEcaArea.swift */
;
};
D58E1F502B142A260092D8FE
/* EcaArea.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D58E1F4F2B142A260092D8FE
/* EcaArea.swift */
;
};
D58E1F522B142A3F0092D8FE
/* ResEcaArea.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D58E1F512B142A3F0092D8FE
/* ResEcaArea.swift */
;
};
D58E1F542B142A510092D8FE
/* SessionEcaArea.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
D58E1F532B142A510092D8FE
/* SessionEcaArea.swift */
;
};
...
...
@@ -226,6 +229,9 @@
D53ACA752B0AECF8008DCB18
/* Sailassist.entitlements */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
text.plist.entitlements
;
name
=
Sailassist.entitlements
;
path
=
Sailassist/Sailassist.entitlements
;
sourceTree
=
"<group>"
;
};
D545FC732B09C74300F206D0
/* AlertManager.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
AlertManager.swift
;
path
=
Sailassist/VoiceManager/AlertManager.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D545FC752B09C81300F206D0
/* PushNotificationTypes.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
PushNotificationTypes.swift
;
path
=
Sailassist/DataSource/PushNotificationTypes.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D551351F2B15B030007B66B1
/* SetEcaArea.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
SetEcaArea.swift
;
path
=
Sailassist/ECA/SetEcaArea.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D55135212B15C062007B66B1
/* GetEcaList.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
GetEcaList.swift
;
path
=
Sailassist/ECA/GetEcaList.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D55135232B15C3BF007B66B1
/* DeleteEcaArea.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
name
=
DeleteEcaArea.swift
;
path
=
Sailassist/ECA/DeleteEcaArea.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D58E1F4F2B142A260092D8FE
/* EcaArea.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
EcaArea.swift
;
path
=
Sailassist/ECA/EcaArea.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D58E1F512B142A3F0092D8FE
/* ResEcaArea.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
ResEcaArea.swift
;
path
=
Sailassist/Json/ResEcaArea.swift
;
sourceTree
=
SOURCE_ROOT
;
};
D58E1F532B142A510092D8FE
/* SessionEcaArea.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
SessionEcaArea.swift
;
path
=
Sailassist/ServerSession/SessionEcaArea.swift
;
sourceTree
=
SOURCE_ROOT
;
};
...
...
@@ -641,6 +647,9 @@
D52D213E2AEBB7D700324D58
/* RegisteredEca.swift */
,
D52D21402AEDE18F00324D58
/* EcaCoordinatesTable.swift */
,
D5CB6FA02B023F7F00EC2010
/* EcaTask.swift */
,
D551351F2B15B030007B66B1
/* SetEcaArea.swift */
,
D55135212B15C062007B66B1
/* GetEcaList.swift */
,
D55135232B15C3BF007B66B1
/* DeleteEcaArea.swift */
,
);
path
=
ECA
;
sourceTree
=
"<group>"
;
...
...
@@ -877,6 +886,7 @@
buildActionMask
=
2147483647
;
files
=
(
D5258CA52B036F0700365276
/* GetMessage.swift in Sources */
,
D55135222B15C062007B66B1
/* GetEcaList.swift in Sources */
,
D52D21412AEDE18F00324D58
/* EcaCoordinatesTable.swift in Sources */
,
02A1DE2F2AFB4AA0005BCF55
/* ChatInputView.swift in Sources */
,
02CD06912AE6536B005F8D8F
/* LayerEnum.swift in Sources */
,
...
...
@@ -894,6 +904,7 @@
020B98412AD8C3810029DE4C
/* LoginView.swift in Sources */
,
D5AE351D2AEBA6FC00059889
/* SessionLogin.swift in Sources */
,
D5258C9F2B03527400365276
/* ResGetMessages.swift in Sources */
,
D55135242B15C3BF007B66B1
/* DeleteEcaArea.swift in Sources */
,
024EDE1B2B0C41E40013BAC8
/* MenuSettingView.swift in Sources */
,
020B98552AD924930029DE4C
/* QrCodeScannerView.swift in Sources */
,
02CE4D7F2ADE42A9002E79BC
/* MenuContentView.swift in Sources */
,
...
...
@@ -940,6 +951,7 @@
02CD068F2AE6535F005F8D8F
/* MapSource.swift in Sources */
,
02C3E5CE2AFCA04700AF7837
/* OtherChatContentView.swift in Sources */
,
020B98442AD8E4910029DE4C
/* FontStyle.swift in Sources */
,
D55135202B15B030007B66B1
/* SetEcaArea.swift in Sources */
,
D592D5272B0F182C00B91A1C
/* ReqAckMessage.swift in Sources */
,
D592D5292B0F198100B91A1C
/* ReqChatModeMessage.swift in Sources */
,
D51AA4042B099DCD00EBBDD4
/* SignalRService.swift in Sources */
,
...
...
Seilassist/Sailassist/ECA/DeleteEcaArea.swift
0 → 100644
View file @
dc03aff2
//
// DeleteEcaArea.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import
Foundation
class
DeleteEcaArea
{
var
sessionTaskList
=
SessionTaskList
()
func
start
(
ecaId
:
Int
)
{
print
(
debug
:
"called"
)
// sessionTaskList.RequestDeleteTaskList(ecaId, completion: responseDeleteTaskList)
}
private
func
responseDeleteTaskList
(
result
:
Result
<
Data
,
APIError
>
)
{
print
(
debug
:
"called"
)
switch
result
{
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ReqTaskList
.
self
)
if
let
res
=
resjson
{
//ECA保存
}
case
.
failure
(
let
errorCode
):
print
(
debug
:
errorCode
)
break
}
}
}
Seilassist/Sailassist/ECA/EcaTask.swift
View file @
dc03aff2
...
...
@@ -76,6 +76,10 @@ class EcaTask {
notificationEca
(
point
:
SwitchingEca
.
Finish
)
eca
.
status
=
EcaState
.
finishPass
}
if
0.0
<=
Float
(
distance
)
&&
eca
.
status
==
EcaState
.
finishPass
{
eca
.
status
=
EcaState
.
incomplete
}
}
}
}
...
...
Seilassist/Sailassist/ECA/GetEcaList.swift
0 → 100644
View file @
dc03aff2
//
// GetEcaList.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import
Foundation
import
Foundation
class
GetEcaList
{
var
sessionTaskList
=
SessionTaskList
()
func
start
()
{
print
(
debug
:
"called"
)
// sessionTaskList.RequestGetTaskList(responseGetTaskList)
}
private
func
responseGetTaskList
(
result
:
Result
<
Data
,
APIError
>
)
{
print
(
debug
:
"called"
)
switch
result
{
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ReqTaskList
]
.
self
)
if
let
res
=
resjson
{
//ECA保存
}
case
.
failure
(
let
errorCode
):
print
(
debug
:
errorCode
)
break
}
}
}
Seilassist/Sailassist/ECA/SetEcaArea.swift
0 → 100644
View file @
dc03aff2
//
// SetEcaArea.swift
// Sailassist
//
// Created by 三浦薫巳 on 2023/11/28.
//
import
Foundation
class
SetEcaArea
{
var
sessionTaskList
=
SessionTaskList
()
func
start
(
eca
:
ReqTaskList
)
{
print
(
debug
:
"called"
)
// sessionTaskList.RequestPostTaskList(eca, completion: responsePostTaskList)
}
private
func
responsePostTaskList
(
result
:
Result
<
Data
,
APIError
>
)
{
print
(
debug
:
"called"
)
switch
result
{
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ReqTaskList
.
self
)
if
let
res
=
resjson
{
//ECA保存
}
case
.
failure
(
let
errorCode
):
print
(
debug
:
errorCode
)
break
}
}
}
Seilassist/Sailassist/Login/LoginView.swift
View file @
dc03aff2
...
...
@@ -99,7 +99,7 @@ struct LoginView: View {
switch
alertType
{
case
.
loginFailure
:
return
Alert
(
title
:
Text
(
"error"
),
message
:
Text
(
"
Login failure
."
),
message
:
Text
(
"
Ship ID or Password is incorrect
."
),
dismissButton
:
.
default
(
Text
(
"OK"
),
action
:
{
viewMode
=
.
SelectType
})
)
case
.
Expired
:
...
...
@@ -190,6 +190,9 @@ struct LoginView: View {
let
route
=
MonitoringRoute
()
route
.
start
()
let
ecaList
=
GetEcaList
()
ecaList
.
start
()
}
timer
?
.
fire
()
...
...
Seilassist/Sailassist/Login/View/InputIdPassWordView.swift
View file @
dc03aff2
...
...
@@ -77,7 +77,7 @@ struct InputIdPassWordView: View {
})
.
alert
(
isPresented
:
$
isIdPassWordEmpty
,
content
:
{
Alert
(
title
:
Text
(
"error"
),
message
:
Text
(
"Ship Id or Password
not entered
."
)
message
:
Text
(
"Ship Id or Password
is incorrect
."
)
)
})
.
padding
(
.
top
,
40
)
...
...
Seilassist/Sailassist/Login/View/InputUserNameView.swift
View file @
dc03aff2
...
...
@@ -109,6 +109,9 @@ struct InputUserNameView: View {
let
route
=
MonitoringRoute
()
route
.
start
()
let
ecaList
=
GetEcaList
()
ecaList
.
start
()
}
timer
?
.
fire
()
...
...
Seilassist/Sailassist/Map/Task/View/TaskSwitchingMenuView.swift
View file @
dc03aff2
...
...
@@ -19,6 +19,7 @@ struct TaskSwitchingMenuView: View {
@ObservedObject
var
ecaData
=
SharingData
.
eca
@State
var
isEcaAlert
:
Bool
=
false
@State
var
ecaAlertType
:
EcaAlertType
=
.
ecaDelete
let
deleteEcaArea
=
DeleteEcaArea
()
var
body
:
some
View
{
VStack
{
...
...
@@ -89,6 +90,7 @@ struct TaskSwitchingMenuView: View {
var
newData
=
ecaArea
newData
.
isEnable
=
false
ecaData
.
editEcaArea
(
key
:
ecaArea
.
name
,
value
:
newData
)
deleteEcaArea
.
start
(
ecaId
:
ecaArea
.
id
)
}
edittingEcaArea
=
nil
}))
...
...
Seilassist/Sailassist/Menu/View/MenuGpsSelectView.swift
View file @
dc03aff2
...
...
@@ -44,6 +44,11 @@ struct MenuGpsSelectView: View {
VStack
(
spacing
:
0
){
Button
{
selected
=
content
if
content
==
.
Mobile
{
Preferences
.
LocationType
=
0
}
else
{
Preferences
.
LocationType
=
1
}
}
label
:{
HStack
{
Text
(
content
.
title
)
...
...
Seilassist/Sailassist/ServerSession/ServerSession.swift
View file @
dc03aff2
...
...
@@ -101,11 +101,43 @@ class ServerSession{
if
inresponse
.
statusCode
!=
200
{
throw
APIError
.
serverError
}
//Cookieを保存
if
let
fields
=
inresponse
.
allHeaderFields
as?
[
String
:
String
],
let
url
=
inresponse
.
url
{
for
cookie
in
HTTPCookie
.
cookies
(
withResponseHeaderFields
:
fields
,
for
:
url
)
{
HTTPCookieStorage
.
shared
.
setCookie
(
cookie
)
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
}
}
catch
{
if
error
as?
APIError
!=
nil
{
completion
(
.
failure
(
error
as!
APIError
))
}
else
{
completion
(
.
failure
(
.
unknown
))
}
}
})
.
resume
()
}
func
deleteJson
(
_
req_url
:
URL
,
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
){
var
req
=
URLRequest
(
url
:
req_url
)
req
.
httpMethod
=
"DELTE"
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// サーバー送信
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
session
.
finishTasksAndInvalidate
()
do
{
if
let
error
=
error
{
let
err
=
APIError
.
clientError
throw
APIError
.
clientError
}
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
throw
APIError
.
responseError
}
if
inresponse
.
statusCode
!=
200
{
throw
APIError
.
serverError
}
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
...
...
Seilassist/Sailassist/ServerSession/SessionTaskList.swift
View file @
dc03aff2
...
...
@@ -17,9 +17,9 @@ class SessionTaskList : ObservableObject {
private
var
Calling
:
Bool
=
false
// 通信中
/**
*
メッセージ
*
タスクリスト取得
*/
func
RequestTaskList
(
_
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
)
{
func
Request
Get
TaskList
(
_
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
)
{
print
(
debug
:
"calld"
)
if
Calling
{
return
...
...
@@ -39,4 +39,59 @@ class SessionTaskList : ObservableObject {
serverSession
.
getJson
(
req_url
,
completion
:
completion
)
}
}
/**
* タスク保存
*/
func
RequestPostTaskList
(
_
eca
:
ReqTaskList
,
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
)
{
print
(
debug
:
"calld"
)
if
Calling
{
return
}
Calling
=
true
// リクエストURLの組み立て
let
id
=
SharingData
.
my
.
shipId
if
id
!=
0
{
var
url_string
:
String
=
HttpRequestType
.
TaskList
.
rawValue
url_string
=
url_string
.
replacingOccurrences
(
of
:
"XXXXX"
,
with
:
String
(
id
))
guard
let
req_url
=
URL
(
string
:
url_string
)
else
{
Calling
=
false
return
}
if
let
postdata
=
serverSession
.
toJSON
(
eca
)
{
serverSession
.
postJson
(
req_url
,
postdata
,
completion
:
completion
)
}
else
{
Calling
=
false
return
}
}
}
/**
* タスク削除
*/
func
RequestDeleteTaskList
(
_
ecaId
:
Int
,
completion
:
@escaping
((
Result
<
Data
,
APIError
>
))
->
Void
)
{
print
(
debug
:
"calld"
)
if
Calling
{
return
}
Calling
=
true
// リクエストURLの組み立て
let
id
=
SharingData
.
my
.
shipId
if
id
!=
0
{
let
strId
=
String
(
id
)
+
"/"
+
String
(
ecaId
)
var
url_string
:
String
=
HttpRequestType
.
TaskList
.
rawValue
url_string
=
url_string
.
replacingOccurrences
(
of
:
"XXXXX"
,
with
:
strId
)
guard
let
req_url
=
URL
(
string
:
url_string
)
else
{
Calling
=
false
return
}
serverSession
.
deleteJson
(
req_url
,
completion
:
completion
)
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment