The interface to an aseba network. Used to interact with the nodes. More...
#include <Target.h>
Public Types | |
enum | ExecutionMode { EXECUTION_STOP, EXECUTION_RUN, EXECUTION_STEP_BY_STEP, EXECUTION_UNKNOWN } |
Mode of execution of target. More... | |
Signals | |
void | arrayAccessOutOfBounds (unsigned node, unsigned line, unsigned size, unsigned index) |
A node did an access out of array bounds exception. | |
void | bootloaderAck (unsigned errorCode, unsigned errorAddress) |
We received an ack from the bootloader. | |
void | breakpointSetResult (unsigned node, unsigned line, bool success) |
The result of a set breakpoint call. | |
void | divisionByZero (unsigned node, unsigned line) |
A node did a division by zero exception. | |
void | eventExecutionKilled (unsigned node, unsigned line) |
A new event was run and the current killed on a node. | |
void | executionModeChanged (unsigned node, Target::ExecutionMode mode) |
The mode of execution of a node (stop, run, step by step) has changed. | |
void | executionPosChanged (unsigned node, unsigned line) |
The program counter of a node has changed, causing a change of position in source code. | |
void | networkDisconnected () |
The network connection has been cut: all nodes have disconnected. | |
void | nodeConnected (unsigned node) |
A new node has connected to the network. | |
void | nodeDisconnected (unsigned node) |
A node has disconnected from the network. | |
void | nodeSpecificError (unsigned node, unsigned line, const QString &message) |
A node has produced an error specific to it. | |
void | userEvent (unsigned id, const VariablesDataVector data) |
A user event has arrived from the network. | |
void | userEventsDropped (unsigned amount) |
Some user events have been dropped, i.e. not sent to the gui. | |
void | variablesMemoryChanged (unsigned node, unsigned start, const VariablesDataVector &variables) |
The content of the variables memory of a node has changed. | |
void | variablesMemoryEstimatedDirty (unsigned node) |
The execution state logic thinks variables might need a refresh. | |
Public Member Functions | |
virtual void | broadcastGetDescription ()=0 |
Request descriptions from the aseba network. | |
virtual void | clearBreakpoint (unsigned node, unsigned line)=0 |
Remove the breakpoint in a node at a specific line. | |
virtual void | clearBreakpoints (unsigned node)=0 |
Remove all breakpoints in a node. | |
virtual const TargetDescription *const | getDescription (unsigned node) const =0 |
Return a constant description of a node. Returned value is always valid if node exists. | |
virtual QString | getLanguage () const =0 |
Return the language that we choosen for this connection. | |
const QString | getName (unsigned node) const |
Return the name of a node. Returned value is always valid if node exists. | |
virtual void | getVariables (unsigned node, unsigned start, unsigned length)=0 |
Get part of variables memory. | |
virtual void | next (unsigned node)=0 |
Run bytecode on a node until next source line. | |
virtual void | pause (unsigned node)=0 |
Interrupt (pause, go to step by step) the execution on a node. | |
virtual void | reboot (unsigned node)=0 |
Reboot (restart the whole microcontroller, not just reset the aseba VM) | |
virtual void | reset (unsigned node)=0 |
Reset the execution of a node, do not clear bytecode nor breakpoints. | |
virtual void | run (unsigned node)=0 |
Run the execution on a node. | |
virtual void | sendEvent (unsigned id, const VariablesDataVector &data)=0 |
Send an event to the aseba network. | |
virtual void | setBreakpoint (unsigned node, unsigned line)=0 |
Set a breakpoint in a node at a specific line. | |
virtual void | setVariables (unsigned node, unsigned start, const VariablesDataVector &data)=0 |
Set part of variables memory. | |
virtual void | stop (unsigned node)=0 |
Stop the execution on a node. | |
virtual void | uploadBytecode (unsigned node, const BytecodeVector &bytecode)=0 |
Upload bytecode to target. | |
virtual void | writeBytecode (unsigned node)=0 |
Save the bytecode currently on target. | |
virtual | ~Target () |
Virtual destructor. | |
Protected Member Functions | |
virtual void | blockWrite ()=0 |
Block all write operations, used by invasive plugins when they do something hacky with the underlying data stream. | |
virtual void | unblockWrite ()=0 |
Unblock write operatinos, used by invasive plugins when they do something hacky with the underlying data stream. | |
Friends | |
class | ThymioBootloaderDialog |
class | ThymioVisualProgramming |
The interface to an aseba network. Used to interact with the nodes.
virtual Aseba::Target::~Target | ( | ) | [inline, virtual] |
void Aseba::Target::arrayAccessOutOfBounds | ( | unsigned | node, |
unsigned | line, | ||
unsigned | size, | ||
unsigned | index | ||
) | [signal] |
A node did an access out of array bounds exception.
virtual void Aseba::Target::blockWrite | ( | ) | [protected, pure virtual] |
Block all write operations, used by invasive plugins when they do something hacky with the underlying data stream.
Implemented in Aseba::DashelTarget.
void Aseba::Target::bootloaderAck | ( | unsigned | errorCode, |
unsigned | errorAddress | ||
) | [signal] |
We received an ack from the bootloader.
void Aseba::Target::breakpointSetResult | ( | unsigned | node, |
unsigned | line, | ||
bool | success | ||
) | [signal] |
The result of a set breakpoint call.
virtual void Aseba::Target::broadcastGetDescription | ( | ) | [pure virtual] |
Request descriptions from the aseba network.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::clearBreakpoint | ( | unsigned | node, |
unsigned | line | ||
) | [pure virtual] |
Remove the breakpoint in a node at a specific line.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::clearBreakpoints | ( | unsigned | node | ) | [pure virtual] |
Remove all breakpoints in a node.
Implemented in Aseba::DashelTarget.
void Aseba::Target::divisionByZero | ( | unsigned | node, |
unsigned | line | ||
) | [signal] |
A node did a division by zero exception.
void Aseba::Target::eventExecutionKilled | ( | unsigned | node, |
unsigned | line | ||
) | [signal] |
A new event was run and the current killed on a node.
void Aseba::Target::executionModeChanged | ( | unsigned | node, |
Target::ExecutionMode | mode | ||
) | [signal] |
The mode of execution of a node (stop, run, step by step) has changed.
void Aseba::Target::executionPosChanged | ( | unsigned | node, |
unsigned | line | ||
) | [signal] |
The program counter of a node has changed, causing a change of position in source code.
virtual const TargetDescription* const Aseba::Target::getDescription | ( | unsigned | node | ) | const [pure virtual] |
Return a constant description of a node. Returned value is always valid if node exists.
Implemented in Aseba::DashelTarget.
virtual QString Aseba::Target::getLanguage | ( | ) | const [pure virtual] |
Return the language that we choosen for this connection.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::getVariables | ( | unsigned | node, |
unsigned | start, | ||
unsigned | length | ||
) | [pure virtual] |
Get part of variables memory.
Implemented in Aseba::DashelTarget.
void Aseba::Target::networkDisconnected | ( | ) | [signal] |
The network connection has been cut: all nodes have disconnected.
virtual void Aseba::Target::next | ( | unsigned | node | ) | [pure virtual] |
Run bytecode on a node until next source line.
Implemented in Aseba::DashelTarget.
void Aseba::Target::nodeConnected | ( | unsigned | node | ) | [signal] |
A new node has connected to the network.
void Aseba::Target::nodeDisconnected | ( | unsigned | node | ) | [signal] |
A node has disconnected from the network.
void Aseba::Target::nodeSpecificError | ( | unsigned | node, |
unsigned | line, | ||
const QString & | message | ||
) | [signal] |
A node has produced an error specific to it.
virtual void Aseba::Target::pause | ( | unsigned | node | ) | [pure virtual] |
Interrupt (pause, go to step by step) the execution on a node.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::reboot | ( | unsigned | node | ) | [pure virtual] |
Reboot (restart the whole microcontroller, not just reset the aseba VM)
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::reset | ( | unsigned | node | ) | [pure virtual] |
Reset the execution of a node, do not clear bytecode nor breakpoints.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::run | ( | unsigned | node | ) | [pure virtual] |
Run the execution on a node.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::sendEvent | ( | unsigned | id, |
const VariablesDataVector & | data | ||
) | [pure virtual] |
Send an event to the aseba network.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::setBreakpoint | ( | unsigned | node, |
unsigned | line | ||
) | [pure virtual] |
Set a breakpoint in a node at a specific line.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::setVariables | ( | unsigned | node, |
unsigned | start, | ||
const VariablesDataVector & | data | ||
) | [pure virtual] |
Set part of variables memory.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::stop | ( | unsigned | node | ) | [pure virtual] |
Stop the execution on a node.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::unblockWrite | ( | ) | [protected, pure virtual] |
Unblock write operatinos, used by invasive plugins when they do something hacky with the underlying data stream.
Implemented in Aseba::DashelTarget.
virtual void Aseba::Target::uploadBytecode | ( | unsigned | node, |
const BytecodeVector & | bytecode | ||
) | [pure virtual] |
Upload bytecode to target.
Implemented in Aseba::DashelTarget.
void Aseba::Target::userEvent | ( | unsigned | id, |
const VariablesDataVector | data | ||
) | [signal] |
A user event has arrived from the network.
void Aseba::Target::userEventsDropped | ( | unsigned | amount | ) | [signal] |
Some user events have been dropped, i.e. not sent to the gui.
void Aseba::Target::variablesMemoryChanged | ( | unsigned | node, |
unsigned | start, | ||
const VariablesDataVector & | variables | ||
) | [signal] |
The content of the variables memory of a node has changed.
void Aseba::Target::variablesMemoryEstimatedDirty | ( | unsigned | node | ) | [signal] |
The execution state logic thinks variables might need a refresh.
virtual void Aseba::Target::writeBytecode | ( | unsigned | node | ) | [pure virtual] |
Save the bytecode currently on target.
Implemented in Aseba::DashelTarget.
friend class ThymioBootloaderDialog [friend] |
friend class ThymioVisualProgramming [friend] |