Changed needed variables to static (CP Service)

This commit is contained in:
Marco Correia 2021-12-27 18:01:28 +00:00
parent 30397c9fb8
commit d495925f2e
1 changed files with 11 additions and 10 deletions

View File

@ -479,7 +479,7 @@ long rotate_y(long x, long y) {
return (long)(x * roadRotationSin + y * roadRotationCos); return (long)(x * roadRotationSin + y * roadRotationCos);
} }
void set_values(int i, int j, uint64_t timestamp, CPM_t* cpm_tx, long history_list[NOF_OBJECTS][5], int valid_array[]){ static void set_values(int i, int j, uint64_t timestamp, CPM_t* cpm_tx, long history_list[NOF_OBJECTS][4], int valid_array[], uint64_t history_timestamp[]){
/* Fill CPM */ /* Fill CPM */
cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.array[j] = calloc(1, sizeof(PerceivedObject_t)); cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.array[j] = calloc(1, sizeof(PerceivedObject_t));
cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.array[j]->objectID = (long)as_objects[i].u8_objectID; cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.array[j]->objectID = (long)as_objects[i].u8_objectID;
@ -505,11 +505,11 @@ void set_values(int i, int j, uint64_t timestamp, CPM_t* cpm_tx, long history_li
history_list[(long)as_objects[i].u8_objectID][1] = (long)as_objects[i].f_yPoint * 100; // yPoint (Distance) history_list[(long)as_objects[i].u8_objectID][1] = (long)as_objects[i].f_yPoint * 100; // yPoint (Distance)
history_list[(long)as_objects[i].u8_objectID][2] = (long)as_objects[i].f_xSpeed * 100; // xSpeed (Speed) history_list[(long)as_objects[i].u8_objectID][2] = (long)as_objects[i].f_xSpeed * 100; // xSpeed (Speed)
history_list[(long)as_objects[i].u8_objectID][3] = (long)as_objects[i].f_ySpeed * 100; // ySpeed (Speed) history_list[(long)as_objects[i].u8_objectID][3] = (long)as_objects[i].f_ySpeed * 100; // ySpeed (Speed)
history_list[(long)as_objects[i].u8_objectID][4] = timestamp; // Time stamp of detected object history_timestamp[(long)as_objects[i].u8_objectID] = timestamp; // Time stamp of detected object
} }
static int mk_cpm(facilities_t* facilities, uint8_t *bdr_oer, uint32_t *bdr_len, uint8_t *fdi_oer, uint32_t *fdi_len, long history_list[NOF_OBJECTS][5], int valid_array[]) { static int mk_cpm(facilities_t* facilities, uint8_t *bdr_oer, uint32_t *bdr_len, uint8_t *fdi_oer, uint32_t *fdi_len, long history_list[NOF_OBJECTS][4], int valid_array[], uint64_t history_timestamp[]) {
/* Variables */ /* Variables */
CPM_t* cpm_tx = calloc(1, sizeof(CPM_t)); CPM_t* cpm_tx = calloc(1, sizeof(CPM_t));
@ -580,7 +580,7 @@ static int mk_cpm(facilities_t* facilities, uint8_t *bdr_oer, uint32_t *bdr_len,
for(int i = 0; i < cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.count;i++){ for(int i = 0; i < cpm_tx->cpm.cpmParameters.perceivedObjectContainer->list.count;i++){
if(temp[(long)as_objects[i].u8_objectID] == 0 ){ // The object is going to be added without comparison (It is a new object) (valid_array[id] = 0) if(temp[(long)as_objects[i].u8_objectID] == 0 ){ // The object is going to be added without comparison (It is a new object) (valid_array[id] = 0)
set_values(i,j,generationDeltaTime,cpm_tx,history_list,valid_array); set_values(i,j,generationDeltaTime,cpm_tx,history_list,valid_array,history_timestamp);
j++; j++;
}else{ // The object is going to be compared (It was included in previous CPMs) (valid_array[id] = 1) }else{ // The object is going to be compared (It was included in previous CPMs) (valid_array[id] = 1)
@ -599,8 +599,8 @@ static int mk_cpm(facilities_t* facilities, uint8_t *bdr_oer, uint32_t *bdr_len,
// Requirements to include the object in the CPM (> 4 m or > 0.5 m/s or > 4º or > T_GenCpmMax) // Requirements to include the object in the CPM (> 4 m or > 0.5 m/s or > 4º or > T_GenCpmMax)
if(abs(euclidian_dist) > 400 || abs(abs_speed - abs_speed_hist) > 50 || abs(angle_diff) > 4 || abs(generationDeltaTime - history_list[i][4]) >= facilities->dissemination->T_GenCpmMax){ if(abs(euclidian_dist) > 400 || abs(abs_speed - abs_speed_hist) > 50 || abs(angle_diff) > 4 || abs(generationDeltaTime - history_timestamp[i]) >= facilities->dissemination->T_GenCpmMax){
set_values(i,j,generationDeltaTime,cpm_tx, history_list, valid_array); set_values(i,j,generationDeltaTime,cpm_tx, history_list, valid_array,history_timestamp);
j++; j++;
}else{ //The object is not included but is valid for comparison in the upcoming CPMs }else{ //The object is not included but is valid for comparison in the upcoming CPMs
@ -652,12 +652,14 @@ void *cp_service(void *fc){
u_int8_t au8_readBuffer[READ_BUFFER_SIZE]; u_int8_t au8_readBuffer[READ_BUFFER_SIZE];
u_int8_t au8_readTcp[READ_BUFFER_SIZE]; u_int8_t au8_readTcp[READ_BUFFER_SIZE];
bool is_radar_connected; bool is_radar_connected;
long history_list[NOF_OBJECTS][5]; static long history_list[NOF_OBJECTS][4];
int valid_array[NOF_OBJECTS]; static int valid_array[NOF_OBJECTS];
static uint64_t history_timestamp[NOF_OBJECTS];
facilities_t *facilities = (facilities_t *) fc; facilities_t *facilities = (facilities_t *) fc;
memset(history_list, 0, sizeof(history_list)); memset(history_list, 0, sizeof(history_list));
memset(valid_array, 0, sizeof(valid_array)); memset(valid_array, 0, sizeof(valid_array));
memset(history_timestamp, 0, sizeof(history_timestamp));
uint8_t tr_oer[2048]; uint8_t tr_oer[2048];
uint8_t fi_oer[2048]; uint8_t fi_oer[2048];
@ -712,7 +714,6 @@ void *cp_service(void *fc){
/* Reads from the radar */ /* Reads from the radar */
i32_recv_bytes = recv(raw_socket.raw_fd, &au8_readBuffer, READ_BUFFER_SIZE, 0); i32_recv_bytes = recv(raw_socket.raw_fd, &au8_readBuffer, READ_BUFFER_SIZE, 0);
syslog_debug("DEBUG : %d", i32_recv_bytes);
if (dissemination_check(facilities->dissemination, &facilities->epv,1) && facilities->dissemination->active){ if (dissemination_check(facilities->dissemination, &facilities->epv,1) && facilities->dissemination->active){
if(is_radar_connected){ if(is_radar_connected){
@ -720,7 +721,7 @@ void *cp_service(void *fc){
parse_input(au8_readBuffer,i32_recv_bytes); parse_input(au8_readBuffer,i32_recv_bytes);
/* CPM build and encoding to BDR and FDI */ /* CPM build and encoding to BDR and FDI */
if(mk_cpm(facilities, bpr->data.buf, (uint32_t *) &bpr->data.size, fmi->data.buf, (uint32_t *) &fmi->data.size, history_list, valid_array) == 1) if(mk_cpm(facilities, bpr->data.buf, (uint32_t *) &bpr->data.size, fmi->data.buf, (uint32_t *) &fmi->data.size, history_list, valid_array, history_timestamp) == 1)
continue; continue;
/* Encode TransportRequest */ /* Encode TransportRequest */