58#ifndef gusimplewhiteboard_wb_fsm_control_status_h
59#define gusimplewhiteboard_wb_fsm_control_status_h
64#define CONTROLSTATUS_BYTE_SIZE (sizeof(gu_simple_message))
65#define CONTROLSTATUS_BIT_SIZE (CONTROLSTATUS_BYTE_SIZE*8)
66#define CONTROLSTATUS_BITS_RESERVED 2
67#define CONTROLSTATUS_NUM_FSMS (CONTROLSTATUS_BIT_SIZE - CONTROLSTATUS_BITS_RESERVED)
68#define CONTROLSTATUS_CMD (CONTROLSTATUS_BYTE_SIZE-1)
69#define CONTROLSTATUS_CMD_LO (1<<6)
70#define CONTROLSTATUS_CMD_HI (1<<7)
71#define CONTROLSTATUS_CMD_MASK (CONTROLSTATUS_CMD_LO|CONTROLSTATUS_CMD_HI)
73#define CONTROLSTATUS_CLR_FSM(s, fsm) ((s)->_fsms[(fsm)/8] &=~(1<<((fsm)%8)))
74#define CONTROLSTATUS_SET_FSM(s, fsm) ((s)->_fsms[(fsm)/8] |= (1<<((fsm)%8)))
75#define CONTROLSTATUS_GET_FSM(s, fsm) ((((s)->_fsms[(fsm)/8]) & (1<<((fsm)%8))) != 0)
78#define CONTROLSTATUS_SET_CMD(s, cmd) ((s)->_fsms[CONTROLSTATUS_CMD] = (uint8_t)(((s)->_fsms[CONTROLSTATUS_CMD] & ~CONTROLSTATUS_CMD_MASK) | (((cmd) & 3) << 6)))
80#define CONTROLSTATUS_SET_CMD(s, cmd) ((s)->_fsms[CONTROLSTATUS_CMD] = static_cast<uint8_t>(((s)->_fsms[CONTROLSTATUS_CMD] & ~CONTROLSTATUS_CMD_MASK) | (((cmd) & 3) << 6)))
81#define CONTROLSTATUS_GET_CMD(s) ((((s)->_fsms[CONTROLSTATUS_CMD]) >> 6) & 3)
FSMControlType
command for ControlStatus
@ FSMSuspend
suspend the corresponding state machines
@ FSMRestart
restart the corresponding state machine
@ FSMStatus
check status only
@ FSMResume
resume the corresponding state machines
Finite State Machine Control and Status information.
ARRAY_PROPERTY(uint8_t, fsms,(sizeof(gu_simple_message))) wb_fsm_control_status(guWhiteboard
bit vector of FSMs and command
#define CONTROLSTATUS_BYTE_SIZE
#define CONTROLSTATUS_SET_CMD(s, cmd)