beremiz

Parents 0d44502026d2
Children 3394457c88ef
WAMP: better behaviour and user feedback in case of connection lost and re-connection.
--- a/connectors/WAMP/__init__.py Wed May 28 15:30:16 2025 +0200
+++ b/connectors/WAMP/__init__.py Thu Jun 19 13:13:32 2025 +0200
@@ -35,7 +35,7 @@
from autobahn.twisted import wamp
from autobahn.twisted.websocket import WampWebSocketClientFactory, connectWS
from autobahn.wamp import types, auth
-from autobahn.wamp.exception import TransportLost
+from autobahn.wamp.exception import TransportLost, ApplicationError
from autobahn.wamp.serializer import MsgPackSerializer
from OpenSSL import crypto
@@ -276,9 +276,12 @@
except TransportLost:
confnodesroot.logger.write_error(_("Connection lost!\n"))
confnodesroot._SetConnector(None)
+ except ApplicationError as e:
+ confnodesroot.logger.write_error(_("Connection closed because of error: ") + e.error_message() + "\n")
+ confnodesroot._SetConnector(None)
except Exception:
errmess = traceback.format_exc()
- confnodesroot.logger.write_error(errmess+"\n")
+ confnodesroot.logger.write_error(_("Unexcpected exception in WAMP connector: ") + errmess + "\n")
print(errmess)
# confnodesroot._SetConnector(None)
return self.PLCObjDefaults.get(funcname)
@@ -296,5 +299,4 @@
return WampPLCObjectProxy()
-
WAMP_connector_factory = partial(_WAMP_connector_factory, WampSession)
--- a/runtime/WampClient.py Wed May 28 15:30:16 2025 +0200
+++ b/runtime/WampClient.py Thu Jun 19 13:13:32 2025 +0200
@@ -66,22 +66,24 @@
_UsedWampTrust = None
_UsedWampClientCert = None
+defaultRegistrationOptions = {"invoke": u"last"}
+
ExposedCalls = [
- ("StartPLC", {}),
- ("StopPLC", {}),
- ("GetPLCstatus", {}),
- ("GetPLCID", {}),
- ("SeedBlob", {}),
- ("AppendChunkToBlob", {}),
- ("PurgeBlobs", {}),
- ("NewPLC", {}),
- ("RepairPLC", {}),
- ("MatchMD5", {}),
- ("SetTraceVariablesList", {}),
- ("GetTraceVariables", {}),
- ("GetLogMessage", {}),
- ("ResetLogCount", {}),
- ("ExtendedCall", {})
+ ("StartPLC", defaultRegistrationOptions),
+ ("StopPLC", defaultRegistrationOptions),
+ ("GetPLCstatus", defaultRegistrationOptions),
+ ("GetPLCID", defaultRegistrationOptions),
+ ("SeedBlob", defaultRegistrationOptions),
+ ("AppendChunkToBlob", defaultRegistrationOptions),
+ ("PurgeBlobs", defaultRegistrationOptions),
+ ("NewPLC", defaultRegistrationOptions),
+ ("RepairPLC", defaultRegistrationOptions),
+ ("MatchMD5", defaultRegistrationOptions),
+ ("SetTraceVariablesList", defaultRegistrationOptions),
+ ("GetTraceVariables", defaultRegistrationOptions),
+ ("GetLogMessage", defaultRegistrationOptions),
+ ("ResetLogCount", defaultRegistrationOptions),
+ ("ExtendedCall", defaultRegistrationOptions)
]
# de-activated dumb wamp config