Source code for spinnman.messages.eieio.command_messages.spinnaker_request_read_data

from spinnman.messages.eieio.command_messages.eieio_command_message\
    import EIEIOCommandMessage
from spinnman.messages.eieio.command_messages.eieio_command_header\
    import EIEIOCommandHeader
from spinnman import constants


[docs]class SpinnakerRequestReadData(EIEIOCommandMessage): def __init__(self, x, y, p, region_id, sequence_no, start_address, space_available): EIEIOCommandMessage.__init__( self, EIEIOCommandHeader( constants.EIEIO_COMMAND_IDS.SPINNAKER_REQUEST_READ_DATA.value)) self._x = x self._y = y self._p = p self._region_id = region_id self._sequence_no = sequence_no self._start_address = start_address self._space_available = space_available @property def x(self): return self._x @property def y(self): return self._y @property def p(self): return self._p @property def region_id(self): return self._region_id @property def sequence_no(self): return self._sequence_no @property def space_available(self): return self._space_available @staticmethod
[docs] def get_min_packet_length(): return 16
@staticmethod
[docs] def read_eieio_command_message(command_header, byte_reader): x = byte_reader.read_byte() y = byte_reader.read_byte() processor = byte_reader.read_byte() p = (processor >> 3) & 0x1F _ = byte_reader.read_byte() region_id = byte_reader.read_byte() & 0xF sequence_no = byte_reader.read_byte() start_address = byte_reader.read_int() space_available = byte_reader.read_int() return SpinnakerRequestReadData(x, y, p, region_id, sequence_no, start_address, space_available)
[docs] def write_eieio_message(self, writer): EIEIOCommandMessage.write_eieio_message(self, writer) writer.write_byte(self._x) writer.write_byte(self._y) writer.write_byte(self._p << 3) writer.write_byte(0) writer.write_byte(self._region_id) writer.write_byte(self._sequence_no) writer.write_int(self._start_address) writer.write_int(self._space_available)