queue. h
xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize );
新しい待ち行列インスタンスを作成します。 これは新しい待ち行列に必要とされるメモリを割り当てて、待ち行列のハンドルを返します。
パラメータ:
uxQueueLength 待ち行列が収容可能なアイテムの最大数。
uxItemSize 待ち行列の各項目が必要とするバイト数。 アイテムは、リファレンスによってではなく、コピーによって待ち行列に入れられます、これは各ポストアイテムのコピーされるバイト数です。
待ち行列に各アイテムは同一のサイズでなければならない。
リターン:
待ち行列の作成が成功したならば、この待ち行列への新しいハンドルが返されます。 もし待ち行列が作成できないなら、0が返されます。
使用例:
struct AMessage
{
portCHAR ucMessageID;
portCHAR ucData[ 20 ];
};
void vATask( void *pvParameters )
{
xQueueHandle xQueue1, xQueue2;
// Create a queue capable of containing 10 unsigned long values.
xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );
if( xQueue1 == 0 ) {
// Queue was not created and must not be used.
}
// Create a queue capable of containing 10 pointers to AMessage structures.
// These should be passed by pointer as they contain a lot of data.
xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
if( xQueue2 == 0 ) {
// Queue was not created and must not be used.
}
// ... Rest of task code.
}