Agilla Error Handling

When a mote encounters an error, it enters an error state and periodically blinks all three LEDs. Each time it blinks its LED, it sends an error message to the basestation, which displays the error details.

Error Codes

AGILLA_ERROR_TRIGGERED = 0,
AGILLA_ERROR_INVALID_RUNNABLE = 1,
AGILLA_ERROR_STACK_OVERFLOW = 2,
AGILLA_ERROR_STACK_UNDERFLOW = 3,
AGILLA_ERROR_AGENT_NOT_RUNNING = 5,
AGILLA_ERROR_INDEX_OUT_OF_BOUNDS = 6,
AGILLA_ERROR_INSTRUCTION_RUNOFF = 7,
AGILLA_ERROR_INVALID_FIELD_TYPE = 8,
AGILLA_ERROR_CODE_OVERFLOW = 9,
AGILLA_ERROR_ILLEGAL_TUPLE_NAME = 10,
AGILLA_ERROR_QUEUE_ENQUEUE = 11,
AGILLA_ERROR_QUEUE_DEQUEUE = 12,
AGILLA_ERROR_QUEUE_REMOVE = 13,
AGILLA_ERROR_QUEUE_INVALID = 14,
AGILLA_ERROR_RSTACK_OVERFLOW = 15,
AGILLA_ERROR_RSTACK_UNDERFLOW = 16,
AGILLA_ERROR_INVALID_ACCESS = 17,
AGILLA_ERROR_TYPE_CHECK = 18,
AGILLA_ERROR_INVALID_TYPE = 19,
AGILLA_ERROR_INVALID_LOCK = 20,
AGILLA_ERROR_INVALID_INSTRUCTION = 21,
AGILLA_ERROR_INVALID_SENSOR = 22,
AGILLA_ERROR_ILLEGAL_CODE_BLOCK = 23,
AGILLA_ERROR_ILLEGAL_FIELD_TYPE = 24,
AGILLA_ERROR_INVALID_FIELD_COUNT = 25,
AGILLA_ERROR_GET_FIELD_INVALID_TYPE = 26,
AGILLA_ERROR_UNKOWN_AGENT_HEAP = 28,
AGILLA_ERROR_UNKOWN_AGENT_OPSTACK = 29,
AGILLA_ERROR_REQUEST_Q_FULL = 30,
AGILLA_ERROR_OPrtsM_AGENT_NULL = 31,
AGILLA_ERROR_OPrtsM_AGENTID_MISMATCH = 32,
AGILLA_ERROR_OPrtsM_INSTR_MISMATCH = 33,
AGILLA_ERROR_OPrtsM_NO_RESPONSE = 34,
AGILLA_ERROR_RCV_BUFF_FULL = 35,
AGILLA_ERROR_UNKNOWN_MSG_TYPE = 36,
AGILLA_ERROR_TUPLE_SIZE = 37,
AGILLA_ERROR_SEND_BUFF_FULL = 38,
AGILLA_ERROR_NO_CLOSER_NEIGHBOR = 39,
AGILLA_ERROR_DROPPED_RESULTS_MESSAGE = 40,
AGILLA_ERROR_OPrtsM_BOUNCE_QUEUE_FULL = 41,
AGILLA_ERROR_RXN_NOT_FOUND = 42,
AGILLA_ERROR_TASK_QUEUE_FULL = 43,
AGILLA_ERROR_INVALID_VARIABLE_SIZE = 44,
AGILLA_ERROR_OPSLEEP_BUFFER_UNDERFLOW = 45,
AGILLA_ERROR_GET_FREE_BLOCK = 46,
AGILLA_ERROR_ILLEGAL_RXN_OP = 47,


This work is supported by the ONR MURI Project CONTESSA and the NSF under grant number CCR-9970939.