uint8_t I2C_GetRunnerMessage(char *buf, size_t bufSize) { if (I2C_RunnerQueue==NULL || bufSize<I2C_RUNNER_I2C_MSG_SIZE) { return ERR_FAILED; } if (FRTOS1_xQueueReceive(I2C_RunnerQueue, buf, 0)==pdPASS) { /* non blocking queue receive */ return ERR_OK; } return ERR_RXEMPTY; }
unsigned char SQUEUE_ReceiveChar(void) { unsigned char ch; portBASE_TYPE res; res = FRTOS1_xQueueReceive(SQUEUE_Queue, &ch, 0); if(res == errQUEUE_EMPTY){ return '\0'; } else { return ch; } }
unsigned char QUEUE_ReceiveChar(xQueueHandle queue) { unsigned char ch; portBASE_TYPE res; res = FRTOS1_xQueueReceive(queue, &ch, 0); if (res==errQUEUE_EMPTY) { return '\0'; } else { return ch; } }
const unsigned char *SQUEUE_ReceiveMessage(void) { const unsigned char *ptr; portBASE_TYPE res; res = FRTOS1_xQueueReceive(SQUEUE_Queue, &ptr, 0); if (res==errQUEUE_EMPTY) { return NULL; } else { return ptr; } }
/*! \brief Radio application state machine */ void RADIO_Handle(void) { //uint8_t buf[RADIO_QUEUE_ITEM_SIZE]; if (RADIO_isOn) { RADIO_HandleState(); /* advance state machine */ } #if 0 /* poll radio message queue */ if (FRTOS1_xQueueReceive(RADIO_MsgQueue, buf, 0)==pdPASS) { /* received message from queue */ RADIO_HandleMessage(buf); } #endif }
static uint8_t GetCmd(void) { DRV_Command cmd; portBASE_TYPE res; res = FRTOS1_xQueueReceive(DRV_Queue, &cmd, 0); if (res==errQUEUE_EMPTY) { return ERR_RXEMPTY; /* no command */ } /* process command */ FRTOS1_taskENTER_CRITICAL(); if (cmd.cmd==DRV_SET_MODE) { PID_Start(); /* reset PID, especially integral counters */ DRV_Status.mode = cmd.u.mode; } else if (cmd.cmd==DRV_SET_SPEED) { DRV_Status.speed.left = cmd.u.speed.left; DRV_Status.speed.right = cmd.u.speed.right; } else if (cmd.cmd==DRV_SET_POS) { DRV_Status.pos.left = cmd.u.pos.left; DRV_Status.pos.right = cmd.u.pos.right; } FRTOS1_taskEXIT_CRITICAL(); return ERR_OK; }