ProjectController.py
branchnevow_service_rework
changeset 2224 ebd83ec387f9
parent 1997 d9e8fb47340f
child 2245 fe3394697b02
equal deleted inserted replaced
2223:909216419e45 2224:ebd83ec387f9
  1350     def UpdatePLCLog(self, log_count):
  1350     def UpdatePLCLog(self, log_count):
  1351         if log_count:
  1351         if log_count:
  1352             if self.AppFrame is not None:
  1352             if self.AppFrame is not None:
  1353                 self.AppFrame.LogViewer.SetLogCounters(log_count)
  1353                 self.AppFrame.LogViewer.SetLogCounters(log_count)
  1354 
  1354 
       
  1355     DefaultMethods = {
       
  1356         "_Run": False,
       
  1357         "_Stop": False,
       
  1358         "_Transfer": False,
       
  1359         "_Connect": True,
       
  1360         "_Disconnect": False
       
  1361     }
       
  1362 
       
  1363     MethodsFromStatus = {
       
  1364         "Started":      {"_Stop": True,
       
  1365                          "_Transfer": True,
       
  1366                          "_Connect": False,
       
  1367                          "_Disconnect": True},
       
  1368         "Stopped":      {"_Run": True,
       
  1369                          "_Transfer": True,
       
  1370                          "_Connect": False,
       
  1371                          "_Disconnect": True},
       
  1372         "Empty":        {"_Transfer": True,
       
  1373                          "_Connect": False,
       
  1374                          "_Disconnect": True},
       
  1375         "Broken":       {"_Connect": False,
       
  1376                          "_Disconnect": True},
       
  1377         "Disconnected": {},
       
  1378     }
       
  1379 
  1355     def UpdateMethodsFromPLCStatus(self):
  1380     def UpdateMethodsFromPLCStatus(self):
  1356         updated = False
  1381         updated = False
  1357         status = None
  1382         status = None
  1358         if self._connector is not None:
  1383         if self._connector is not None:
  1359             PLCstatus = self._connector.GetPLCstatus()
  1384             PLCstatus = self._connector.GetPLCstatus()
  1362                 self.UpdatePLCLog(log_count)
  1387                 self.UpdatePLCLog(log_count)
  1363         if status is None:
  1388         if status is None:
  1364             self._SetConnector(None, False)
  1389             self._SetConnector(None, False)
  1365             status = "Disconnected"
  1390             status = "Disconnected"
  1366         if self.previous_plcstate != status:
  1391         if self.previous_plcstate != status:
  1367             for args in {
  1392             allmethods = self.DefaultMethods.copy()
  1368                     "Started":      [("_Run", False),
  1393             allmethods.update(
  1369                                      ("_Stop", True)],
  1394                 self.MethodsFromStatus.get(status, {}))
  1370                     "Stopped":      [("_Run", True),
  1395             for method, active in allmethods.items():
  1371                                      ("_Stop", False)],
  1396                 self.ShowMethod(method,active)
  1372                     "Empty":        [("_Run", False),
       
  1373                                      ("_Stop", False)],
       
  1374                     "Broken":       [],
       
  1375                     "Disconnected": [("_Run", False),
       
  1376                                      ("_Stop", False),
       
  1377                                      ("_Transfer", False),
       
  1378                                      ("_Connect", True),
       
  1379                                      ("_Disconnect", False)],
       
  1380             }.get(status, []):
       
  1381                 self.ShowMethod(*args)
       
  1382             self.previous_plcstate = status
  1397             self.previous_plcstate = status
  1383             if self.AppFrame is not None:
  1398             if self.AppFrame is not None:
  1384                 updated = True
  1399                 updated = True
  1385                 self.AppFrame.RefreshStatusToolBar()
  1400                 self.AppFrame.RefreshStatusToolBar()
  1386                 if status == "Disconnected":
  1401                 if status == "Disconnected":
  1711         # Did connection success ?
  1726         # Did connection success ?
  1712         if self._connector is None:
  1727         if self._connector is None:
  1713             # Oups.
  1728             # Oups.
  1714             self.logger.write_error(_("Connection failed to %s!\n") % uri)
  1729             self.logger.write_error(_("Connection failed to %s!\n") % uri)
  1715         else:
  1730         else:
  1716             self.ShowMethod("_Connect", False)
       
  1717             self.ShowMethod("_Disconnect", True)
       
  1718             self.ShowMethod("_Transfer", True)
       
  1719 
       
  1720             self.CompareLocalAndRemotePLC()
  1731             self.CompareLocalAndRemotePLC()
  1721 
  1732 
  1722             # Init with actual PLC status and print it
  1733             # Init with actual PLC status and print it
  1723             self.UpdateMethodsFromPLCStatus()
  1734             self.UpdateMethodsFromPLCStatus()
  1724             if self.previous_plcstate in ["Started", "Stopped"]:
  1735             if self.previous_plcstate in ["Started", "Stopped"]: