def writeTXBufferData(self, data, offset=0): """ Writes data to the device's transmit buffer at the offset address. Args: data: Data to write to the Pozyx buffer. Has to be a ByteStructure derived object. Kwargs: offset: Offset in buffer to start writing data Returns: POZYX_SUCCESS, POZYX_FAILURE """ if offset + data.byte_size > MAX_BUF_SIZE: return POZYX_FAILURE # have to account for the parameter taking up a byte _MAX_SERIAL_SIZE = MAX_SERIAL_SIZE - 1 status = POZYX_SUCCESS data = Data(data.transform_to_bytes()) runs = int(data.byte_size / _MAX_SERIAL_SIZE) for i in range(runs): params = Data([i * _MAX_SERIAL_SIZE] + data[i * _MAX_SERIAL_SIZE:(i + 1) * _MAX_SERIAL_SIZE]) status &= self.regFunction(POZYX_TX_DATA, params, Data([])) params = Data([runs * _MAX_SERIAL_SIZE] + data[runs * _MAX_SERIAL_SIZE:]) return status & self.regFunction(POZYX_TX_DATA, params, Data([]))
def writeTXBufferData(self, data, offset=0): """Writes data to the device's transmit buffer at the offset address. Args: data: Data to write to the Pozyx buffer. Has to be a ByteStructure derived object. offset (optional): Offset in buffer to start writing data Returns: POZYX_SUCCESS, POZYX_FAILURE """ if not dataCheck(data): data = Data(data) if offset + data.byte_size > PozyxConstants.MAX_BUF_SIZE: return POZYX_FAILURE # have to account for the parameter taking up a byte _MAX_SERIAL_SIZE = PozyxConstants.MAX_SERIAL_SIZE - 1 status = POZYX_SUCCESS data = Data(data.transform_to_bytes()) runs = int(data.byte_size / _MAX_SERIAL_SIZE) for i in range(runs): status &= self.regFunction( PozyxRegisters.WRITE_TX_DATA, Data([offset + i * _MAX_SERIAL_SIZE] + data[i * _MAX_SERIAL_SIZE:(i + 1) * _MAX_SERIAL_SIZE]), Data([])) return status & self.regFunction( PozyxRegisters.WRITE_TX_DATA, Data([offset + runs * _MAX_SERIAL_SIZE] + data[runs * _MAX_SERIAL_SIZE:]), Data([]))