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"]: |