bacnet/web_settings.py
changeset 2686 703ebf57508a
parent 2676 b276d05bdb09
child 2703 32ffdb32b14e
--- 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
+
+
+
+