equal
deleted
inserted
replaced
58 from dialogs import UriEditor, IDManager |
58 from dialogs import UriEditor, IDManager |
59 from PLCControler import PLCControler |
59 from PLCControler import PLCControler |
60 from plcopen.structures import IEC_KEYWORDS |
60 from plcopen.structures import IEC_KEYWORDS |
61 from plcopen.types_enums import ComputeConfigurationResourceName, ITEM_CONFNODE |
61 from plcopen.types_enums import ComputeConfigurationResourceName, ITEM_CONFNODE |
62 import targets |
62 import targets |
63 from runtime.typemapping import DebugTypesSize, UnpackDebugBuffer |
63 from runtime.typemapping import DebugTypesSize, UnpackDebugBuffer, ValueToIECBytes |
64 from runtime import PlcStatus |
64 from runtime import PlcStatus |
65 from ConfigTreeNode import ConfigTreeNode, XSDSchemaErrorMessage |
65 from ConfigTreeNode import ConfigTreeNode, XSDSchemaErrorMessage |
66 from POULibrary import UserAddressedException |
66 from POULibrary import UserAddressedException |
67 |
67 |
68 base_folder = paths.AbsParentDir(__file__) |
68 base_folder = paths.AbsParentDir(__file__) |
1613 1 : _("Debug: Too many variables traced. Max 1024.\n"), |
1613 1 : _("Debug: Too many variables traced. Max 1024.\n"), |
1614 # FORCE_LIST_OVERFLOW |
1614 # FORCE_LIST_OVERFLOW |
1615 2 : _("Debug: Too many variables forced. Max 256.\n"), |
1615 2 : _("Debug: Too many variables forced. Max 256.\n"), |
1616 # FORCE_BUFFER_OVERFLOW |
1616 # FORCE_BUFFER_OVERFLOW |
1617 3 : _("Debug: Cumulated forced variables size too large. Max 1KB.\n"), |
1617 3 : _("Debug: Cumulated forced variables size too large. Max 1KB.\n"), |
|
1618 # FORCE_INVALID |
|
1619 3 : _("Debug: Invalid forced value.\n"), |
1618 # DEBUG_SUSPENDED |
1620 # DEBUG_SUSPENDED |
1619 4 : _("Debug: suspended.\n") |
1621 5 : _("Debug: suspended.\n") |
1620 } |
1622 } |
1621 |
1623 |
1622 def RegisterDebugVarToConnector(self): |
1624 def RegisterDebugVarToConnector(self): |
1623 Idxs = [] |
1625 Idxs = [] |
1624 self.TracedIECPath = [] |
1626 self.TracedIECPath = [] |
1635 # Convert |
1637 # Convert |
1636 Idx, IEC_Type = self._IECPathToIdx.get( |
1638 Idx, IEC_Type = self._IECPathToIdx.get( |
1637 IECPath, (None, None)) |
1639 IECPath, (None, None)) |
1638 if Idx is not None: |
1640 if Idx is not None: |
1639 if IEC_Type in DebugTypesSize: |
1641 if IEC_Type in DebugTypesSize: |
1640 Idxs.append((Idx, IEC_Type, fvalue, IECPath)) |
1642 Idxs.append( |
|
1643 (Idx, IEC_Type, IECPath, |
|
1644 ValueToIECBytes(IEC_Type, fvalue))) |
1641 else: |
1645 else: |
1642 self.logger.write_warning( |
1646 self.logger.write_warning( |
1643 _("Debug: Unsupported type to debug '%s'\n") % IEC_Type) |
1647 _("Debug: Unsupported type to debug '%s'\n") % IEC_Type) |
1644 else: |
1648 else: |
1645 self.logger.write_warning( |
1649 self.logger.write_warning( |
1647 for IECPathToPop in IECPathsToPop: |
1651 for IECPathToPop in IECPathsToPop: |
1648 self.IECdebug_datas.pop(IECPathToPop) |
1652 self.IECdebug_datas.pop(IECPathToPop) |
1649 |
1653 |
1650 if Idxs: |
1654 if Idxs: |
1651 Idxs.sort() |
1655 Idxs.sort() |
1652 IdxsT = list(zip(*Idxs)) |
1656 Idxs, self.TracedIECTypes, self.TracedIECPath, Fvalues, = list(zip(*Idxs)) |
1653 self.TracedIECPath = IdxsT[3] |
1657 res = self._connector.SetTraceVariablesList(list(zip(Idxs, Fvalues))) |
1654 self.TracedIECTypes = IdxsT[1] |
|
1655 res = self._connector.SetTraceVariablesList(list(zip(*IdxsT[0:3]))) |
|
1656 if res is not None and res > 0: |
1658 if res is not None and res > 0: |
1657 self.DebugToken = res |
1659 self.DebugToken = res |
1658 else: |
1660 else: |
1659 self.DebugToken = None |
1661 self.DebugToken = None |
1660 self.logger.write_warning( |
1662 self.logger.write_warning( |