--- a/bacnet/web_settings.py Mon Jun 29 14:38:04 2020 +0200
+++ b/bacnet/web_settings.py Wed Jul 01 10:36:20 2020 +0200
@@ -34,14 +34,14 @@
# Will contain references to the C functions
# (implemented in beremiz/bacnet/runtime/server.c)
# used to get/set the BACnet specific configuration paramters
-GetParamFuncs = {}
-SetParamFuncs = {}
+BacnetGetParamFuncs = {}
+BacnetSetParamFuncs = {}
# Upon PLC load, this Dictionary is initialised with the BACnet configuration
# hardcoded in the C file
# (i.e. the configuration inserted in Beremiz IDE when project was compiled)
-_DefaultConfiguration = None
+_BacnetDefaultConfiguration = None
# Dictionary that contains the BACnet configuration currently being shown
@@ -52,13 +52,13 @@
# The configuration viewed on the web will only be different to the current
# configuration when the user edits the configuration, and when
# the user asks to save the edited configuration but it contains an error.
-_WebviewConfiguration = None
+_BacnetWebviewConfiguration = None
# Dictionary that stores the BACnet configuration currently stored in a file
# Currently only used to decide whether or not to show the "Delete" button on the
-# web interface (only shown if _SavedConfiguration is not None)
-_SavedConfiguration = None
+# web interface (only shown if _BacnetSavedConfiguration is not None)
+_BacnetSavedConfiguration = None
# File to which the new BACnet configuration gets stored on the PLC
@@ -99,7 +99,7 @@
-def _CheckPortnumber(port_number):
+def _CheckBacnetPortnumber(port_number):
""" check validity of the port number """
try:
portnum = int(port_number)
@@ -112,7 +112,7 @@
-def _CheckDeviceID(device_id):
+def _CheckBacnetDeviceID(device_id):
"""
# check validity of the Device ID
# NOTE: BACnet device (object) IDs are 22 bits long (not counting the 10 bits for the type ID)
@@ -133,25 +133,25 @@
-def _CheckConfiguration(BACnetConfig):
+def _CheckBacnetConfiguration(BACnetConfig):
res = True
- res = res and _CheckPortnumber(BACnetConfig["port_number"])
- res = res and _CheckDeviceID (BACnetConfig["device_id"])
+ res = res and _CheckBacnetPortnumber(BACnetConfig["port_number"])
+ res = res and _CheckBacnetDeviceID (BACnetConfig["device_id"])
return res
-def _CheckWebConfiguration(BACnetConfig):
+def _CheckBacnetWebConfiguration(BACnetConfig):
res = True
# check the port number
- if not _CheckPortnumber(BACnetConfig["port_number"]):
+ if not _CheckBacnetPortnumber(BACnetConfig["port_number"]):
raise annotate.ValidateError(
{"port_number": "Invalid port number: " + str(BACnetConfig["port_number"])},
_("BACnet configuration error:"))
res = False
- if not _CheckDeviceID(BACnetConfig["device_id"]):
+ if not _CheckBacnetDeviceID(BACnetConfig["device_id"]):
raise annotate.ValidateError(
{"device_id": "Invalid device ID: " + str(BACnetConfig["device_id"])},
_("BACnet configuration error:"))
@@ -164,26 +164,26 @@
-def _SetSavedConfiguration(BACnetConfig):
+def _SetBacnetSavedConfiguration(BACnetConfig):
""" Stores in a file a dictionary containing the BACnet parameter configuration """
- global _SavedConfiguration
-
- if BACnetConfig == _DefaultConfiguration :
- _DelSavedConfiguration()
- _SavedConfiguration = None
+ global _BacnetSavedConfiguration
+
+ if BACnetConfig == _BacnetDefaultConfiguration :
+ _DelBacnetSavedConfiguration()
+ _BacnetSavedConfiguration = None
else :
with open(os.path.realpath(_BACnetConfFilename), 'w') as f:
json.dump(BACnetConfig, f, sort_keys=True, indent=4)
- _SavedConfiguration = BACnetConfig
-
-
-def _DelSavedConfiguration():
+ _BacnetSavedConfiguration = BACnetConfig
+
+
+def _DelBacnetSavedConfiguration():
""" Deletes the file cotaining the persistent BACnet configuration """
if os.path.exists(_BACnetConfFilename):
os.remove(_BACnetConfFilename)
-def _GetSavedConfiguration():
+def _GetBacnetSavedConfiguration():
"""
# Returns a dictionary containing the BACnet parameter configuration
# that was last saved to file. If no file exists, then return None
@@ -194,67 +194,67 @@
except Exception:
return None
- if _CheckConfiguration(saved_config):
+ if _CheckBacnetConfiguration(saved_config):
return saved_config
else:
return None
-def _GetPLCConfiguration():
+def _GetBacnetPLCConfiguration():
"""
# Returns a dictionary containing the current BACnet parameter configuration
# stored in the C variables in the loaded PLC (.so file)
"""
current_config = {}
for par_name, x1, x2, x3 in BACnet_parameters:
- value = GetParamFuncs[par_name]()
+ value = BacnetGetParamFuncs[par_name]()
if value is not None:
current_config[par_name] = value
return current_config
-def _SetPLCConfiguration(BACnetConfig):
+def _SetBacnetPLCConfiguration(BACnetConfig):
"""
# Stores the BACnet parameter configuration into the
# the C variables in the loaded PLC (.so file)
"""
for par_name in BACnetConfig:
value = BACnetConfig[par_name]
- #PLCObject.LogMessage("BACnet web server extension::_SetPLCConfiguration() Setting "
+ #PLCObject.LogMessage("BACnet web server extension::_SetBacnetPLCConfiguration() Setting "
# + par_name + " to " + str(value) )
if value is not None:
- SetParamFuncs[par_name](value)
+ BacnetSetParamFuncs[par_name](value)
# update the configuration shown on the web interface
- global _WebviewConfiguration
- _WebviewConfiguration = _GetPLCConfiguration()
-
-
-
-def _GetWebviewConfigurationValue(ctx, argument):
+ global _BacnetWebviewConfiguration
+ _BacnetWebviewConfiguration = _GetBacnetPLCConfiguration()
+
+
+
+def _GetBacnetWebviewConfigurationValue(ctx, argument):
"""
# Callback function, called by the web interface (NevowServer.py)
# to fill in the default value of each parameter
"""
try:
- return _WebviewConfiguration[argument.name]
+ return _BacnetWebviewConfiguration[argument.name]
except Exception:
return ""
# The configuration of the web form used to see/edit the BACnet parameters
-webFormInterface = [(name, web_dtype (label=web_label, default=_GetWebviewConfigurationValue))
+webFormInterface = [(name, web_dtype (label=web_label, default=_GetBacnetWebviewConfigurationValue))
for name, web_label, c_dtype, web_dtype in BACnet_parameters]
-def OnButtonSave(**kwargs):
+def OnBacnetButtonSave(**kwargs):
"""
# Function called when user clicks 'Save' button in web interface
# The function will configure the BACnet plugin in the PLC with the values
# specified in the web interface. However, values must be validated first!
"""
- #PLCObject.LogMessage("BACnet web server extension::OnButtonSave() Called")
+ #PLCObject.LogMessage("BACnet web server extension::OnBacnetButtonSave() Called")
newConfig = {}
for par_name, x1, x2, x3 in BACnet_parameters:
@@ -264,20 +264,20 @@
# First check if configuration is OK.
- if not _CheckWebConfiguration(newConfig):
+ if not _CheckBacnetWebConfiguration(newConfig):
return
# store to file the new configuration so that
# we can recoup the configuration the next time the PLC
# has a cold start (i.e. when Beremiz_service.py is retarted)
- _SetSavedConfiguration(newConfig)
+ _SetBacnetSavedConfiguration(newConfig)
# Configure PLC with the current BACnet parameters
- _SetPLCConfiguration(newConfig)
-
-
-
-def OnButtonReset(**kwargs):
+ _SetBacnetPLCConfiguration(newConfig)
+
+
+
+def OnBacnetButtonReset(**kwargs):
"""
# Function called when user clicks 'Delete' button in web interface
# The function will delete the file containing the persistent
@@ -285,12 +285,12 @@
"""
# Delete the file
- _DelSavedConfiguration()
+ _DelBacnetSavedConfiguration()
# Set the current configuration to the default (hardcoded in C)
- _SetPLCConfiguration(_DefaultConfiguration)
+ _SetBacnetPLCConfiguration(_BacnetDefaultConfiguration)
# Reset global variable
- global _SavedConfiguration
- _SavedConfiguration = None
+ global _BacnetSavedConfiguration
+ _BacnetSavedConfiguration = None
@@ -317,25 +317,25 @@
# XXX TODO : stop reading from PLC .so file. This code is template code
# that can use modbus extension build data
- GetParamFuncs[name] = getattr(PLCObject.PLClibraryHandle, GetParamFuncName)
- GetParamFuncs[name].restype = c_dtype
- GetParamFuncs[name].argtypes = None
+ BacnetGetParamFuncs[name] = getattr(PLCObject.PLClibraryHandle, GetParamFuncName)
+ BacnetGetParamFuncs[name].restype = c_dtype
+ BacnetGetParamFuncs[name].argtypes = None
- SetParamFuncs[name] = getattr(PLCObject.PLClibraryHandle, SetParamFuncName)
- SetParamFuncs[name].restype = None
- SetParamFuncs[name].argtypes = [c_dtype]
+ BacnetSetParamFuncs[name] = getattr(PLCObject.PLClibraryHandle, SetParamFuncName)
+ BacnetSetParamFuncs[name].restype = None
+ BacnetSetParamFuncs[name].argtypes = [c_dtype]
# Default configuration is the configuration done in Beremiz IDE
# whose parameters get hardcoded into C, and compiled into the .so file
# We read the default configuration from the .so file before the values
# get changed by the user using the web server, or by the call (further on)
- # to _SetPLCConfiguration(SavedConfiguration)
- global _DefaultConfiguration
- _DefaultConfiguration = _GetPLCConfiguration()
+ # to _SetBacnetPLCConfiguration(BacnetSavedConfiguration)
+ global _BacnetDefaultConfiguration
+ _BacnetDefaultConfiguration = _GetBacnetPLCConfiguration()
# Show the current PLC configuration on the web interface
- global _WebviewConfiguration
- _WebviewConfiguration = _GetPLCConfiguration()
+ global _BacnetWebviewConfiguration
+ _BacnetWebviewConfiguration = _GetBacnetPLCConfiguration()
# Read from file the last used configuration, which is likely
# different to the hardcoded configuration.
@@ -344,13 +344,13 @@
# so the PLC will start off with this saved configuration instead
# of the hardcoded (in Beremiz C generated code) configuration values.
#
- # Note that _SetPLCConfiguration() will also update
- # _WebviewConfiguration , if necessary.
- global _SavedConfiguration
- _SavedConfiguration = _GetSavedConfiguration()
- if _SavedConfiguration is not None:
- if _CheckConfiguration(_SavedConfiguration):
- _SetPLCConfiguration(_SavedConfiguration)
+ # Note that _SetBacnetPLCConfiguration() will also update
+ # _BacnetWebviewConfiguration , if necessary.
+ global _BacnetSavedConfiguration
+ _BacnetSavedConfiguration = _GetBacnetSavedConfiguration()
+ if _BacnetSavedConfiguration is not None:
+ if _CheckBacnetConfiguration(_BacnetSavedConfiguration):
+ _SetBacnetPLCConfiguration(_BacnetSavedConfiguration)
WebSettings = NS.newExtensionSetting("BACnet extension", "bacnet_token")
@@ -360,7 +360,7 @@
_("BACnet Configuration"), # description
webFormInterface, # fields
_("Apply"), # button label
- OnButtonSave) # callback
+ OnBacnetButtonSave) # callback
# Add the Delete button to the web interface
WebSettings.addSettings(
@@ -369,15 +369,15 @@
[ ("status",
annotate.String(label=_("Current state"),
immutable=True,
- default=lambda *k:getConfigStatus())),
+ default=lambda *k:getBacnetConfigStatus())),
], # fields (empty, no parameters required!)
_("Reset"), # button label
- OnButtonReset)
-
-
-
-def getConfigStatus():
- if _WebviewConfiguration == _DefaultConfiguration :
+ OnBacnetButtonReset)
+
+
+
+def getBacnetConfigStatus():
+ if _BacnetWebviewConfiguration == _BacnetDefaultConfiguration :
return "Unchanged"
return "Modified"
@@ -392,11 +392,11 @@
NS.removeExtensionSetting("bacnet_token")
- GetParamFuncs = {}
- SetParamFuncs = {}
- _WebviewConfiguration = None
- _SavedConfiguration = None
-
-
-
-
+ BacnetGetParamFuncs = {}
+ BacnetSetParamFuncs = {}
+ _BacnetWebviewConfiguration = None
+ _BacnetSavedConfiguration = None
+
+
+
+