Function esp_idf_hal::sys::xStreamBufferSetTriggerLevel
source · pub unsafe extern "C" fn xStreamBufferSetTriggerLevel(
xStreamBuffer: *mut StreamBufferDef_t,
xTriggerLevel: usize,
) -> i32
Expand description
@cond !DOC_EXCLUDE_HEADER_SECTION stream_buffer.h
@code{c} BaseType_t xStreamBufferSetTriggerLevel( StreamBufferHandle_t xStreamBuffer, size_t xTriggerLevel ); @endcode @endcond
A stream buffer’s trigger level is the number of bytes that must be in the stream buffer before a task that is blocked on the stream buffer to wait for data is moved out of the blocked state. For example, if a task is blocked on a read of an empty stream buffer that has a trigger level of 1 then the task will be unblocked when a single byte is written to the buffer or the task’s block time expires. As another example, if a task is blocked on a read of an empty stream buffer that has a trigger level of 10 then the task will not be unblocked until the stream buffer contains at least 10 bytes or the task’s block time expires. If a reading task’s block time expires before the trigger level is reached then the task will still receive however many bytes are actually available. Setting a trigger level of 0 will result in a trigger level of 1 being used. It is not valid to specify a trigger level that is greater than the buffer size.
A trigger level is set when the stream buffer is created, and can be modified using xStreamBufferSetTriggerLevel().
@param xStreamBuffer The handle of the stream buffer being updated.
@param xTriggerLevel The new trigger level for the stream buffer.
@return If xTriggerLevel was less than or equal to the stream buffer’s length then the trigger level will be updated and pdTRUE is returned. Otherwise pdFALSE is returned.
@cond !DOC_SINGLE_GROUP \defgroup xStreamBufferSetTriggerLevel xStreamBufferSetTriggerLevel @endcond \ingroup StreamBufferManagement