LL01/code_app_out/Source/common/queue_entity_cfg.c

331 lines
9.0 KiB
C
Raw Normal View History

2025-04-26 16:03:23 +08:00
/**
******************************************************************************
* @file
* @author
* @version
* @date
* @brief
* @function List:
******************************************************************************
* @attention
*
*
* <h2><center>&copy; COPYRIGHT 2021 </center></h2>
******************************************************************************
* @History:
* @Author:
* @Data:
* @Version:
*/
#include "queue_entity.h"
/**
* @brief
* @param input:
* @param output:
* @return none:
* @calls
* @calls by
* @others
*/
#ifdef TEST_MODEL_QUEUE
#define MAX_QUEUE_QSIZE 8u
typedef u32 queue_data_elem;
static sequential_queue_s Q1 ;
static queue_data_elem Q1buf[MAX_QUEUE_QSIZE]; /* 隊列 */
typedef struct
{
QUEUE_RIGHT_FLAG_E empty;
u16 length;
queue_data_elem value;
}queue_test_s;
static queue_test_s queue_test = {QUEUE_FALSE,0u,0u } ;
/*考虙到測試代碼中都包含11.4 條 批量過虙*/
/*PCLINT_ERROS_928*/ /*lint -e928 */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
/*考虙到測試代碼中都包含 該無返回值的過虙 批量過虙*/
/*PCLINT_ERROS*/ /*lint -e534 */ /*忽略該函數的返回結果*/
/**
* @brief Q中的某一個元素
* @param input: seq : i表示元素地址; fdo
* @param output: element: ;
* @return
* @calls
* @calls by
* @others
*/
void queue_test_task(void)
{
u16 i,j;
u16 start,end ;
queue_data_elem l_value;
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
/*PCLINT_ERROS_960*/ /*lint --e(960) */ /*表達式是函數參數 不能強制隱制轉換*/
queue_init(&Q1,(sequential_queue_elem*)&Q1buf[0],MAX_QUEUE_QSIZE,sizeof(queue_data_elem));
queue_test.empty = queue_get_empty(Q1); /* 初始化隊列 */
if(queue_test.empty == QUEUE_TRUE)
{
#if 0
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa2);
queue_add_element(&Q1,0xa3);
queue_add_element(&Q1,0xa4);
queue_add_element(&Q1,0xa5);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_add_element(&Q1,0xb1);
queue_add_element(&Q1,0xb2);
queue_add_element(&Q1,0xb3);
queue_add_element(&Q1,0xb4);
queue_add_element(&Q1,0xb5);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
queue_add_element(&Q1,0xc1);
queue_add_element(&Q1,0xc2);
queue_add_element(&Q1,0xc3);
queue_add_element(&Q1,0xc4);
queue_add_element(&Q1,0xc5);
queue_del_element(&Q1,&queue_test.value);
length = queue_get_length(Q1);
for(i=0;i<(MAX_QUEUE_QSIZE+5);i++)
{
queue_add_element(&Q1,0xa1 + i);
}
for(i=Q1.front;i<Q1.rear;i++)
{
if( Q1.base[i%MAX_QUEUE_QSIZE] != 0)
queue_del_element(&Q1,&queue_test.value);
}
length = queue_get_length(Q1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_del_element(&Q1,&queue_test.value);
queue_del_element(&Q1,&queue_test.value);
queue_del_element(&Q1,&queue_test.value);
queue_del_element(&Q1,&queue_test.value);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
queue_add_element(&Q1,0xa1);
length = queue_get_length(Q1);
if( length == 0u)
{
queue_add_element(&Q1,0xa1);
}
queue_del_element(&Q1,&queue_test.value);
queue_del_element(&Q1,&queue_test.value);
#else
l_value = 0xa1u;
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_del_one_element(&Q1,0u,(sequential_queue_elem*)&queue_test.value);
queue_del_one_element(&Q1,1u,(sequential_queue_elem*)&queue_test.value);
/*PCLINT_ERROS_928*/ /*lint --e(928) */ /* 928 11.4(建議): 不應在某類型對像指針和其他不同類型對像指針之間進行強制轉換。*/
queue_del_one_element(&Q1,3u,(sequential_queue_elem*)&queue_test.value);
queue_test.length = queue_get_length(Q1);
l_value = 0xa1u;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
/* queue_del_one_element(&Q1,5,&queue_test.value); */
queue_test.value = 9u;
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
l_value = 0xa1u;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
start = Q1.front;
end = start + queue_get_length(Q1);
#if 1
for(i=start;i<end;i++)
#else
//for(i=Q1.front;i<(Q1.front + QueueLength(Q1));i++)
#endif
{
j = i%Q1.length;
if( Q1buf[j] != 0u)
{
queue_del_one_element(&Q1,j,(sequential_queue_elem*)&queue_test.value);
queue_test.length = queue_get_length(Q1);
}
}
l_value = 0xa1u;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
l_value++;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
queue_test.length = queue_get_length(Q1);
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
queue_del_element(&Q1,(sequential_queue_elem*)&queue_test.value);
if( queue_test.length == 0u)
{
l_value = 0xa1u;
queue_add_element(&Q1,(sequential_queue_elem*)&l_value);
}
#endif
}
}
#endif