spinnman.messages.scp.impl package¶
Submodules¶
spinnman.messages.scp.impl.count_state_response module¶
- class spinnman.messages.scp.impl.count_state_response.CountStateResponse[source]¶
Bases:
AbstractSCPResponse
An SCP response to a request for the number of cores in a given state.
spinnman.messages.scp.impl.get_chip_info_response module¶
- class spinnman.messages.scp.impl.get_chip_info_response.GetChipInfoResponse[source]¶
Bases:
AbstractSCPResponse
An SCP response to a request for the version of software running.
- property chip_info¶
The chip information received.
- Return type:
spinnman.messages.scp.impl.get_version_response module¶
- class spinnman.messages.scp.impl.get_version_response.GetVersionResponse[source]¶
Bases:
AbstractSCPResponse
An SCP response to a request for the version of software running.
- property version_info¶
The version information received.
- Return type:
spinnman.messages.scp.impl.iptag_get_info_response module¶
- class spinnman.messages.scp.impl.iptag_get_info_response.IPTagGetInfoResponse[source]¶
Bases:
AbstractSCPResponse
An SCP response to a request for information about IP tags.
Module contents¶
- class spinnman.messages.scp.impl.AppCopyRun(x, y, link, size, app_id, processors, chksum, wait=False)[source]¶
Bases:
AbstractSCPRequest
An SCP request to copy an application and start it.
- Parameters:
x (int) – The x-coordinate of the chip to read from, between 0 and 255
y (int) – The y-coordinate of the chip to read from, between 0 and 255
link (int) – The ID of the link from which to copy
size (int) – The number of bytes to read, must be divisible by 4
app_id (int) – The app to associate the copied binary with
processors (list(int)) – The processors to start on the chip
chksum (int) – The checksum of the data to copy
wait (bool) – Whether to start in wait mode or not
- class spinnman.messages.scp.impl.AppStop(app_id)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to stop an application.
- Parameters:
app_id (int) – The ID of the application, between 0 and 255
- class spinnman.messages.scp.impl.ApplicationRun(app_id, x, y, processors, wait=False)[source]¶
Bases:
AbstractSCPRequest
An SCP request to run an application loaded on a chip.
- Parameters:
app_id (int) – The ID of the application to run, between 16 and 255
x (int) – The x-coordinate of the chip to run on, between 0 and 255
y (int) – The y-coordinate of the chip to run on, between 0 and 255
processors (list(int)) – The processors on the chip where the executable should be started, between 1 and 17
wait (bool) – True if the processors should enter a “wait” state on starting
- class spinnman.messages.scp.impl.BMPGetVersion(board)[source]¶
Bases:
BMPRequest
An SCP request to read the version of software running on a core.
- Parameters:
board (int) – The board to get the version from
- Raises:
SpinnmanInvalidParameterException –
If the chip coordinates are out of range
If the processor is out of range
- class spinnman.messages.scp.impl.BMPSetLed(led, action, boards)[source]¶
Bases:
BMPRequest
Set the LED(s) of a board to either on, off or toggling.
This class is currently deprecated and untested as there is no known use except for Transceiver.set_led which is itself deprecated.
- Parameters:
led (int or list(int)) – Number of the LED or an iterable of LEDs to set the state of (0-7)
action (LEDAction) – State to set the LED to, either on, off or toggle
boards (int or list(int)) – Specifies the board to control the LEDs of. This may also be an iterable of multiple boards (in the same frame).
- class spinnman.messages.scp.impl.CheckOKResponse(operation, command)[source]¶
Bases:
AbstractSCPResponse
An SCP response to a request which returns nothing other than OK.
- Parameters:
- class spinnman.messages.scp.impl.CountState(app_id, state)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to get a count of the cores in a particular state.
- Parameters:
- class spinnman.messages.scp.impl.DoSync(do_sync)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to control synchronization.
- Parameters:
do_sync (bool) – Whether to synchronize or not
- class spinnman.messages.scp.impl.FillRequest(x, y, base_address, data, size)[source]¶
Bases:
AbstractSCPRequest
An SCP request to fill a region of memory on a chip with repeated data
- Parameters:
x (int) – The x-coordinate of the chip to read from, between 0 and 255
y (int) – The y-coordinate of the chip to read from, between 0 and 255
base_address (int) – The positive base address to start the fill from
data (int) – The data to fill in the space with
size (int) – The number of bytes to fill in
- class spinnman.messages.scp.impl.FixedRouteInit(x, y, entry, app_id)[source]¶
Bases:
AbstractSCPRequest
Sets a fixed route entry.
- Parameters:
x (int) – The x-coordinate of the chip, between 0 and 255, this is not checked due to speed restrictions
y (int) – The y-coordinate of the chip, between 0 and 255, this is not checked due to speed restrictions
entry (int) – the fixed route entry converted for writing
app_id (int) – The ID of the application with which to associate the routes. If not specified, defaults to 0.
- Raises:
SpinnmanInvalidParameterException –
If x is out of range
If y is out of range
- class spinnman.messages.scp.impl.FixedRouteRead(x, y, app_id)[source]¶
Bases:
AbstractSCPRequest
Gets a fixed route entry.
- Parameters:
x (int) – The x-coordinate of the chip, between 0 and 255, this is not checked due to speed restrictions
y (int) – The y-coordinate of the chip, between 0 and 255, this is not checked due to speed restrictions
app_id (int) – The ID of the application with which to associate the routes. If not specified, defaults to 0.
- Raises:
SpinnmanInvalidParameterException –
If x is out of range
If y is out of range
- class spinnman.messages.scp.impl.FloodFillData(nearest_neighbour_id, block_no, base_address, data, offset=0, length=None)[source]¶
Bases:
AbstractSCPRequest
A request to start a flood fill of data.
- Parameters:
- class spinnman.messages.scp.impl.FloodFillEnd(nearest_neighbour_id, app_id=0, processors=None, wait=False)[source]¶
Bases:
AbstractSCPRequest
A request to start a flood fill of data.
- Parameters:
nearest_neighbour_id (int) – The ID of the packet, between 0 and 127
app_id (int) – The application ID to start using the data, between 16 and 255. If not specified, no application is started
processors (list(int)) – A list of processors on which to start the application, each between 1 and 17. If not specified, no application is started.
wait (bool) – True if the binary should go into a “wait” state before executing
- class spinnman.messages.scp.impl.FloodFillStart(nearest_neighbour_id, n_blocks, x=None, y=None)[source]¶
Bases:
AbstractSCPRequest
A request to start a flood fill of data.
- Parameters:
nearest_neighbour_id (int) – The ID of the packet, between 0 and 127
n_blocks (int) – The number of blocks of data that will be sent, between 0 and 255
x (int) – The x-coordinate of the chip to load the data on to. If not specified, the data will be loaded on to all chips
y (int) – The y-coordinate of the chip to load the data on to. If not specified, the data will be loaded on to all chips
- class spinnman.messages.scp.impl.GetChipInfo(x, y, with_size=False)[source]¶
Bases:
AbstractSCPRequest
An SCP request to read the chip information from a core.
- Parameters:
- class spinnman.messages.scp.impl.GetVersion(x, y, p)[source]¶
Bases:
AbstractSCPRequest
An SCP request to read the version of software running on a core.
- Parameters:
- Raises:
SpinnmanInvalidParameterException –
If the chip coordinates are out of range
If the processor is out of range
- class spinnman.messages.scp.impl.IPTagClear(x, y, tag)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to clear an IP Tag.
- Parameters:
- class spinnman.messages.scp.impl.IPTagGet(x, y, tag)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to get an IP tag.
- Parameters:
- class spinnman.messages.scp.impl.IPTagGetInfo(x, y)[source]¶
Bases:
AbstractSCPRequest
An SCP Request information about IP tags.
- Parameters:
- class spinnman.messages.scp.impl.IPTagSet(x, y, host, port, tag, strip, use_sender=False)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to set an IP Tag.
- Parameters:
x (int) – The x-coordinate of a chip, between 0 and 255
y (int) – The y-coordinate of a chip, between 0 and 255
host (bytearray or list(int)) – The host address, as an array of 4 bytes
port (int) – The port, between 0 and 65535
tag (int) – The tag, between 0 and 7
strip (bool) – if the SDP header should be striped from the packet
use_sender (bool) – if the sender IP address and port should be used
- class spinnman.messages.scp.impl.IPTagSetTTO(x, y, tag_timeout)[source]¶
Bases:
AbstractSCPRequest
An SCP request to set the transient timeout for future SCP requests.
- Parameters:
x (int) – The x-coordinate of the chip to run on, between 0 and 255
y (int) – The y-coordinate of the chip to run on, between 0 and 255
tag_timeout (IPTAG_TIME_OUT_WAIT_TIMES) – The timeout value
- class spinnman.messages.scp.impl.ReadADC(board)[source]¶
Bases:
BMPRequest
SCP Request for the data from the BMP including voltages and temperature.
This class is currently deprecated and untested as there is no known use except for Transceiver.read_adc_data which is itself deprecated.
Note
The equivalent code in Java is not deprecated.
- Parameters:
board (int) – which board to request the ADC register from
- class spinnman.messages.scp.impl.ReadFPGARegister(fpga_num, register, board)[source]¶
Bases:
BMPRequest
Requests the data from a FPGA’s register.
Sets up a read FPGA register request.
- Parameters:
- class spinnman.messages.scp.impl.ReadLink(x, y, link, base_address, size, cpu=0)[source]¶
Bases:
AbstractSCPRequest
An SCP request to read a region of memory via a link on a chip.
- Parameters:
x (int) – The x-coordinate of the chip to read from, between 0 and 255
y (int) – The y-coordinate of the chip to read from, between 0 and 255
link (int) – The ID of the link down which to send the query
base_address (int) – The positive base address to start the read from
size (int) – The number of bytes to read, between 1 and 256
cpu (int) – The CPU core to use, normally 0 (or if a BMP, the board slot number)
- class spinnman.messages.scp.impl.ReadMemory(x, y, base_address, size, cpu=0)[source]¶
Bases:
AbstractSCPRequest
An SCP request to read a region of memory on a chip.
- Parameters:
- Raises:
SpinnmanInvalidParameterException –
If the chip coordinates are out of range
If the base address is not a positive number
If the size is out of range
- class spinnman.messages.scp.impl.ReverseIPTagSet(x, y, destination_x, destination_y, destination_p, port, tag, sdp_port)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to set an IP Tag.
- Parameters:
x (int) – The x-coordinate of a chip, between 0 and 255
y (int) – The y-coordinate of a chip, between 0 and 255
destination_x (int) – The x-coordinate of the destination chip, between 0 and 255
destination_y (int) – The y-coordinate of the destination chip, between 0 and 255
destination_p (int) – The ID of the destination processor, between 0 and 17
port (int) – The port, between 0 and 65535
tag (int) – The tag, between 0 and 7
- class spinnman.messages.scp.impl.RouterAlloc(x, y, app_id, n_entries)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to allocate space for routing entries.
- Parameters:
- class spinnman.messages.scp.impl.RouterClear(x, y)[source]¶
Bases:
AbstractSCPRequest
A request to clear the router on a chip.
- Parameters:
- Raises:
SpinnmanInvalidParameterException –
If x is out of range
If y is out of range
- class spinnman.messages.scp.impl.RouterInit(x, y, n_entries, table_address, base_address, app_id)[source]¶
Bases:
AbstractSCPRequest
A request to initialize the router on a chip.
- Parameters:
x (int) – The x-coordinate of the chip, between 0 and 255
y (int) – The y-coordinate of the chip, between 0 and 255
n_entries (int) – The number of entries in the table, more than 0
table_address (int) – The allocated table address
base_address (int) – The base_address containing the entries
app_id (int) – The ID of the application with which to associate the routes. If not specified, defaults to 0.
- Raises:
SpinnmanInvalidParameterException –
If x is out of range
If y is out of range
If n_entries is 0 or less
If table_address is not positive
If base_address is not positive
- class spinnman.messages.scp.impl.SDRAMAlloc(x, y, app_id, size, tag=None, retry_tag=True)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to allocate space in the SDRAM space.
- Parameters:
x (int) – The x-coordinate of the chip to allocate on, between 0 and 255
y (int) – The y-coordinate of the chip to allocate on, between 0 and 255
app_id (int) – The ID of the application, between 0 and 255
size (int) – The size in bytes of memory to be allocated
tag (int) – The tag for the SDRAM, a 8-bit (chip-wide) tag that can be looked up by a SpiNNaker application to discover the address of the allocated block. If 0 then no tag is applied.
retry_tag (bool) – If a tag is used, add a safety check to retry the tag. This can avoid issues with re-allocating memory on a retry message.
- class spinnman.messages.scp.impl.SDRAMDeAlloc(x, y, app_id, base_address=None)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to free space in the SDRAM.
- Parameters:
x (int) – The x-coordinate of the chip to allocate on, between 0 and 255
y (int) – The y-coordinate of the chip to allocate on, between 0 and 255
app_id (int) – The ID of the application, between 0 and 255
base_address (int or None) – The start address in SDRAM to which the block needs to be deallocated, or None if deallocating via app_id
- class spinnman.messages.scp.impl.SendSignal(app_id, signal)[source]¶
Bases:
AbstractSCPRequest
An SCP Request to send a signal to cores.
- Parameters:
- Raises:
SpinnmanInvalidParameterException – If app_id is out of range
- class spinnman.messages.scp.impl.SetLED(x, y, cpu, led_states)[source]¶
Bases:
AbstractSCPRequest
A request to change the state of an SetLED.
This class is currently deprecated and untested as there is no known use except for Transceiver.set_led which is itself deprecated.
- Parameters:
- class spinnman.messages.scp.impl.SetPower(power_command, boards, delay=0.0, board_to_send_to=0)[source]¶
Bases:
BMPRequest
An SCP request for the BMP to power on or power off a rack of boards.
Note
There is currently a bug in the BMP that means some boards don’t respond to power commands not sent to BMP 0. Thus changing the board_to_send_to parameter is not recommended!
- Parameters:
power_command (PowerCommand) – The power command being sent
boards (int or list(int)) – The boards on the same backplane to power on or off
delay (float) – Number of seconds delay between power state changes of the different boards.
board_to_send_to (int) –
The optional board to send the command to if this is to be sent to a frame of boards.
Note
Leave this at the default because of hardware bugs.
- class spinnman.messages.scp.impl.WriteFPGARegister(fpga_num, addr, value, board)[source]¶
Bases:
BMPRequest
A request for writing a word to a FPGA (SPI) register.
See the SpI/O project’s spinnaker_fpga design’s README for a listing of FPGA registers. The SpI/O project can be found on GitHub at: https://github.com/SpiNNakerManchester/spio/
- Parameters:
- class spinnman.messages.scp.impl.WriteLink(x, y, link, base_address, data, cpu=0)[source]¶
Bases:
AbstractSCPRequest
A request to write memory on a neighbouring chip.
- Parameters:
x (int) – The x-coordinate of the chip whose neighbour will be written to, between 0 and 255
y (int) – The y-coordinate of the chip whose neighbour will be written to, between 0 and 255
cpu (int) – The CPU core to use, normally 0 (or if a BMP, the board slot number)
link (int) – The link number to write to between 0 and 5 (or if a BMP, the FPGA between 0 and 2)
base_address (int) – The base_address to start writing to
data (bytes) – Up to 256 bytes of data to write
- class spinnman.messages.scp.impl.WriteMemory(x, y, base_address, data, cpu=0)[source]¶
Bases:
AbstractSCPRequest
A request to write memory on a chip.
- Parameters:
x (int) – The x-coordinate of the chip, between 0 and 255; this is not checked due to speed restrictions
y (int) – The y-coordinate of the chip, between 0 and 255; this is not checked due to speed restrictions
base_address (int) – The base_address to start writing to the base address is not checked to see if its not valid
data (bytearray or bytes) – between 1 and 256 bytes of data to write; this is not checked due to speed restrictions