Source code for spinnman.messages.eieio.command_messages.spinnaker_request_buffers
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 SpinnakerRequestBuffers(EIEIOCommandMessage):
def __init__(self, x, y, p, region_id, sequence_no, space_available):
EIEIOCommandMessage.__init__(
self, EIEIOCommandHeader(
constants.EIEIO_COMMAND_IDS.SPINNAKER_REQUEST_BUFFERS.value))
self._x = x
self._y = y
self._p = p
self._region_id = region_id
self._sequence_no = sequence_no
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 12
@staticmethod
[docs] def read_eieio_command_message(command_header, byte_reader):
y = byte_reader.read_byte()
x = 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()
space = byte_reader.read_int()
return SpinnakerRequestBuffers(x, y, p, region_id, sequence_no, space)
[docs] def write_eieio_message(self, writer):
EIEIOCommandMessage.write_eieio_message(self, writer)
writer.write_byte(self._y)
writer.write_byte(self._x)
writer.write_byte(self._p << 3)
writer.write_byte(0)
writer.write_byte(self._region_id)
writer.write_byte(self._sequence_no)
writer.write_byte(self._space_available)