Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
opcua-asyncio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nikola Balog
opcua-asyncio
Commits
6118b2e4
Commit
6118b2e4
authored
Mar 27, 2021
by
oroulet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use a task to set time in server
parent
778ab182
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
4 deletions
+10
-4
asyncua/server/internal_server.py
asyncua/server/internal_server.py
+10
-4
No files found.
asyncua/server/internal_server.py
View file @
6118b2e4
...
...
@@ -69,6 +69,8 @@ class InternalServer:
self
.
isession
=
InternalSession
(
self
,
self
.
aspace
,
self
.
subscription_service
,
"Internal"
,
user
=
User
(
role
=
UserRole
.
Admin
))
self
.
current_time_node
=
Node
(
self
.
isession
,
ua
.
NodeId
(
ua
.
ObjectIds
.
Server_ServerStatus_CurrentTime
))
self
.
time_task
=
None
self
.
_time_task_stop
=
False
async
def
init
(
self
,
shelffile
=
None
):
await
self
.
load_standard_address_space
(
shelffile
)
...
...
@@ -165,17 +167,21 @@ class InternalServer:
ua
.
VariantType
.
Int32
)
await
Node
(
self
.
isession
,
ua
.
NodeId
(
ua
.
ObjectIds
.
Server_ServerStatus_StartTime
)).
write_value
(
datetime
.
utcnow
())
if
not
self
.
disabled_clock
:
self
.
_set_current_time
(
)
self
.
time_task
=
asyncio
.
create_task
(
self
.
_set_current_time_loop
()
)
async
def
stop
(
self
):
self
.
logger
.
info
(
'stopping internal server'
)
if
self
.
time_task
:
self
.
_time_task_stop
=
True
await
self
.
time_task
self
.
method_service
.
stop
()
await
self
.
isession
.
close_session
()
await
self
.
history_manager
.
stop
()
def
_set_current_time
(
self
):
asyncio
.
create_task
(
self
.
current_time_node
.
write_value
(
datetime
.
utcnow
()))
asyncio
.
get_running_loop
().
call_later
(
1
,
self
.
_set_current_time
)
async
def
_set_current_time_loop
(
self
):
while
not
self
.
_time_task_stop
:
await
self
.
current_time_node
.
write_value
(
datetime
.
utcnow
())
await
asyncio
.
sleep
(
1
)
def
get_new_channel_id
(
self
):
self
.
_channel_id_counter
+=
1
...
...
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