xQueueCreate

[Queue Management]

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. 
 }