Class Transceiver
- All Implemented Interfaces:
- Closeable,- AutoCloseable,- BMPTransceiverInterface,- RetryTracker,- TransceiverInterface
The methods of this class are designed to be thread-safe; thus you can make multiple calls to the same (or different) methods from multiple threads and expect each call to work as if it had been called sequentially, although the order of returns is not guaranteed. Note also that with multiple connections to the board, using multiple threads in this way may result in an increase in the overall speed of operation, since the multiple calls may be made separately over the set of given connections.
 For details of thread safety, see the methods annotated with
 ParallelSafe, ParallelSafeWithCare and ParallelUnsafe
 in TransceiverInterface. Note that operations on an individual
 BMP are always parallel-unsafe, other documentation in this
 class notwithstanding; BMPs must only ever have one outstanding call made to
 them as they do not handle asynchronous calls at all well due to known
 firmware bugs.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic final classA simple description of a connection to create.Nested classes/interfaces inherited from interface uk.ac.manchester.spinnaker.transceiver.BMPTransceiverInterfaceBMPTransceiverInterface.FPGAResetType
- 
Field SummaryFields inherited from interface uk.ac.manchester.spinnaker.transceiver.TransceiverInterfaceBOARD_BOOT_RETRIES, DEFAULT_CHECK_INTERVAL, DEFAULT_ERROR_STATES, DEFAULT_POLL_INTERVAL, LAUNCH_DELAY, TIMEOUT_DISABLED
- 
Constructor SummaryConstructorsConstructorDescriptionTransceiver(InetAddress hostname, MachineVersion version) Create a Transceiver by creating a UDPConnection to the given hostname on port 17893 (the default SCAMP port), and a BootConnection on port 54321 (the default boot port), discovering any additional links using the UDPConnection, and then returning the transceiver created with the conjunction of the created UDPConnection and the discovered connections.Transceiver(InetAddress host, MachineVersion version, Collection<BMPConnectionData> bmpConnectionData, Integer numberOfBoards, Set<ChipLocation> ignoredChips, Map<ChipLocation, Set<Integer>> ignoredCores, Map<ChipLocation, EnumSet<Direction>> ignoredLinks, boolean autodetectBMP, List<Transceiver.ConnectionDescriptor> scampConnections, Integer bootPortNumber, Integer maxSDRAMSize) Create a Transceiver by creating a UDPConnection to the given hostname on port 17893 (the default SCAMP port), and a BootConnection on port 54321 (the default boot port), optionally discovering any additional links using the UDPConnection, and then returning the transceiver created with the conjunction of the created UDPConnection and the discovered connections.Transceiver(MachineVersion version, Collection<Connection> connections) Create a transceiver.Transceiver(MachineVersion version, Collection<Connection> connections, Collection<ChipLocation> ignoredChips, Map<ChipLocation, Set<Integer>> ignoredCores, Map<ChipLocation, EnumSet<Direction>> ignoredLinks, Collection<Transceiver.ConnectionDescriptor> scampConnections, Integer maxSDRAMSize) Create a transceiver.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidaddConnection(Connection connection) Add a connection to the collection of general connections managed by this class.availableBoards(BMPCoords bmp) List which boards are actually available to be manipulated by a particular BMP.voidSet the default BMP coordinates, at least for cabinet and frame.voidbootBoard(Map<SystemVariableDefinition, Object> extraBootValues) Attempt to boot the board.protected voidcall(SCPRequest<EmptyResponse> request) Do a synchronous call of an SCP operation using the default connection for a request, sending the given message and completely processing the interaction.voidclearIobuf(CoreSubsets coreSubsets) Clear the contents of the IOBUF buffer for a collection of processors.voidclearIPTag(int tag, InetAddress boardAddress) Clear the setting of an IP tag.voidRemove all the multicast routes on a chip.voidclearReinjectionQueues(CoreSubsets monitorCores) Clear the packet reinjection queues in some monitor processes.voidclearReinjectionQueues(HasCoreLocation monitorCore) Clear the packet reinjection queues in a monitor process.voidclearRouterDiagnosticCounters(HasChipLocation chip, boolean enable, Iterable<Integer> counterIDs) Clear router diagnostic information on a chip.voidclose()Close the transceiver and any threads that are running.voidclose(boolean closeOriginalConnections, boolean powerOffMachine) Close the transceiver and any threads that are running.createScpConnection(ChipLocation chip, InetAddress addr) Create a connection to a particular instance of SCAMP.Find connections to the board and store these for future use.voidenableWatchDogTimerOnChip(HasChipLocation chip, boolean watchdog) Enable or disable the watch dog timer on a specific chip.ensureBoardIsReady(int numRetries, Map<SystemVariableDefinition, Object> extraBootValues) Ensure that the board is ready to interact with this version of the transceiver.final voidexecute(HasChipLocation chip, Collection<Integer> processors, File executable, AppID appID, boolean wait) Start an executable running on a single chip.voidexecute(HasChipLocation chip, Collection<Integer> processors, InputStream executable, int numBytes, AppID appID, boolean wait) Start an executable running on a single chip.voidexecute(HasChipLocation chip, Collection<Integer> processors, ByteBuffer executable, AppID appID, boolean wait) Start an executable running on a single chip.voidexecuteFlood(CoreSubsets coreSubsets, File executable, AppID appID, boolean wait) Start an executable running on multiple places on the board.voidexecuteFlood(CoreSubsets coreSubsets, InputStream executable, int numBytes, AppID appID, boolean wait) Start an executable running on multiple places on the board.voidexecuteFlood(CoreSubsets coreSubsets, ByteBuffer executable, AppID appID, boolean wait) Start an executable running on multiple places on the board.voidfillMemory(HasChipLocation chip, MemoryLocation baseAddress, int repeatValue, int size, FillDataType dataType) Fill some memory with repeated data.voidfreeSDRAM(HasChipLocation chip, MemoryLocation baseAddress) Free allocated SDRAM.intfreeSDRAM(HasChipLocation chip, AppID appID) Free all SDRAM allocated to a given application ID.protected <T,R extends PayloadedResponse<T, ?>> 
 Tget(SCPRequest<R> request) Do a synchronous call of an SCP operation using the default connection for a request, sending the given message and completely processing the interaction before returning its response.Get the currently known connections to the board, made up of those passed in to the transceiver and those that are discovered during calls todiscoverScampConnections().intgetCoreStateCount(AppID appID, CPUState state) Get a count of the number of cores which have a given state.getCPUInformation(CoreSubsets coreSubsets) Get information about some processors on the board.getHeap(HasChipLocation chip, SystemVariableDefinition heap) Get the contents of the given heap on a given chip.getIobuf(CoreSubsets coreSubsets) Get the contents of the IOBUF buffer for a collection of processors.Get the details of the machine made up of chips on a board and how they are connected to each other.Get the maximum chip x-coordinate and maximum chip y-coordinate of the chips in the machine.getMulticastRoutes(HasChipLocation chip, AppID appID) Get the current multicast routes set up on a chip.getReinjectionStatus(CoreSubsets monitorCores) Get the packet reinjection status of some monitor processes.getReinjectionStatus(HasCoreLocation monitorCore) Get the packet reinjection status of a monitor process.booleangetResetStatus(BMPCoords bmp, BMPBoard board) Get the FPGA reset status.getRouterDiagnosticFilter(HasChipLocation chip, int position) Gets a router diagnostic filter from a router.Get router diagnostic information from a chip.getScampVersion(HasChipLocation chip, ConnectionSelector<SCPConnection> connectionSelector) Get the version of SCAMP which is running on the board.getSerialFlashBuffer(BMPCoords bmp, BMPBoard board) Get the address of the serial flash buffer.getTags(SCPConnection connection) Get the current set of tags that have been set on the board.getTagUsage(SCPConnection connection) Get the number of times each tag has had a message sent via it for a connection.booleanisConnected(Connection connection) Determines if the board can be contacted.static booleanisScampVersionCompatible(Version version) Determine if the version of SCAMP is compatible with this transceiver.voidloadApplicationRouterTables(CoreSubsets monitorCores) Load the (previously saved) application's multicast router tables.voidloadFixedRoute(HasChipLocation chip, RoutingEntry fixedRoute, AppID appID) Loads a fixed route routing table entry onto a chip's router.voidloadMulticastRoutes(HasChipLocation chip, Collection<MulticastRoutingEntry> routes, AppID appID) Load a set of multicast routes on to a chip.voidloadSystemRouterTables(CoreSubsets monitorCores) Load the (previously configured) system multicast router tables.locateSpinnakerConnection(InetAddress boardAddress) Find a connection that matches the given board IP address.static TransceivermakeWithDescriptors(MachineVersion version, Collection<Transceiver.ConnectionDescriptor> scampConnections) Create a transceiver.mallocSDRAM(HasChipLocation chip, int size, AppID appID, int tag) Allocates a chunk of SDRAM on a chip on the machine.intPing a board.voidpower(PowerCommand powerCommand, BMPCoords bmp, Collection<BMPBoard> boards) Send a power request to the machine.voidPower off the whole machine.voidPower on the whole machine.readADCData(BMPCoords bmp, BMPBoard board) Read the ADC data.readBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int length) Read BMP memory.readBMPVersion(BMPCoords bmp, BMPBoard board) Read the BMP version.readBoardSerialNumber(BMPCoords bmp, BMPBoard board) Read the BMP serial number from a board.readFixedRoute(HasChipLocation chip, AppID appID) Reads a fixed route routing table entry from a chip's router.intreadFPGARegister(FPGA fpga, MemoryLocation register, BMPCoords bmp, BMPBoard board) Read a register on a FPGA of a board.readMemory(HasCoreLocation core, MemoryLocation baseAddress, int length) Read some areas of SDRAM (or System RAM) from the board.readNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, int length) Read some areas of memory on a neighbouring chip using a LINK_READ SCP command.voidreadRegion(BufferManagerStorage.Region region, BufferManagerStorage storage) Read an area associated with a recording region from SDRAM from a core of a chip on the board.readSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int length) Read BMP serial flash memory.intreadSerialFlashCRC(BMPCoords bmp, BMPBoard board, MemoryLocation address, int length) Read the CRC32 checksum of BMP serial flash memory.voidresetFPGA(BMPCoords bmp, BMPBoard board, BMPTransceiverInterface.FPGAResetType resetType) Reset the FPGAs on a board.voidresetReinjectionCounters(CoreSubsets monitorCores) Reset the packet reinjection counters of some monitor processes.voidresetReinjectionCounters(HasCoreLocation monitorCore) Reset the packet reinjection counters of a monitor process.voidresetRouting(Map<Integer, DiagnosticFilter> customFilters) Clear the router tables, reset diagnostic counters and put in optional custom filters.voidNote that a retry was required.voidsaveApplicationRouterTables(CoreSubsets monitorCores) Save the application's multicast router tables.voidsendSCPMessage(SCPRequest<?> message, SCPConnection connection) Sends an SCP message, without expecting a response.voidsendSDPMessage(SDPMessage message, SDPConnection connection) Sends an SDP message using one of the connections.voidsendSignal(AppID appID, Signal signal) Send a signal to an application.voidSet up an IP tag.voidsetIPTag(IPTag tag, SDPConnection connection) Set up an IP tag to deliver messages to a particular connection.voidsetLED(Collection<Integer> leds, LEDAction action, BMPCoords bmp, Collection<BMPBoard> board) Set the LED state of a board in the machine.voidsetLEDs(HasCoreLocation core, Map<Integer, LEDAction> ledStates) Set LED states.voidsetReinjectionEmergencyTimeout(CoreSubsets monitorCores, int timeoutMantissa, int timeoutExponent) Set the emergency packet reinjection timeout.voidsetReinjectionEmergencyTimeout(HasCoreLocation monitorCore, int timeoutMantissa, int timeoutExponent) Set the emergency packet reinjection timeout.voidsetReinjectionTimeout(CoreSubsets monitorCores, int timeoutMantissa, int timeoutExponent) Set the packet reinjection timeout.voidsetReinjectionTimeout(HasCoreLocation monitorCore, int timeoutMantissa, int timeoutExponent) Set the packet reinjection timeout.voidsetReinjectionTypes(CoreSubsets monitorCores, boolean multicast, boolean pointToPoint, boolean fixedRoute, boolean nearestNeighbour) Set what types of packets are to be reinjected.voidsetReinjectionTypes(HasCoreLocation monitorCore, boolean multicast, boolean pointToPoint, boolean fixedRoute, boolean nearestNeighbour) Set what types of packets are to be reinjected.voidSet up a reverse IP tag.voidsetRouterDiagnosticFilter(HasChipLocation chip, int position, DiagnosticFilter diagnosticFilter) Sets a router diagnostic filter in a router.voidsetWatchDogTimeoutOnChip(HasChipLocation chip, int watchdog) Set the value of the watch dog timer on a specific chip.voidstopApplication(AppID appID) Sends a stop request for an application ID.voidupdateProvenanceAndExit(CoreSubsets coreSubsets) Tell some running application cores to write their provenance data to a location where it can be read back, and then to go into theirFINISHEDstate.voidupdateRuntime(Integer runTimesteps, int currentTime, int syncTimesteps, CoreSubsets coreSubsets) Set the running time information for a collection of processors.voidwaitForCoresToBeInState(CoreSubsets allCoreSubsets, AppID appID, EnumSet<CPUState> cpuStates, Integer timeout, int timeBetweenPolls, EnumSet<CPUState> errorStates, int countBetweenFullChecks) Waits for the specified cores running the given application to be in some target state or states.voidwriteBMPFlash(BMPCoords bmp, BMPBoard board, MemoryLocation address) Write a fixed size chunk to flash memory of a BMP with erase.voidwriteBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, File file) Write BMP memory from a file.voidwriteBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, ByteBuffer data) Write BMP memory.voidwriteFlash(@Valid BMPCoords bmp, @Valid BMPBoard board, @NotNull MemoryLocation baseAddress, @NotNull ByteBuffer data) Write a buffer to flash memory on the BMP.voidwriteFPGARegister(FPGA fpga, MemoryLocation register, int value, BMPCoords bmp, BMPBoard board) Write a register on a FPGA of a board.voidwriteMemory(HasCoreLocation core, MemoryLocation baseAddress, File dataFile) Write to the SDRAM on the board.voidwriteMemory(HasCoreLocation core, MemoryLocation baseAddress, InputStream dataStream, int numBytes) Write to the SDRAM on the board.voidwriteMemory(HasCoreLocation core, MemoryLocation baseAddress, ByteBuffer data) Write to the SDRAM (or System RAM) on the board.voidwriteMemoryFlood(MemoryLocation baseAddress, File dataFile) Write to the SDRAM of all chips.voidwriteMemoryFlood(MemoryLocation baseAddress, InputStream dataStream, int numBytes) Write to the SDRAM of all chips.voidwriteMemoryFlood(MemoryLocation baseAddress, ByteBuffer data) Write to the SDRAM of all chips.voidwriteNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, File dataFile) Write to the memory of a neighbouring chip using a LINK_WRITE SCP command.voidwriteNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, InputStream dataStream, int numBytes) Write to the memory of a neighbouring chip using a LINK_WRITE SCP command.voidwriteNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, ByteBuffer data) Write to the memory of a neighbouring chip using a LINK_WRITE SCP command.voidwriteSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int size, InputStream stream) Write BMP serial flash memory from a stream.voidwriteSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, File file) Write BMP serial flash memory from a file.voidwriteSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, ByteBuffer data) Write BMP serial flash memory.Methods inherited from class uk.ac.manchester.spinnaker.transceiver.UDPTransceivernewEieioConnection, registerEIEIOListener, registerEIEIOListener, registerEIEIOListenerMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface uk.ac.manchester.spinnaker.transceiver.BMPTransceiverInterfaceavailableBoards, getResetStatus, getSerialFlashBuffer, powerOff, powerOff, powerOn, powerOn, readADCData, readBlacklist, readBlacklist, readBMPFirmwareDescriptor, readBMPFirmwareDescriptor, readBMPMemory, readBMPMemoryWord, readBMPMemoryWord, readBMPVersion, readBMPVersion, readBMPVersion, readBoardSerialNumber, readFPGALinkCounter, readFPGALinkCounter, readFPGALinkCounter, readFPGALinkCounter, readFPGARegister, readFPGARegister, readFPGARegister, readFPGARegister, readFPGARegister, readSerialFlash, readSerialFlashCRC, resetFPGA, setLED, writeBlacklist, writeBlacklist, writeBMPFlash, writeBMPMemory, writeBMPMemory, writeBMPMemory, writeBMPMemory, writeFlash, writeFPGARegister, writeFPGARegister, writeFPGARegister, writeFPGARegister, writeFPGARegister, writeSerialFlash, writeSerialFlash, writeSerialFlashMethods inherited from interface uk.ac.manchester.spinnaker.transceiver.TransceiverInterfacebootBoard, clearIobuf, clearIobuf, clearIPTag, clearIPTag, clearRouterDiagnosticCounters, clearRouterDiagnosticCounters, clearRouterDiagnosticCounters, enableWatchDogTimer, ensureBoardIsReady, ensureBoardIsReady, ensureBoardIsReady, execute, execute, execute, execute, execute, execute, execute, execute, execute, executeApplication, executeFlood, executeFlood, executeFlood, fillMemory, getCoresInState, getCoresInState, getCoresNotInState, getCoresNotInState, getCPUInformation, getCPUInformation, getFullChipInformation, getHeap, getIobuf, getIobuf, getMulticastRoutes, getScampVersion, getScampVersion, getScampVersion, getTags, getTagUsage, getUser0RegisterAddress, getUser0RegisterAddress, getUser0RegisterAddress, getUser1RegisterAddress, getUser1RegisterAddress, getUser1RegisterAddress, getUser2RegisterAddress, getUser2RegisterAddress, getUser2RegisterAddress, isConnected, loadFixedRoute, loadMulticastRoutes, mallocSDRAM, mallocSDRAM, readFixedRoute, readMemory, readMemory, readNeighbourMemory, readUser0, readUser1, readUser2, sendSDPMessage, setLEDs, setReinjection, setReinjection, setReinjection, setReinjection, setReinjectionEmergencyTimeout, setReinjectionEmergencyTimeout, setReinjectionEmergencyTimeout, setReinjectionTimeout, setReinjectionTimeout, setReinjectionTimeout, setWatchDogTimeout, updateProvenanceAndExit, updateProvenanceAndExit, updateRuntime, updateRuntime, waitForCoresToBeInState, writeMemory, writeMemory, writeMemory, writeMemory, writeMemory, writeMemory, writeMemory, writeMemoryFlood, writeMemoryFlood, writeNeighbourMemory, writeNeighbourMemory, writeNeighbourMemory, writeNeighbourMemory, writeNeighbourMemory, writeNeighbourMemory, writeNeighbourMemory, writeUser0, writeUser0, writeUser1, writeUser1, writeUser2, writeUser2
- 
Constructor Details- 
Transceiver@MustBeClosed public Transceiver(InetAddress host, MachineVersion version, Collection<BMPConnectionData> bmpConnectionData, Integer numberOfBoards, Set<ChipLocation> ignoredChips, Map<ChipLocation, Set<Integer>> ignoredCores, Map<ChipLocation, throws IOException, SpinnmanException, InterruptedExceptionEnumSet<Direction>> ignoredLinks, boolean autodetectBMP, List<Transceiver.ConnectionDescriptor> scampConnections, Integer bootPortNumber, Integer maxSDRAMSize) Create a Transceiver by creating a UDPConnection to the given hostname on port 17893 (the default SCAMP port), and a BootConnection on port 54321 (the default boot port), optionally discovering any additional links using the UDPConnection, and then returning the transceiver created with the conjunction of the created UDPConnection and the discovered connections.- Parameters:
- host- The host IP address of the board
- version- The type of SpiNNaker board used within the SpiNNaker machine being used. May be- nullif the board in question can be assumed to be always already booted.
- numberOfBoards- a number of boards expected to be supported, or- null, which defaults to a single board
- ignoredChips- An optional set of chips to ignore in the machine. Requests for a "machine" will have these chips excluded, as if they never existed. The processors of the specified chips are ignored.
- ignoredCores- An optional map of cores to ignore in the machine. Requests for a "machine" will have these cores excluded, as if they never existed.
- ignoredLinks- An optional set of links to ignore in the machine. Requests for a "machine" will have these links excluded, as if they never existed.
- bmpConnectionData- the details of the BMP connections used to boot multi-board systems
- autodetectBMP- True if the BMP of version 4 or 5 boards should be automatically determined from the board IP address
- bootPortNumber- the port number used to boot the machine
- scampConnections- the list of connections used for SCAMP communications
- maxSDRAMSize- the max size each chip can say it has for SDRAM (mainly used in debugging purposes)
- Throws:
- IOException- if networking fails
- SpinnmanException- If a BMP is uncontactable or SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
Transceiver@MustBeClosed public Transceiver(InetAddress hostname, MachineVersion version) throws IOException, SpinnmanException, InterruptedException Create a Transceiver by creating a UDPConnection to the given hostname on port 17893 (the default SCAMP port), and a BootConnection on port 54321 (the default boot port), discovering any additional links using the UDPConnection, and then returning the transceiver created with the conjunction of the created UDPConnection and the discovered connections.- Parameters:
- hostname- The hostname or IP address of the board
- version- The type of SpiNNaker board used within the SpiNNaker machine being used. May be- nullif the board in question can be assumed to be always already booted.
- Throws:
- IOException- if networking fails
- SpinnmanException- If a BMP is uncontactable or SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
Transceiver@MustBeClosed public Transceiver(MachineVersion version, Collection<Connection> connections) throws IOException, SpinnmanException, InterruptedException Create a transceiver.- Parameters:
- version- The type of SpiNNaker board used within the SpiNNaker machine being used. May be- nullif the board in question can be assumed to be always already booted.
- connections- The connections to use in the transceiver. Note that the transceiver may make additional connections.
- Throws:
- IOException- if networking fails
- SpinnmanException- If a BMP is uncontactable or SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
Transceiverpublic Transceiver(MachineVersion version, Collection<Connection> connections, Collection<ChipLocation> ignoredChips, Map<ChipLocation, Set<Integer>> ignoredCores, Map<ChipLocation, throws IOException, SpinnmanException, InterruptedExceptionEnumSet<Direction>> ignoredLinks, Collection<Transceiver.ConnectionDescriptor> scampConnections, Integer maxSDRAMSize) Create a transceiver.- Parameters:
- version- The type of SpiNNaker board used within the SpiNNaker machine being used. May be- nullif the board in question can be assumed to be always already booted.
- connections- The connections to use in the transceiver. Note that the transceiver may make additional connections. This should be modifiable (or- null) if- scampConnectionssupplied and not empty.
- ignoredChips- Blacklisted chips.
- ignoredCores- Blacklisted cores.
- ignoredLinks- Blacklisted links.
- scampConnections- Descriptions of SCP connections to create.
- maxSDRAMSize- If not- null, the maximum SDRAM size to allow.
- Throws:
- IOException- if networking fails
- SpinnmanException- If a BMP is uncontactable or SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
 
- 
- 
Method Details- 
makeWithDescriptors@MustBeClosed public static Transceiver makeWithDescriptors(MachineVersion version, Collection<Transceiver.ConnectionDescriptor> scampConnections) throws IOException, SpinnmanException, InterruptedException Create a transceiver.- Parameters:
- version- The type of SpiNNaker board used within the SpiNNaker machine being used. May be- nullif the board in question can be assumed to be always already booted.
- scampConnections- Descriptions of SCP Connections to make.
- Returns:
- The created transceiver.
- Throws:
- IOException- if networking fails
- SpinnmanException- If a BMP is uncontactable or SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
createScpConnectionDescription copied from interface:TransceiverInterfaceCreate a connection to a particular instance of SCAMP. Note that this connection is a new connection; it is not a previously existing connection.- Specified by:
- createScpConnectionin interface- TransceiverInterface
- Parameters:
- chip- The location of the chip on the board with this remoteHost
- addr- The IP address of the SpiNNaker board to send messages to.
- Returns:
- The SCP connection to use. It is up to the caller to arrange for this to be closed at the right time.
- Throws:
- IOException- If anything goes wrong with socket setup.
 
- 
getScampConnectionSelector- Specified by:
- getScampConnectionSelectorin interface- TransceiverInterface
- Returns:
- The connection selector to use for SCP messages.
 
- 
retryNeededpublic void retryNeeded()Description copied from interface:RetryTrackerNote that a retry was required.- Specified by:
- retryNeededin interface- RetryTracker
 
- 
sendSCPMessageDescription copied from interface:TransceiverInterfaceSends an SCP message, without expecting a response.- Specified by:
- sendSCPMessagein interface- TransceiverInterface
- Parameters:
- message- The message to send
- connection- The connection to use (omit to pick a random one)
- Throws:
- IOException- If anything goes wrong with networking.
 
- 
sendSDPMessageDescription copied from interface:TransceiverInterfaceSends an SDP message using one of the connections.- Specified by:
- sendSDPMessagein interface- TransceiverInterface
- Parameters:
- message- The message to send
- connection- An optional connection to use
- Throws:
- IOException- If anything goes wrong with networking.
 
- 
discoverScampConnections@CheckReturnValue public List<SCPConnection> discoverScampConnections() throws IOException, ProcessException, InterruptedExceptionFind connections to the board and store these for future use. Note that connections can be empty, in which case another local discovery mechanism will be used. Note that an exception will be thrown if no initial connections can be found to the board.- Returns:
- An iterable of discovered connections, not including the initially given connections in the constructor
- Throws:
- IOException- if networking fails
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getConnectionsGet the currently known connections to the board, made up of those passed in to the transceiver and those that are discovered during calls todiscoverScampConnections(). No further discovery is done here.- Returns:
- The connections known to the transceiver
 
- 
getMachineDimensionspublic MachineDimensions getMachineDimensions() throws IOException, ProcessException, InterruptedExceptionDescription copied from interface:TransceiverInterfaceGet the maximum chip x-coordinate and maximum chip y-coordinate of the chips in the machine.WARNING! This operation is unsafe in a multi-threaded context unless previously called from a parallel-safe situation. - Specified by:
- getMachineDimensionsin interface- TransceiverInterface
- Returns:
- The dimensions of the machine
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getMachineDetailsDescription copied from interface:TransceiverInterfaceGet the details of the machine made up of chips on a board and how they are connected to each other.WARNING! This operation is unsafe in a multi-threaded context unless previously called from a parallel-safe situation. - Specified by:
- getMachineDetailsin interface- TransceiverInterface
- Returns:
- A machine description
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getAppIdTracker- Returns:
- the application ID tracker for this transceiver.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
isConnectedDescription copied from interface:TransceiverInterfaceDetermines if the board can be contacted.- Specified by:
- isConnectedin interface- TransceiverInterface
- Parameters:
- connection- The connection which is to be tested. If- null, all connections will be tested, and the board will be considered to be connected if any one connection works.
- Returns:
- True if the board can be contacted, False otherwise
 
- 
getScampVersion@CheckReturnValue public VersionInfo getScampVersion(HasChipLocation chip, ConnectionSelector<SCPConnection> connectionSelector) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the version of SCAMP which is running on the board.- Specified by:
- getScampVersionin interface- TransceiverInterface
- Parameters:
- chip- the coordinates of the chip to query for SCAMP version
- connectionSelector- the connection to send the SCAMP version or none (if none then a random SCAMP connection is used).
- Returns:
- The version identifier
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
bootBoard@ParallelUnsafe public void bootBoard(Map<SystemVariableDefinition, Object> extraBootValues) throws InterruptedException, IOExceptionDescription copied from interface:TransceiverInterfaceAttempt to boot the board. No check is performed to see if the board is already booted.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- bootBoardin interface- TransceiverInterface
- Parameters:
- extraBootValues- extra values to set during boot
- Throws:
- InterruptedException- If the thread is interrupted while waiting.
- IOException- If anything goes wrong with networking.
 
- 
isScampVersionCompatibleDetermine if the version of SCAMP is compatible with this transceiver.- Parameters:
- version- The version to test
- Returns:
- true exactly when they are compatible
 
- 
callprotected void call(SCPRequest<EmptyResponse> request) throws ProcessException, IOException, InterruptedException Do a synchronous call of an SCP operation using the default connection for a request, sending the given message and completely processing the interaction. There is no payload in the response, and no result from this method. This can only properly handle those calls that involve a single request and a single reply; fortunately, that's many of them!- Parameters:
- request- The request to make.
- Throws:
- ProcessException- If SpiNNaker rejects a request.
- IOException- If anything fails with networking.
- InterruptedException- If the communications were interrupted.
 
- 
getprotected <T,R extends PayloadedResponse<T, T get?>> (SCPRequest<R> request) throws ProcessException, IOException, InterruptedException Do a synchronous call of an SCP operation using the default connection for a request, sending the given message and completely processing the interaction before returning its response. This can only properly handle those calls that involve a single request and a single reply; fortunately, that's many of them!- Type Parameters:
- T- The type of the payload.
- R- The type of the response that the payload is extracted from.
- Parameters:
- request- The request to make.
- Returns:
- The successful response to the request.
- Throws:
- ProcessException- If SpiNNaker rejects a request.
- IOException- If anything fails with networking.
- InterruptedException- If the communications were interrupted.
 
- 
ensureBoardIsReady@ParallelUnsafe public VersionInfo ensureBoardIsReady(int numRetries, Map<SystemVariableDefinition, Object> extraBootValues) throws IOException, ProcessException, InterruptedExceptionDescription copied from interface:TransceiverInterfaceEnsure that the board is ready to interact with this version of the transceiver. Boots the board if not already booted and verifies that the version of SCAMP running is compatible with this transceiver.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- ensureBoardIsReadyin interface- TransceiverInterface
- Parameters:
- numRetries- The number of times to retry booting
- extraBootValues- Any additional values to set during boot
- Returns:
- The version identifier
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
getCPUInformation@CheckReturnValue @ParallelSafeWithCare public MappableIterable<CPUInfo> getCPUInformation(CoreSubsets coreSubsets) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet information about some processors on the board.WARNING! This operation is unsafe in a multi-threaded context unless the coreSubsetsonly contains cores on a single board.- Specified by:
- getCPUInformationin interface- TransceiverInterface
- Parameters:
- coreSubsets- A set of chips and cores from which to get the information. If- null, the information from all of the cores on all of the chips on the board are obtained.
- Returns:
- An iterable of the CPU information for the selected cores, or all
         cores if coreSubsetsisnull.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getIobuf@CheckReturnValue @ParallelSafeWithCare public MappableIterable<IOBuffer> getIobuf(CoreSubsets coreSubsets) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the contents of the IOBUF buffer for a collection of processors.- Specified by:
- getIobufin interface- TransceiverInterface
- Parameters:
- coreSubsets- A set of chips and cores from which to get the buffers.
- Returns:
- An iterable of the buffers, which may not be in the order of
         coreSubsets
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearIobuf@ParallelSafeWithCare public void clearIobuf(CoreSubsets coreSubsets) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceClear the contents of the IOBUF buffer for a collection of processors.- Specified by:
- clearIobufin interface- TransceiverInterface
- Parameters:
- coreSubsets- A set of chips and cores on which to clear the buffers.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
updateRuntime@ParallelSafeWithCare public void updateRuntime(Integer runTimesteps, int currentTime, int syncTimesteps, CoreSubsets coreSubsets) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the running time information for a collection of processors.- Specified by:
- updateRuntimein interface- TransceiverInterface
- Parameters:
- runTimesteps- How many machine timesteps will the run last.- nullis used to indicate an infinite (unbounded until explicitly stopped) run.
- currentTime- The current simulation time.
- syncTimesteps- The number of timesteps before we pause to synchronise.
- coreSubsets- A set of chips and cores on which to set the running time.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
updateProvenanceAndExit@ParallelSafeWithCare public void updateProvenanceAndExit(CoreSubsets coreSubsets) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceTell some running application cores to write their provenance data to a location where it can be read back, and then to go into theirFINISHEDstate.- Specified by:
- updateProvenanceAndExitin interface- TransceiverInterface
- Parameters:
- coreSubsets- A set of cores tell to finish.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setWatchDogTimeoutOnChip@ParallelSafe public void setWatchDogTimeoutOnChip(HasChipLocation chip, int watchdog) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the value of the watch dog timer on a specific chip.- Specified by:
- setWatchDogTimeoutOnChipin interface- TransceiverInterface
- Parameters:
- chip- coordinates of the chip to write new watchdog parameter to
- watchdog- value to set the timer count to
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
enableWatchDogTimerOnChip@ParallelSafe public void enableWatchDogTimerOnChip(HasChipLocation chip, boolean watchdog) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceEnable or disable the watch dog timer on a specific chip.- Specified by:
- enableWatchDogTimerOnChipin interface- TransceiverInterface
- Parameters:
- chip- coordinates of the chip to write new watchdog parameter to
- watchdog- whether to enable (True) or disable (False) the watchdog timer
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getCoreStateCount@CheckReturnValue @ParallelUnsafe public int getCoreStateCount(AppID appID, CPUState state) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet a count of the number of cores which have a given state.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- getCoreStateCountin interface- TransceiverInterface
- Parameters:
- appID- The ID of the application from which to get the count.
- state- The state count to get
- Returns:
- A count of the cores with the given status
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
execute@ParallelSafe public void execute(HasChipLocation chip, Collection<Integer> processors, InputStream executable, int numBytes, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on a single chip.- Specified by:
- executein interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip on which to run the executable
- processors- The cores on the chip on which to run the application
- executable- The data that is to be executed.
- numBytes- The number of bytes to read from the input stream.
- appID- The ID of the application with which to associate the executable
- wait- True if the binary should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking or with reading from the input stream.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
execute@ParallelSafe public final void execute(HasChipLocation chip, Collection<Integer> processors, File executable, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on a single chip.- Specified by:
- executein interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip on which to run the executable
- processors- The cores on the chip on which to run the application
- executable- The data that is to be executed.
- appID- The ID of the application with which to associate the executable
- wait- True if the binary should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking or with reading from the file.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
execute@ParallelSafe public void execute(HasChipLocation chip, Collection<Integer> processors, ByteBuffer executable, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on a single chip.- Specified by:
- executein interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip on which to run the executable
- processors- The cores on the chip on which to run the application
- executable- The data that is to be executed.
- appID- The ID of the application with which to associate the executable
- wait- True if the binary should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
executeFlood@ParallelSafeWithCare public void executeFlood(CoreSubsets coreSubsets, InputStream executable, int numBytes, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on multiple places on the board. This will be optimised based on the selected cores, but it may still require a number of communications with the board to execute.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- executeFloodin interface- TransceiverInterface
- Parameters:
- coreSubsets- Which cores on which chips to start the executable
- executable- The data that is to be executed.
- numBytes- The size of the executable data in bytes.
- appID- The ID of the application with which to associate the executable
- wait- True if the processors should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking or with reading from the input stream.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
executeFlood@ParallelSafeWithCare public void executeFlood(CoreSubsets coreSubsets, File executable, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on multiple places on the board. This will be optimised based on the selected cores, but it may still require a number of communications with the board to execute.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- executeFloodin interface- TransceiverInterface
- Parameters:
- coreSubsets- Which cores on which chips to start the executable
- executable- The data that is to be executed.
- appID- The ID of the application with which to associate the executable
- wait- True if the processors should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking or with reading from the file.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
executeFlood@ParallelSafeWithCare public void executeFlood(CoreSubsets coreSubsets, ByteBuffer executable, AppID appID, boolean wait) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceStart an executable running on multiple places on the board. This will be optimised based on the selected cores, but it may still require a number of communications with the board to execute.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- executeFloodin interface- TransceiverInterface
- Parameters:
- coreSubsets- Which cores on which chips to start the executable
- executable- The data that is to be executed.
- appID- The ID of the application with which to associate the executable
- wait- True if the processors should enter a "wait" state on loading
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the thread is interrupted while waiting.
 
- 
powerOnMachine@ParallelUnsafe public void powerOnMachine() throws InterruptedException, IOException, ProcessExceptionDescription copied from interface:BMPTransceiverInterfacePower on the whole machine.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- powerOnMachinein interface- BMPTransceiverInterface
- Throws:
- InterruptedException- If the thread is interrupted while waiting.
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
 
- 
powerOffMachine@ParallelUnsafe public void powerOffMachine() throws InterruptedException, IOException, ProcessExceptionDescription copied from interface:BMPTransceiverInterfacePower off the whole machine.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- powerOffMachinein interface- BMPTransceiverInterface
- Throws:
- InterruptedException- If the thread is interrupted while waiting.
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
 
- 
power@ParallelUnsafe public void power(PowerCommand powerCommand, BMPCoords bmp, Collection<BMPBoard> boards) throws InterruptedException, IOException, ProcessException Description copied from interface:BMPTransceiverInterfaceSend a power request to the machine.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- powerin interface- BMPTransceiverInterface
- Parameters:
- powerCommand- The power command to send
- bmp- the coordinates of the BMP; components are zero for a board not in a frame of a cabinet
- boards- The boards to send the command to
- Throws:
- InterruptedException- If the thread is interrupted while waiting.
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
 
- 
setLED@ParallelUnsafe public void setLED(Collection<Integer> leds, LEDAction action, BMPCoords bmp, Collection<BMPBoard> board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceSet the LED state of a board in the machine.- Specified by:
- setLEDin interface- BMPTransceiverInterface
- Parameters:
- leds- Collection of LED numbers to set the state of (0-7)
- action- State to set the LED to, either on, off or toggle
- bmp- the coordinates of the BMP this is targeting
- board- Specifies the board to control the LEDs of. The command will actually be sent to the first board in the collection.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readFPGARegister@CheckReturnValue @ParallelUnsafe public int readFPGARegister(FPGA fpga, MemoryLocation register, BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead a register on a FPGA of a board. The meaning of the register's contents will depend on the FPGA's configuration.- Specified by:
- readFPGARegisterin interface- BMPTransceiverInterface
- Parameters:
- fpga- FPGA (0, 1 or 2) to communicate with.
- register- Register address to read to (will be rounded down to the nearest 32-bit word boundary).
- bmp- the coordinates of the BMP this is targeting
- board- which board to request the FPGA register from
- Returns:
- the register data
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeFPGARegister@ParallelUnsafe public void writeFPGARegister(FPGA fpga, MemoryLocation register, int value, BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite a register on a FPGA of a board. The meaning of setting the register's contents will depend on the FPGA's configuration.- Specified by:
- writeFPGARegisterin interface- BMPTransceiverInterface
- Parameters:
- fpga- FPGA (0, 1 or 2) to communicate with.
- register- Register address to read to (will be rounded down to the nearest 32-bit word boundary).
- value- the value to write into the FPGA register
- bmp- the coordinates of the BMP this is targeting
- board- which board to write the FPGA register to
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readADCData@CheckReturnValue @ParallelUnsafe public ADCInfo readADCData(BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead the ADC data.- Specified by:
- readADCDatain interface- BMPTransceiverInterface
- Parameters:
- bmp- the coordinates of the BMP this is targeting
- board- which board to request the ADC data from
- Returns:
- the FPGA's ADC data object
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readBMPVersion@CheckReturnValue @ParallelUnsafe public VersionInfo readBMPVersion(BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead the BMP version.- Specified by:
- readBMPVersionin interface- BMPTransceiverInterface
- Parameters:
- bmp- the coordinates of the BMP this is targeting
- board- which board to request the data from
- Returns:
- the parsed SVER from the BMP
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readBMPMemory@CheckReturnValue @ParallelSafeWithCare public ByteBuffer readBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int length) throws ProcessException, IOException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead BMP memory.- Specified by:
- readBMPMemoryin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we reading?
- baseAddress- The address in the BMP's memory where the region of memory to be read starts
- length- The length of the data to be read in bytes
- Returns:
- A little-endian buffer of data read, positioned at the start of the data. The buffer will be writable, but writes will not be automatically reflected anywhere.
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
writeBMPMemorypublic void writeBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, ByteBuffer data) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite BMP memory.- Specified by:
- writeBMPMemoryin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing?
- baseAddress- The address in the BMP's memory where the region of memory to be written starts
- data- The data to be written, extending from the position to the limit. The contents of this buffer will be unchanged.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeBMPMemorypublic void writeBMPMemory(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, File file) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite BMP memory from a file.- Specified by:
- writeBMPMemoryin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing?
- baseAddress- The address in the BMP's memory where the region of memory to be written starts
- file- The file containing the data to be written.
- Throws:
- IOException- If anything goes wrong with networking or file I/O.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getSerialFlashBufferpublic MemoryLocation getSerialFlashBuffer(BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceGet the address of the serial flash buffer.- Specified by:
- getSerialFlashBufferin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which BMP's buffer do we want the address of?
- Returns:
- The adress of the serial flash buffer.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readBoardSerialNumberpublic String readBoardSerialNumber(BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead the BMP serial number from a board.- Specified by:
- readBoardSerialNumberin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we sending messages to directly?
- board- Which board's BMP (of those managed by the BMP we send the message to) are we getting the serial number from?
- Returns:
- The LPC1768 serial number.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readSerialFlash@CheckReturnValue public ByteBuffer readSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int length) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead BMP serial flash memory.- Specified by:
- readSerialFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we reading?
- baseAddress- The address in the BMP's serial flash where the region of memory to be read starts
- length- The length of the data to be read in bytes
- Returns:
- A little-endian buffer of data read, positioned at the start of the data. The buffer will be writable, but writes will not be automatically reflected anywhere.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readSerialFlashCRC@CheckReturnValue public int readSerialFlashCRC(BMPCoords bmp, BMPBoard board, MemoryLocation address, int length) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceRead the CRC32 checksum of BMP serial flash memory.- Specified by:
- readSerialFlashCRCin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we reading?
- address- The address in the BMP's serial flash where the region of memory to be checksummed starts
- length- The length of the data to be checksummed in bytes
- Returns:
- The CRC32 checksum
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeSerialFlashpublic void writeSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, ByteBuffer data) throws ProcessException, IOException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite BMP serial flash memory.- Specified by:
- writeSerialFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing?
- baseAddress- The address in the BMP's serial flash where the region of memory to be written starts
- data- The raw data to be written
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
writeSerialFlashpublic void writeSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, int size, InputStream stream) throws ProcessException, IOException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite BMP serial flash memory from a stream.- Specified by:
- writeSerialFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing?
- baseAddress- The address in the BMP's serial flash where the region of memory to be written starts
- size- How many bytes to write from the stream
- stream- The file containing the data to be written
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
writeSerialFlashpublic void writeSerialFlash(BMPCoords bmp, BMPBoard board, MemoryLocation baseAddress, File file) throws ProcessException, IOException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite BMP serial flash memory from a file.- Specified by:
- writeSerialFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing?
- baseAddress- The address in the BMP's serial flash where the region of memory to be written starts
- file- The file containing the data to be written
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
writeBMPFlashpublic void writeBMPFlash(BMPCoords bmp, BMPBoard board, MemoryLocation address) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite a fixed size chunk to flash memory of a BMP with erase. The data must have already been written to the flash buffer.- Specified by:
- writeBMPFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing to?
- address- Where in flash will we write?
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
- See Also:
 
- 
writeFlashpublic void writeFlash(@Valid @Valid BMPCoords bmp, @Valid @Valid BMPBoard board, @NotNull @NotNull MemoryLocation baseAddress, @NotNull @NotNull ByteBuffer data) throws ProcessException, IOException, InterruptedException Description copied from interface:BMPTransceiverInterfaceWrite a buffer to flash memory on the BMP. This is a composite operation.- Specified by:
- writeFlashin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board's BMP are we writing to?
- baseAddress- Where in flash will we write?
- data- What data will we write?
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
getResetStatus@ParallelSafe public boolean getResetStatus(BMPCoords bmp, BMPBoard board) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceGet the FPGA reset status.- Specified by:
- getResetStatusin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board are the FPGAs on?
- Returns:
- What the state of the reset line is.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
resetFPGA@ParallelSafe public void resetFPGA(BMPCoords bmp, BMPBoard board, BMPTransceiverInterface.FPGAResetType resetType) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceReset the FPGAs on a board.- Specified by:
- resetFPGAin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we talking to?
- board- Which board are the FPGAs on?
- resetType- What kind of reset to perform.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
availableBoards@CheckReturnValue public MappableIterable<BMPBoard> availableBoards(BMPCoords bmp) throws IOException, ProcessException, InterruptedException Description copied from interface:BMPTransceiverInterfaceList which boards are actually available to be manipulated by a particular BMP.- Specified by:
- availableBoardsin interface- BMPTransceiverInterface
- Parameters:
- bmp- Which BMP are we asking?
- Returns:
- Ordered list of board identifiers.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemory@ParallelSafe public void writeMemory(HasCoreLocation core, MemoryLocation baseAddress, InputStream dataStream, int numBytes) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM on the board.- Specified by:
- writeMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core where the memory is that is to be written to
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataStream- The stream of data that is to be written.
- numBytes- The amount of data to be written in bytes.
- Throws:
- IOException- If anything goes wrong with networking or reading from the input stream.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemory@ParallelSafe public void writeMemory(HasCoreLocation core, MemoryLocation baseAddress, File dataFile) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM on the board.- Specified by:
- writeMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core where the memory is that is to be written to
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataFile- The file holding the data that is to be written.
- Throws:
- IOException- If anything goes wrong with networking or reading from the file.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemory@ParallelSafe public void writeMemory(HasCoreLocation core, MemoryLocation baseAddress, ByteBuffer data) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM (or System RAM) on the board.- Specified by:
- writeMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core where the memory is that is to be written to
- baseAddress- The address in SDRAM where the region of memory is to be written
- data- The data that is to be written. The data should be from the position to the limit.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeNeighbourMemory@ParallelUnsafe public void writeNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, InputStream dataStream, int numBytes) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the memory of a neighbouring chip using a LINK_WRITE SCP command. If sent to a BMP, this command can be used to communicate with the FPGAs' debug registers; in that case, the link must be the direction with the same ID as the ID of the FPGA to communicate with.WARNING! This operation is unsafe in a multi-threaded context if the link leaves the current board. - Specified by:
- writeNeighbourMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core whose neighbour is to be written to; the CPU to use is typically 0 (or if a BMP, the slot number)
- link- The link direction to send the request along
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataStream- The stream of data that is to be written.
- numBytes- The amount of data to be written in bytes.
- Throws:
- IOException- If anything goes wrong with networking or with reading from the input stream.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeNeighbourMemory@ParallelUnsafe public void writeNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, File dataFile) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the memory of a neighbouring chip using a LINK_WRITE SCP command. If sent to a BMP, this command can be used to communicate with the FPGAs' debug registers; in that case, the link must be the direction with the same ID as the ID of the FPGA to communicate with.WARNING! This operation is unsafe in a multi-threaded context if the link leaves the current board. - Specified by:
- writeNeighbourMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core whose neighbour is to be written to; the CPU to use is typically 0 (or if a BMP, the slot number)
- link- The link direction to send the request along
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataFile- The name of the file holding the data that is to be written.
- Throws:
- IOException- If anything goes wrong with networking or with reading from the file.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeNeighbourMemory@ParallelUnsafe public void writeNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, ByteBuffer data) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the memory of a neighbouring chip using a LINK_WRITE SCP command. If sent to a BMP, this command can be used to communicate with the FPGAs' debug registers; in that case, the link must be the direction with the same ID as the ID of the FPGA to communicate with.WARNING! This operation is unsafe in a multi-threaded context if the link leaves the current board. - Specified by:
- writeNeighbourMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core whose neighbour is to be written to; the CPU to use is typically 0 (or if a BMP, the slot number)
- link- The link direction to send the request along
- baseAddress- The address in SDRAM where the region of memory is to be written
- data- The data that is to be written. The data should be from the position to the limit.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemoryFlood@ParallelUnsafe public void writeMemoryFlood(MemoryLocation baseAddress, InputStream dataStream, int numBytes) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM of all chips.WARNING! This operation is unsafe in a multi-threaded context. It has interlocking, but you should not rely on it. - Specified by:
- writeMemoryFloodin interface- TransceiverInterface
- Parameters:
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataStream- The stream of data that is to be written.
- numBytes- The amount of data to be written in bytes.
- Throws:
- IOException- If anything goes wrong with networking or with reading from the input stream.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemoryFlood@ParallelUnsafe public void writeMemoryFlood(MemoryLocation baseAddress, File dataFile) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM of all chips.WARNING! This operation is unsafe in a multi-threaded context. It has interlocking, but you should not rely on it. - Specified by:
- writeMemoryFloodin interface- TransceiverInterface
- Parameters:
- baseAddress- The address in SDRAM where the region of memory is to be written
- dataFile- The name of the file holding the data that is to be written.
- Throws:
- IOException- If anything goes wrong with networking or with reading from the file.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
writeMemoryFlood@ParallelUnsafe public void writeMemoryFlood(MemoryLocation baseAddress, ByteBuffer data) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceWrite to the SDRAM of all chips.WARNING! This operation is unsafe in a multi-threaded context. It has interlocking, but you should not rely on it. - Specified by:
- writeMemoryFloodin interface- TransceiverInterface
- Parameters:
- baseAddress- The address in SDRAM where the region of memory is to be written
- data- The data that is to be written. The data should be from the position to the limit.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readMemory@CheckReturnValue @ParallelSafe public ByteBuffer readMemory(HasCoreLocation core, MemoryLocation baseAddress, int length) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceRead some areas of SDRAM (or System RAM) from the board.- Specified by:
- readMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core where the memory is to be read from
- baseAddress- The address in SDRAM where the region of memory to be read starts
- length- The length of the data to be read in bytes
- Returns:
- A little-endian buffer of data read, positioned at the start of the data
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readRegion@ParallelSafe public void readRegion(BufferManagerStorage.Region region, BufferManagerStorage storage) throws IOException, ProcessException, StorageException, InterruptedException Description copied from interface:TransceiverInterfaceRead an area associated with a recording region from SDRAM from a core of a chip on the board.- Specified by:
- readRegionin interface- TransceiverInterface
- Parameters:
- region- The recording region that is being read. Describes which core produced the data, what DSE index the data came from, and where in memory to actually read.
- storage- The database to write to.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- StorageException- If anything goes wrong with access to the database.
- InterruptedException- If the communications were interrupted.
 
- 
readNeighbourMemory@CheckReturnValue @ParallelUnsafe public ByteBuffer readNeighbourMemory(HasCoreLocation core, Direction link, MemoryLocation baseAddress, int length) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceRead some areas of memory on a neighbouring chip using a LINK_READ SCP command. If sent to a BMP, this command can be used to communicate with the FPGAs' debug registers; in that case, the link must be the direction with the same ID as the ID of the FPGA to communicate with.WARNING! This operation is unsafe in a multi-threaded context if the link leaves the current board. - Specified by:
- readNeighbourMemoryin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the chip whose neighbour is to be read from, plus the CPU to use (typically 0, or if a BMP, the slot number)
- link- The link direction to send the request along
- baseAddress- The address in SDRAM where the region of memory to be read starts
- length- The length of the data to be read in bytes
- Returns:
- A little-endian buffer of data that has been read, positioned at the start of the data
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
stopApplication@ParallelUnsafe public void stopApplication(AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSends a stop request for an application ID.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- stopApplicationin interface- TransceiverInterface
- Parameters:
- appID- The ID of the application to send to
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
waitForCoresToBeInState@ParallelSafeWithCare public void waitForCoresToBeInState(CoreSubsets allCoreSubsets, AppID appID, EnumSet<CPUState> cpuStates, Integer timeout, int timeBetweenPolls, EnumSet<CPUState> errorStates, int countBetweenFullChecks) throws IOException, InterruptedException, SpinnmanException Description copied from interface:TransceiverInterfaceWaits for the specified cores running the given application to be in some target state or states. Handles failures.WARNING! This operation is unsafe in a multi-threaded context if the cores are over more than a single board. - Specified by:
- waitForCoresToBeInStatein interface- TransceiverInterface
- Parameters:
- allCoreSubsets- the cores to check are in a given sync state
- appID- the application ID that being used by the simulation
- cpuStates- The expected states once the applications are ready; success is when each application is in one of these states
- timeout- The amount of time to wait in milliseconds for the cores to reach one of the states, or- nullto wait for an unbounded amount of time.
- timeBetweenPolls- Time between checking the state, in milliseconds
- errorStates- Set of states that the application can be in that indicate an error, and so should raise an exception
- countBetweenFullChecks- The number of times to use the count signal before instead using the full CPU state check
- Throws:
- IOException- If anything goes wrong with networking.
- InterruptedException- If the thread is interrupted while waiting.
- SpinnmanException- If some cores enter an error state or SpiNNaker rejects a message.
 
- 
sendSignal@ParallelUnsafe public void sendSignal(AppID appID, Signal signal) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSend a signal to an application.WARNING! This operation is unsafe in a multi-threaded context. - Specified by:
- sendSignalin interface- TransceiverInterface
- Parameters:
- appID- The ID of the application to send to
- signal- The signal to send
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setLEDs@ParallelSafe public void setLEDs(HasCoreLocation core, Map<Integer, LEDAction> ledStates) throws IOException, ProcessException, InterruptedExceptionDescription copied from interface:TransceiverInterfaceSet LED states.- Specified by:
- setLEDsin interface- TransceiverInterface
- Parameters:
- core- The coordinates of the core on which to set the LEDs
- ledStates- A map from LED index to state with 0 being off, 1 on and 2 inverted.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
locateSpinnakerConnectionDescription copied from interface:TransceiverInterfaceFind a connection that matches the given board IP address.- Specified by:
- locateSpinnakerConnectionin interface- TransceiverInterface
- Parameters:
- boardAddress- The IP address of the Ethernet connection on the board
- Returns:
- A connection for the given IP address, or nullif no such connection exists
 
- 
setIPTag@ParallelSafeWithCare public void setIPTag(IPTag tag) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet up an IP tag.- Specified by:
- setIPTagin interface- TransceiverInterface
- Parameters:
- tag- The tag to set up; note its board address can be- null, in which case, the tag will be assigned to all boards.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setIPTag@ParallelSafeWithCare public void setIPTag(IPTag tag, SDPConnection connection) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet up an IP tag to deliver messages to a particular connection.- Specified by:
- setIPTagin interface- TransceiverInterface
- Parameters:
- tag- The tag to set up.
- connection- The connection to deliver messages to, which must already be set up to talk to the correct board.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReverseIPTag@ParallelSafeWithCare public void setReverseIPTag(ReverseIPTag tag) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet up a reverse IP tag.- Specified by:
- setReverseIPTagin interface- TransceiverInterface
- Parameters:
- tag- The reverse tag to set up; note its board address can be- null, in which case, the tag will be assigned to all boards
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearIPTag@ParallelSafeWithCare public void clearIPTag(int tag, InetAddress boardAddress) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceClear the setting of an IP tag.- Specified by:
- clearIPTagin interface- TransceiverInterface
- Parameters:
- tag- The tag ID
- boardAddress- Board address where the tag should be cleared. If- null, all SCPSender connections will send the message to clear the tag
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getTags@CheckReturnValue @ParallelSafeWithCare public List<Tag> getTags(SCPConnection connection) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the current set of tags that have been set on the board.- Specified by:
- getTagsin interface- TransceiverInterface
- Parameters:
- connection- Connection from which the tags should be received.
- Returns:
- An iterable of tags
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getTagUsage@CheckReturnValue @ParallelSafeWithCare public Map<Tag,Integer> getTagUsage(SCPConnection connection) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the number of times each tag has had a message sent via it for a connection.- Specified by:
- getTagUsagein interface- TransceiverInterface
- Parameters:
- connection- Connection from which the tag usage should be retrieved.
- Returns:
- A map from the tags to their usage.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
mallocSDRAM@CheckReturnValue @ParallelSafe public MemoryLocation mallocSDRAM(HasChipLocation chip, int size, AppID appID, int tag) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceAllocates a chunk of SDRAM on a chip on the machine.- Specified by:
- mallocSDRAMin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip onto which to allocate memory
- size- The amount of memory to allocate in bytes
- appID- The ID of the application with which to associate the routes.
- tag- 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.
- Returns:
- the base address of the allocated memory
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
freeSDRAM@ParallelSafe public void freeSDRAM(HasChipLocation chip, MemoryLocation baseAddress) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceFree allocated SDRAM.- Specified by:
- freeSDRAMin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip onto which to free memory
- baseAddress- The base address of the allocated memory
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
freeSDRAM@ParallelSafe public int freeSDRAM(HasChipLocation chip, AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceFree all SDRAM allocated to a given application ID.- Specified by:
- freeSDRAMin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip onto which to free memory
- appID- The app ID of the owner of the allocated memory
- Returns:
- The number of blocks freed
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
loadMulticastRoutes@ParallelSafe public void loadMulticastRoutes(HasChipLocation chip, Collection<MulticastRoutingEntry> routes, AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceLoad a set of multicast routes on to a chip.- Specified by:
- loadMulticastRoutesin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip onto which to load the routes
- routes- An iterable of multicast routes to load
- appID- The ID of the application with which to associate the routes.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
loadFixedRoute@ParallelSafe public void loadFixedRoute(HasChipLocation chip, RoutingEntry fixedRoute, AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceLoads a fixed route routing table entry onto a chip's router.- Specified by:
- loadFixedRoutein interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip onto which to load the route
- fixedRoute- the route for the fixed route entry on this chip
- appID- The ID of the application with which to associate the route.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
readFixedRoute@CheckReturnValue @ParallelSafe public RoutingEntry readFixedRoute(HasChipLocation chip, AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceReads a fixed route routing table entry from a chip's router.- Specified by:
- readFixedRoutein interface- TransceiverInterface
- Parameters:
- chip- The coordinate of the chip from which to read the route.
- appID- The ID of the application associated the route.
- Returns:
- the route as a fixed route entry
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getMulticastRoutes@CheckReturnValue @ParallelSafe public List<MulticastRoutingEntry> getMulticastRoutes(HasChipLocation chip, AppID appID) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the current multicast routes set up on a chip.- Specified by:
- getMulticastRoutesin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip from which to get the routes
- appID- The ID of the application to filter the routes for.- nullmeans "don't filter".
- Returns:
- An iterable of multicast routes
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearMulticastRoutes@ParallelSafe public void clearMulticastRoutes(HasChipLocation chip) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceRemove all the multicast routes on a chip.- Specified by:
- clearMulticastRoutesin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip on which to clear the routes
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getRouterDiagnostics@CheckReturnValue @ParallelSafe public RouterDiagnostics getRouterDiagnostics(HasChipLocation chip) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet router diagnostic information from a chip.- Specified by:
- getRouterDiagnosticsin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip from which to get the information
- Returns:
- The router diagnostic information
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setRouterDiagnosticFilter@ParallelSafe public void setRouterDiagnosticFilter(HasChipLocation chip, int position, DiagnosticFilter diagnosticFilter) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSets a router diagnostic filter in a router.- Specified by:
- setRouterDiagnosticFilterin interface- TransceiverInterface
- Parameters:
- chip- the address of the router in which this filter is being set
- position- the position in the list of filters where this filter is to be added, between 0 and 15 (note that positions 0 to 11 are used by the default filters, and setting these positions will result in a warning).
- diagnosticFilter- the diagnostic filter being set in the position.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getRouterDiagnosticFilter@ParallelSafe public DiagnosticFilter getRouterDiagnosticFilter(HasChipLocation chip, int position) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGets a router diagnostic filter from a router.- Specified by:
- getRouterDiagnosticFilterin interface- TransceiverInterface
- Parameters:
- chip- the address of the router from which this filter is being retrieved
- position- the position in the list of filters where this filter is to be read from
- Returns:
- The diagnostic filter read
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearRouterDiagnosticCounters@ParallelSafe public void clearRouterDiagnosticCounters(HasChipLocation chip, boolean enable, Iterable<Integer> counterIDs) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceClear router diagnostic information on a chip.- Specified by:
- clearRouterDiagnosticCountersin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip
- enable- True (default) if the counters should be enabled
- counterIDs- The IDs of the counters to reset and enable if enable is True; each must be between 0 and 15
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearReinjectionQueues@ParallelSafe public void clearReinjectionQueues(HasCoreLocation monitorCore) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceClear the packet reinjection queues in a monitor process.- Specified by:
- clearReinjectionQueuesin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
clearReinjectionQueues@ParallelSafe public void clearReinjectionQueues(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceClear the packet reinjection queues in some monitor processes.- Specified by:
- clearReinjectionQueuesin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of the monitor cores.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getReinjectionStatus@ParallelSafe public ReinjectionStatus getReinjectionStatus(HasCoreLocation monitorCore) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the packet reinjection status of a monitor process.- Specified by:
- getReinjectionStatusin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- Returns:
- The reinjection status.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getReinjectionStatus@ParallelSafe public Map<CoreLocation,ReinjectionStatus> getReinjectionStatus(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the packet reinjection status of some monitor processes.- Specified by:
- getReinjectionStatusin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of the monitor cores.
- Returns:
- The reinjection statuses of the cores.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
resetReinjectionCounters@ParallelSafe public void resetReinjectionCounters(HasCoreLocation monitorCore) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceReset the packet reinjection counters of a monitor process.- Specified by:
- resetReinjectionCountersin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
resetReinjectionCounters@ParallelSafeWithCare public void resetReinjectionCounters(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceReset the packet reinjection counters of some monitor processes.- Specified by:
- resetReinjectionCountersin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of the monitor cores.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionTypes@ParallelSafe public void setReinjectionTypes(HasCoreLocation monitorCore, boolean multicast, boolean pointToPoint, boolean fixedRoute, boolean nearestNeighbour) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet what types of packets are to be reinjected.- Specified by:
- setReinjectionTypesin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- multicast- True if multicast packets are to be reinjected.
- pointToPoint- True if point-to-point packets are to be reinjected.
- fixedRoute- True if fixed-route packets are to be reinjected.
- nearestNeighbour- True if nearest-neighbour packets are to be reinjected.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionTypes@ParallelSafeWithCare public void setReinjectionTypes(CoreSubsets monitorCores, boolean multicast, boolean pointToPoint, boolean fixedRoute, boolean nearestNeighbour) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet what types of packets are to be reinjected.- Specified by:
- setReinjectionTypesin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores.
- multicast- True if multicast packets are to be reinjected.
- pointToPoint- True if point-to-point packets are to be reinjected.
- fixedRoute- True if fixed-route packets are to be reinjected.
- nearestNeighbour- True if nearest-neighbour packets are to be reinjected.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionEmergencyTimeout@ParallelSafe public void setReinjectionEmergencyTimeout(HasCoreLocation monitorCore, int timeoutMantissa, int timeoutExponent) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the emergency packet reinjection timeout.- Specified by:
- setReinjectionEmergencyTimeoutin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- timeoutMantissa- The mantissa of the timeout value, between 0 and 15.
- timeoutExponent- The exponent of the timeout value, between 0 and 15.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionEmergencyTimeout@ParallelSafeWithCare public void setReinjectionEmergencyTimeout(CoreSubsets monitorCores, int timeoutMantissa, int timeoutExponent) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the emergency packet reinjection timeout.- Specified by:
- setReinjectionEmergencyTimeoutin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores.
- timeoutMantissa- The mantissa of the timeout value, between 0 and 15.
- timeoutExponent- The exponent of the timeout value, between 0 and 15.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionTimeout@ParallelSafe public void setReinjectionTimeout(HasCoreLocation monitorCore, int timeoutMantissa, int timeoutExponent) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the packet reinjection timeout.- Specified by:
- setReinjectionTimeoutin interface- TransceiverInterface
- Parameters:
- monitorCore- The coordinates of the monitor core.
- timeoutMantissa- The mantissa of the timeout value, between 0 and 15.
- timeoutExponent- The exponent of the timeout value, between 0 and 15.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
setReinjectionTimeout@ParallelSafeWithCare public void setReinjectionTimeout(CoreSubsets monitorCores, int timeoutMantissa, int timeoutExponent) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSet the packet reinjection timeout.- Specified by:
- setReinjectionTimeoutin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores.
- timeoutMantissa- The mantissa of the timeout value, between 0 and 15.
- timeoutExponent- The exponent of the timeout value, between 0 and 15.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
getHeap@CheckReturnValue @ParallelSafe public List<HeapElement> getHeap(HasChipLocation chip, SystemVariableDefinition heap) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceGet the contents of the given heap on a given chip.- Specified by:
- getHeapin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip
- heap- The SystemVariableDefinition which is the heap to read
- Returns:
- the list of chunks in the heap
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
fillMemory@ParallelSafe public void fillMemory(HasChipLocation chip, MemoryLocation baseAddress, int repeatValue, int size, FillDataType dataType) throws ProcessException, IOException, InterruptedException Description copied from interface:TransceiverInterfaceFill some memory with repeated data.- Specified by:
- fillMemoryin interface- TransceiverInterface
- Parameters:
- chip- The coordinates of the chip
- baseAddress- The address at which to start the fill
- repeatValue- The data to repeat
- size- The number of bytes to fill. Must be compatible with the data type i.e. if the data type is WORD, the number of bytes must be divisible by 4
- dataType- The type of data to fill.
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
saveApplicationRouterTables@ParallelSafeWithCare public void saveApplicationRouterTables(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceSave the application's multicast router tables.- Specified by:
- saveApplicationRouterTablesin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores; the routers on those chips will have their (current) multicast router tables saved.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
loadApplicationRouterTables@ParallelSafeWithCare public void loadApplicationRouterTables(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceLoad the (previously saved) application's multicast router tables. The router tables must have been previously saved.- Specified by:
- loadApplicationRouterTablesin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores; the routers on those chips will have their multicast router tables loaded.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
loadSystemRouterTables@ParallelSafeWithCare public void loadSystemRouterTables(CoreSubsets monitorCores) throws IOException, ProcessException, InterruptedException Description copied from interface:TransceiverInterfaceLoad the (previously configured) system multicast router tables. The application's router tables must have been previously saved.- Specified by:
- loadSystemRouterTablesin interface- TransceiverInterface
- Parameters:
- monitorCores- The coordinates of some monitor cores; the routers on those chips will have their multicast router tables loaded.
- Throws:
- IOException- If anything goes wrong with networking.
- ProcessException- If SpiNNaker rejects a message.
- InterruptedException- If the communications were interrupted.
 
- 
resetRoutingpublic void resetRouting(Map<Integer, DiagnosticFilter> customFilters) throws ProcessException, IOException, InterruptedExceptionDescription copied from interface:TransceiverInterfaceClear the router tables, reset diagnostic counters and put in optional custom filters.- Specified by:
- resetRoutingin interface- TransceiverInterface
- Parameters:
- customFilters- a map of filter position to custom filter, or null
- Throws:
- ProcessException- If SpiNNaker rejects a message.
- IOException- If anything goes wrong with networking.
- InterruptedException- If the communications were interrupted.
 
- 
closeClose the transceiver and any threads that are running.- Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- BMPTransceiverInterface
- Specified by:
- closein interface- Closeable
- Overrides:
- closein class- UDPTransceiver
- Throws:
- IOException- If anything goes wrong
 
- 
closepublic void close(boolean closeOriginalConnections, boolean powerOffMachine) throws IOException, InterruptedException Close the transceiver and any threads that are running.- Parameters:
- closeOriginalConnections- If True, the original connections passed to the transceiver in the constructor are also closed. If False, only newly discovered connections are closed.
- powerOffMachine- if true, the machine is sent a power down command via its BMP (if it has one)
- Throws:
- IOException- If anything goes wrong with networking
- InterruptedException- If interrupted while waiting for the machine to power down (only if that is requested).
 
- 
getBMPConnection- Returns:
- The connection selectors used for BMP connections.
 
- 
addConnectionDescription copied from class:UDPTransceiverAdd a connection to the collection of general connections managed by this class.- Specified by:
- addConnectionin class- UDPTransceiver
- Parameters:
- connection- the connection to add
 
- 
bindDescription copied from interface:BMPTransceiverInterfaceSet the default BMP coordinates, at least for cabinet and frame.- Specified by:
- bindin interface- BMPTransceiverInterface
- Parameters:
- bmp- The new default coordinates.
 
- 
getBoundBMP- Specified by:
- getBoundBMPin interface- BMPTransceiverInterface
- Returns:
- The currently bound BMP coordinates. Defaults to 0,0 if not set
         by BMPTransceiverInterface.bind(BMPCoords).
 
- 
pingBoardDescription copied from interface:BMPTransceiverInterfacePing a board.- Specified by:
- pingBoardin interface- BMPTransceiverInterface
- Parameters:
- address- The board IP address.
- Returns:
- 0 on success, other values on failure (reflecting the result of the OS subprocess).
 
 
-