Exemplo n.º 1
0
    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([]))
Exemplo n.º 2
0
    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([]))