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