pub unsafe extern "C" fn otPlatRadioReceiveAt(
aInstance: *mut otInstance,
aChannel: u8,
aStart: u32,
aDuration: u32,
) -> otError
Expand description
Schedule a radio reception window at a specific time and duration.
After a radio reception is successfully scheduled for a future time and duration, a subsequent call to this function MUST be handled as follows:
-
If the start time of the previously scheduled reception window has not yet been reached, the new call to
otPlatRadioReceiveAt()
MUST cancel the previous schedule, effectively replacing it. -
If the start of the previous window has already passed, the previous receive schedule is already being executed by the radio and MUST NOT be replaced or impacted. The new call to
otPlatRadioReceiveAt()
would then schedule a new future receive window. In particular, if the newotPlatRadioReceiveAt()
call occurs after the start but while still within the previous reception window, the ongoing reception window MUST NOT be impacted.
@param[in] aChannel The radio channel on which to receive.
@param[in] aStart The receive window start time relative to the local
radio clock, see otPlatRadioGetNow
. The radio
receiver SHALL be on and ready to receive the first
symbol of a frame’s SHR at the window start time.
@param[in] aDuration The receive window duration, in microseconds, as
measured by the local radio clock. The radio SHOULD be
turned off (or switched to TX mode if an ACK frame
needs to be sent) after that duration unless it is
still actively receiving a frame. In the latter case
the radio SHALL be kept in reception mode until frame
reception has either succeeded or failed.
@retval OT_ERROR_NONE Successfully scheduled receive window. @retval OT_ERROR_FAILED The receive window could not be scheduled. For example, if @p aStart is in the past.