Function otPlatRadioReceiveAt

Source
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 new otPlatRadioReceiveAt() 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.