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