def shortDownload(self, address, addressExt, data): length = len(data) addr = self.DWORD_pack(address) addr_data = flatten(addr, data) response = self.transport.request(types.Command.SHORT_DOWNLOAD, length, 0, addressExt, *addr_data) return response
def setDaqListMode(self, mode, daqListNumber, eventChannelNumber, prescaler, priority): dln = self.WORD_pack(daqListNumber) ecn = self.WORD_pack(eventChannelNumber) response = self.transport.request( types.Command.SET_DAQ_LIST_MODE, mode, *flatten(dln, ecn, [prescaler, priority])) return response
def setDaqPtr(self, daqListNumber, odtNumber, odtEntryNumber): self.currentDaqPtr = types.DaqPtr( daqListNumber, odtNumber, odtEntryNumber) # Needed for errorhandling. daqList = self.WORD_pack(daqListNumber) response = self.transport.request( types.Command.SET_DAQ_PTR, 0, *flatten(daqList, [odtNumber, odtEntryNumber])) return response
def test_flatten1(): res = flatten([[1, 2, 3, 4], [5, 6, 7, 8]]) assert res == [1, 2, 3, 4, 5, 6, 7, 8]
def allocOdtEntry(self, daqListNumber, odtNumber, odtEntriesCount): dln = self.WORD_pack(daqListNumber) response = self.transport.request( types.Command.ALLOC_ODT_ENTRY, 0, *flatten(dln, [odtNumber, odtEntriesCount])) return response
def setDaqPtr(self, daqListNumber, odtNumber, odtEntryNumber): daqList = self.WORD_pack(daqListNumber) response = self.transport.request( types.Command.SET_DAQ_PTR, 0, *flatten(daqList, [odtNumber, odtEntryNumber])) return response
def modifyBits(self, shiftValue, andMask, xorMask): am = self.WORD_pack(andMask) xm = self.WORD_pack(xorMask) response = self.transport.request( types.Command.MODIFY_BITS, shiftValue, *flatten(am, xm)) return response
def allocOdtEntry(self, daqListNumber, odtNumber, odtEntriesCount): dln = struct.pack("<H", daqListNumber) response = self.transport.request(types.Command.ALLOC_ODT_ENTRY, 0, flatten(dln), odtNumber, odtEntriesCount) return response
def setDaqListMode(self, mode, daqListNumber, eventChannelNumber, prescaler, priority): dln = struct.pack("<H", daqListNumber) ecn = struct.pack("<H", eventChannelNumber) response = self.transport.request(types.Command.SET_DAQ_LIST_MODE, mode, flatten(dln, ecn), prescaler, priority) return response
def setDaqPtr(self, daqListNumber, odtNumber, odtEntryNumber): daqList = struct.pack("<H", daqListNumber) response = self.transport.request(types.Command.SET_DAQ_PTR, 0, flatten(daqList), odtNumber, odtEntryNumber) return response
def modifyBits(self, shiftValue, andMask, xorMask): # A = ( (A) & ((~((dword)(((word)~MA)<<S))) )^((dword)(MX<<S)) ) am = struct.pack("<H", andMask) xm = struct.pack("<H", xorMask) response = self.transport.request(types.Command.MODIFY_BITS, shiftValue, flatten(am, xm)) return response
def shortDownload(self, address, addressExt, *data): length = len(data) addr = struct.pack("<I", address) response = self.transport.request(types.Command.SHORT_DOWNLOAD, length, 0, addressExt, flatten(addr, data)) return response