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
30583d1a
Commit
30583d1a
authored
Mar 09, 2016
by
olivier R-D
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
deepcopy when reading and writting attributes to addressspace from on server side
parent
4fbb362e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
6 deletions
+7
-6
opcua/server/internal_server.py
opcua/server/internal_server.py
+7
-6
No files found.
opcua/server/internal_server.py
View file @
30583d1a
...
...
@@ -3,7 +3,7 @@ Internal server implementing opcu-ua interface. can be used on server side or to
"""
from
datetime
import
datetime
from
copy
import
copy
from
copy
import
copy
,
deepcopy
import
logging
from
threading
import
Lock
from
enum
import
Enum
...
...
@@ -166,8 +166,7 @@ class InternalSession(object):
self
.
authentication_token
=
ua
.
NodeId
(
self
.
_auth_counter
)
InternalSession
.
_auth_counter
+=
1
self
.
subscriptions
=
[]
#self.logger.debug("Created internal session %s for user %s", self.name, self.user)
print
(
"Created internal session {} for user {}"
.
format
(
self
.
name
,
self
.
user
))
self
.
logger
.
info
(
"Created internal session %s for user %s"
,
self
.
name
,
self
.
user
)
self
.
_lock
=
Lock
()
def
__str__
(
self
):
...
...
@@ -212,14 +211,16 @@ class InternalSession(object):
return
result
def
read
(
self
,
params
):
return
self
.
iserver
.
attribute_service
.
read
(
params
)
results
=
self
.
iserver
.
attribute_service
.
read
(
params
)
if
self
.
external
:
return
results
return
[
deepcopy
(
dv
)
for
dv
in
results
]
def
write
(
self
,
params
):
if
not
self
.
external
:
# If session is internal we need to store a copy og object, not a reference,
#otherwise users may change it and we will not generate expected events
for
ntw
in
params
.
NodesToWrite
:
ntw
.
Value
.
Value
.
Value
=
copy
(
ntw
.
Value
.
Value
.
Value
)
params
.
NodesToWrite
=
[
deepcopy
(
ntw
)
for
ntw
in
params
.
NodesToWrite
]
return
self
.
iserver
.
attribute_service
.
write
(
params
,
self
.
user
)
def
browse
(
self
,
params
):
...
...
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