Aseba  1.5.5
Macros | Typedefs | Enumerations
Constants and types common to all subsystems

Macros

#define ASEBA_VERSION   "1.5.5"
 version of Aseba as string
 
#define ASEBA_VERSION_INT   10505
 version of Aseba as an int
 
#define ASEBA_PROTOCOL_VERSION   5
 version of aseba protocol, including bytecodes types and constants
 
#define ASEBA_MIN_TARGET_PROTOCOL_VERSION   4
 minimal accepted protocol version in targets
 
#define ASEBA_DEFAULT_LISTEN_TARGET   "tcpin:33333"
 default listen target for aseba
 
#define ASEBA_DEFAULT_TARGET   "tcp:localhost;33333"
 default target for aseba
 
#define ASEBA_DEFAULT_HOST   "localhost"
 default host for aseba
 
#define ASEBA_DEFAULT_PORT   33333
 default port for aseba
 
#define ASEBA_BINARY_OPERATOR_MASK   0xff
 Mask of available binary operators.
 
#define ASEBA_UNARY_OPERATOR_MASK   0xff
 Mask of available unary operators.
 
#define ASEBA_IF_IS_WHEN_BIT   8
 Bit inside if opcode that indicates it is a when condition.
 
#define ASEBA_IF_WAS_TRUE_BIT   9
 Bit inside if opcode that indicates that the last evaluation was true.
 
#define AsebaBytecodeFromId(id)   ((id) << 12)
 Return a bare bytecode from its identifier.
 
#define ASEBA_MAX_EVENT_ARG_SIZE   (ASEBA_MAX_EVENT_ARG_COUNT*2)
 Maximum size of arguments in a user-defined event (in bytes)
 
#define ASEBA_MAX_INNER_PACKET_SIZE   (ASEBA_MAX_EVENT_ARG_SIZE+2)
 Maximum size of an event (in bytes), including its type, but not the source and the length.
 
#define ASEBA_MAX_OUTER_PACKET_SIZE   (ASEBA_MAX_INNER_PACKET_SIZE+4)
 Maximum size of an event (in bytes), including its type plus the source and the length.
 
#define ASEBA_MAX_PACKET_SIZE   ASEBA_MAX_INNER_PACKET_SIZE
 DEPRECATED, please use one of the more explicit defines above
 
#define ASEBA_UNUSED(x)   (void)x;
 Macro to prevent compiler warnings for unused variables.
 
#define ASEBA_PID_VAR_NAME   "_productId"
 name of the product-id variable
 
#define bswap16(v)   (v)
 

Typedefs

typedef signed long long sint64
 64 bits signed integer
 
typedef unsigned long long uint64
 64 bits unsigned integer
 
typedef signed long sint32
 32 bits signed integer
 
typedef unsigned long uint32
 32 bits unsigned integer
 
typedef signed short sint16
 16 bits signed integer
 
typedef unsigned short uint16
 16 bits unsigned integer
 
typedef signed char sint8
 8 bits signed integer
 
typedef unsigned char uint8
 8 bits unsigned integer
 

Enumerations

enum  AsebaBytecodeId {
  ASEBA_BYTECODE_STOP = 0x0, ASEBA_BYTECODE_SMALL_IMMEDIATE = 0x1, ASEBA_BYTECODE_LARGE_IMMEDIATE = 0x2, ASEBA_BYTECODE_LOAD = 0x3,
  ASEBA_BYTECODE_STORE = 0x4, ASEBA_BYTECODE_LOAD_INDIRECT = 0x5, ASEBA_BYTECODE_STORE_INDIRECT = 0x6, ASEBA_BYTECODE_UNARY_ARITHMETIC = 0x7,
  ASEBA_BYTECODE_BINARY_ARITHMETIC = 0x8, ASEBA_BYTECODE_JUMP = 0x9, ASEBA_BYTECODE_CONDITIONAL_BRANCH = 0xA, ASEBA_BYTECODE_EMIT = 0xB,
  ASEBA_BYTECODE_NATIVE_CALL = 0xC, ASEBA_BYTECODE_SUB_CALL = 0xD, ASEBA_BYTECODE_SUB_RET = 0xE
}
 List of bytecodes identifiers.
 
enum  AsebaBinaryOperator {
  ASEBA_OP_SHIFT_LEFT = 0x0, ASEBA_OP_SHIFT_RIGHT, ASEBA_OP_ADD, ASEBA_OP_SUB,
  ASEBA_OP_MULT, ASEBA_OP_DIV, ASEBA_OP_MOD, ASEBA_OP_BIT_OR,
  ASEBA_OP_BIT_XOR, ASEBA_OP_BIT_AND, ASEBA_OP_EQUAL, ASEBA_OP_NOT_EQUAL,
  ASEBA_OP_BIGGER_THAN, ASEBA_OP_BIGGER_EQUAL_THAN, ASEBA_OP_SMALLER_THAN, ASEBA_OP_SMALLER_EQUAL_THAN,
  ASEBA_OP_OR, ASEBA_OP_AND
}
 List of binary operators.
 
enum  AsebaUnaryOperator { ASEBA_UNARY_OP_SUB = 0x0, ASEBA_UNARY_OP_ABS, ASEBA_UNARY_OP_BIT_NOT, ASEBA_UNARY_OP_NOT }
 List of unary operators.
 
enum  AsebaExecutionStates { ASEBA_VM_EVENT_ACTIVE_MASK = 0x1, ASEBA_VM_STEP_BY_STEP_MASK = 0x2, ASEBA_VM_EVENT_RUNNING_MASK = 0x4 }
 List of masks for flags in AsebaVMState. More...
 
enum  AsebaSpecialEventId { ASEBA_EVENT_INIT = 0xFFFF, ASEBA_EVENT_LOCAL_EVENTS_START = 0xFFFE }
 List of special event ID.
 
enum  AsebaSystemMessagesTypes {
  ASEBA_MESSAGE_BOOTLOADER_RESET = 0x8000, ASEBA_MESSAGE_BOOTLOADER_READ_PAGE, ASEBA_MESSAGE_BOOTLOADER_WRITE_PAGE, ASEBA_MESSAGE_BOOTLOADER_PAGE_DATA_WRITE,
  ASEBA_MESSAGE_BOOTLOADER_DESCRIPTION, ASEBA_MESSAGE_BOOTLOADER_PAGE_DATA_READ, ASEBA_MESSAGE_BOOTLOADER_ACK, ASEBA_MESSAGE_DESCRIPTION = 0x9000,
  ASEBA_MESSAGE_NAMED_VARIABLE_DESCRIPTION, ASEBA_MESSAGE_LOCAL_EVENT_DESCRIPTION, ASEBA_MESSAGE_NATIVE_FUNCTION_DESCRIPTION, ASEBA_MESSAGE_DISCONNECTED,
  ASEBA_MESSAGE_VARIABLES, ASEBA_MESSAGE_ARRAY_ACCESS_OUT_OF_BOUNDS, ASEBA_MESSAGE_DIVISION_BY_ZERO, ASEBA_MESSAGE_EVENT_EXECUTION_KILLED,
  ASEBA_MESSAGE_NODE_SPECIFIC_ERROR, ASEBA_MESSAGE_EXECUTION_STATE_CHANGED, ASEBA_MESSAGE_BREAKPOINT_SET_RESULT, ASEBA_MESSAGE_NODE_PRESENT,
  ASEBA_MESSAGE_GET_DESCRIPTION = 0xA000, ASEBA_MESSAGE_SET_BYTECODE, ASEBA_MESSAGE_RESET, ASEBA_MESSAGE_RUN,
  ASEBA_MESSAGE_PAUSE, ASEBA_MESSAGE_STEP, ASEBA_MESSAGE_STOP, ASEBA_MESSAGE_GET_EXECUTION_STATE,
  ASEBA_MESSAGE_BREAKPOINT_SET, ASEBA_MESSAGE_BREAKPOINT_CLEAR, ASEBA_MESSAGE_BREAKPOINT_CLEAR_ALL, ASEBA_MESSAGE_GET_VARIABLES,
  ASEBA_MESSAGE_SET_VARIABLES, ASEBA_MESSAGE_WRITE_BYTECODE, ASEBA_MESSAGE_REBOOT, ASEBA_MESSAGE_SUSPEND_TO_RAM,
  ASEBA_MESSAGE_GET_NODE_DESCRIPTION, ASEBA_MESSAGE_LIST_NODES, ASEBA_MESSAGE_INVALID = 0xFFFF
}
 Identifiers for remote bootloader and debug protocol.
 
enum  AsebaMessagesDests { ASEBA_DEST_DEBUG = 0, ASEBA_DEST_INVALID = 0xFFFF }
 Identifiers for destinations.
 
enum  AsebaLimits { ASEBA_MAX_EVENT_ARG_COUNT = 258 }
 Limits for static buffers allocation. More...
 
enum  AsebaProductIds {
  ASEBA_PID_UNDEFINED = 0, ASEBA_PID_CHALLENGE, ASEBA_PID_PLAYGROUND_EPUCK, ASEBA_PID_MARXBOT,
  ASEBA_PID_HANDBOT, ASEBA_PID_EPUCK, ASEBA_PID_SMARTROB, ASEBA_PID_SMARTROBASL,
  ASEBA_PID_THYMIO2
}
 List of product identifiers. More...
 

Detailed Description

Enumeration Type Documentation

List of masks for flags in AsebaVMState.

Enumerator
ASEBA_VM_EVENT_ACTIVE_MASK 

This flag is enabled when a thread is being executed.

ASEBA_VM_STEP_BY_STEP_MASK 

This flag is enabled when the VM is running stey by step.

It is disabled when running normally.

ASEBA_VM_EVENT_RUNNING_MASK 

This flag is enabled when an event is running inside the debugger's fast loop, and cleared to make the debugger get out of the loop.

This is usefull to allow an interrupt to stop the VM.

Limits for static buffers allocation.

Enumerator
ASEBA_MAX_EVENT_ARG_COUNT 

Maximum number of arguments in an event (in word)

List of product identifiers.

Used for instance by studio for device-specific functions such as custom flasher protocol.