def __init__(self, transportName, config=None): self.ctr = 0 self.succeeded = True self.config = Configuration(MasterBaseType.PARAMETER_MAP or {}, config or {}) self.logger = logging.getLogger("pyXCP") self.logger.setLevel(self.config.get("LOGLEVEL")) self.transport = createTransport(transportName, config) # In some cases the transport-layer needs to communicate with us. self.transport.parent = self self.service = None # (D)Word (un-)packers are byte-order dependent # -- byte-order is returned by CONNECT_Resp (COMM_MODE_BASIC) self.WORD_pack = None self.WORD_unpack = None self.DWORD_pack = None self.DWORD_unpack = None self.AG_pack = None self.AG_unpack = None # self.connected = False self.mta = types.MtaType(None, None) self.currentDaqPtr = None self.currentProtectionStatus = None self._seedNKeyDLL = None
def setMta(self, address: int, addressExt: int = 0x00): """Set Memory Transfer Address in slave. Parameters ---------- address : int addressExt : int Note ---- The MTA is used by :meth:`buildChecksum`, :meth:`upload`, :meth:`download`, :meth:`downloadNext`, :meth:`downloadMax`, :meth:`modifyBits`, :meth:`programClear`, :meth:`program`, :meth:`programNext` and :meth:`programMax`. """ self.mta = types.MtaType(address, addressExt) # Keep track of MTA (needed for error-handling). addr = self.DWORD_pack(address) response = self.transport.request( types.Command.SET_MTA, 0, 0, addressExt, *addr) return response