Source code for spinnman.messages.scp.scp_request_header
import struct
[docs]class SCPRequestHeader(object):
""" Represents the header of an SCP Request
Each optional parameter in the constructor can be set to a value other\
than None once, after which it is immutable. It is an error to set a\
parameter that is not currently None.
"""
def __init__(self, command, sequence=0):
"""
:param command: The SCP command
:type command: :py:class:`spinnman.messages.scp.scp_command.SCPCommand`
:param sequence: The number of the SCP packet in order of all packets\
sent or received, between 0 and 65535
:type sequence: int
:raise spinnman.exceptions.SpinnmanInvalidParameterException: If one\
of the parameters is incorrect
"""
self._command = command
self._sequence = sequence
@property
def command(self):
""" The command of the SCP packet
:return: The command
:rtype: :py:class:`spinnman.messages.scp.scp_command.SCPCommand`
"""
return self._command
@property
def sequence(self):
""" The sequence number of the SCP packet
:return: The sequence number of the packet, between 0 and 65535
:rtype: int
"""
return self._sequence
@sequence.setter
def sequence(self, sequence):
""" Set the sequence number of the SCP packet
:param sequence: The sequence number to set, between 0 and 65535
:type sequence: int
:return: Nothing is returned
:rtype: None
:raise spinnman.exceptions.SpinnmanInvalidParameterException: If the\
sequence is out of range, or if it has already been set
"""
self._sequence = sequence
@property
def bytestring(self):
""" The header as a bytestring
:return: The header as a bytestring
:rtype: str
"""
return struct.pack("<2H", self._command.value, self._sequence)