void canRxPoll( unsigned channel ) { __HAL::msqRead_s msqReadBuf; while( msgrcv( __HAL::msqDataClient.i32_rdHandle, &msqReadBuf, sizeof( __HAL::msqRead_s ) - sizeof( long ), __HAL::assembleRead_mtype( __HAL::msqDataClient.i32_pid, channel, COMMON_MSGOBJ_IN_QUEUE ), IPC_NOWAIT ) > 0 ) { canEnqueue( channel, msqReadBuf.s_canData ); } }
T* beginEnqueue() { if(canEnqueue()) return items+(wpos%length); else return NULL; }