PxPeRequest_NoWait()
Request a periodic event object with immediate return.
- APPLIES TO
- 
8.2.0 
- SYNOPSIS
- 
PxPe_t PxPeRequest_NoWait (PxOpool_t OpoolId, PxTicks_t period, PxEvents_t events);
- ARGUMENTS
| 
 | |
| 
 | |
| 
 | 
- RETURN VALUES
- 
- 
Periodic event handler object id 
 
- 
- ERROR CODES
- 
PXERR_ACCESS_RIGHTThe calling task has not the right to access the object pool PXERR_OPOOL_ILLOPOOLThe passed object pool handle is not valid PXERR_GLOBAL_ILLEGAL_COREThe requested object pool is not on the same core PXERR_OBJ_ABORTEDThe request was aborted by an event PXERR_OBJ_NOOBJNo free object is available PXERR_OBJ_ILLOBJThe passed object handle is not valid PXERR_EVENT_ZEROThe given event mask is zero PXERR_PE_ILLPEThe given object is not a periodic event object PXERR_INTERNAL_INCONSISTENCYInconsistency of internal structures 
- DESCRIPTION
- 
PxPeRequest_NoWaitcreates and initializes a periodic event object, which is returned. It is associated with period PXROS ticks and events which are signaled periodically. Signaling is active after the periodic event is started withPxPeStart. It is necessary to finish up withPxPeRelease, when the periodic event is no longer used. If there is no free object available, thePxPeRequest_NoWaitimmediately returns with error codePXERR_OBJ_NOOBJ.
- IMPLEMENTATION GUIDELINES
- 
- Before call
- 
- 
OpoolIdmust be a valid PXROS-HR object pool and the calling task must have the access right to take objects from this object pool (V). The validity ofOpoolIdmay also be checked by thePxOpoolIsValidmacro (F). The object pool must be created on the same core as the caller runs on. The creator core id can be read with the macroPxOpoolCoreIdand the own core id withPxGetCoreId(C). Typically the task’s default object poolPXOpoolTaskdefaultis used for this purpose.
- 
The periodparameter must have a plausible value. It should be a constant or the result of aPxTickGetTicksFromMilliSecondscall (V);
- 
The parameter eventscontains an event bit and should not be zero. Typically the event is a constant (V).
 
- 
 - After call
- 
- 
The returned value is the id of type PxPe_t. This id may be checked with one of the following macros:- 
PxPeIdIsValid()must be true.
- 
PxPeIdGet()must not be_PXIllegalObjId.
- 
PxPeIdError()must bePXERR_NOERRORotherwise the returned error code has to be interpreted (C).
 
- 
 
- 
 - Best Practice
- 
- 
PxPeRequest_NoWaitshould only be called during initialization to ensure the availability of the periodic event object.
 
- 
 
- SEE ALSO
- USAGE
- 
#include "pxdef.h" #define MY_EVENT 0x1l #define TICKS 0x1l PxPe_t Pe = PxPeRequest_NoWait(OpoolId, TICKS, MY_EVENT); if (PxPeIdError(Pe) != PXERR_NOERROR) { // Report error }