Changes to last commit
This commit is contained in:
parent
1e3765e53b
commit
44135c4882
70
src/cpm.c
70
src/cpm.c
|
|
@ -73,7 +73,7 @@ bool radar_connection(char* radar_port, facilities_t* facilities){
|
|||
|
||||
if(facilities->dissemination->tmc_connect == false){
|
||||
|
||||
// Create socket
|
||||
// Create TCP socket
|
||||
s_socket.i32_socket = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
if(s_socket.i32_socket < 0){
|
||||
|
|
@ -96,22 +96,6 @@ bool radar_connection(char* radar_port, facilities_t* facilities){
|
|||
if(!waitingIncomingConnection()){
|
||||
return false;
|
||||
}
|
||||
|
||||
// Listening to the socket (Waiting for incoming connection)
|
||||
unsigned int len = sizeof(s_socket.s_client);
|
||||
|
||||
if(listen(s_socket.i32_socket,1)<0){
|
||||
syslog_err("Waiting for incoming requests failed...");
|
||||
return false;
|
||||
}
|
||||
|
||||
if((s_socket.i32_client = accept(s_socket.i32_socket, (struct sockaddr*)&s_socket.s_server, &len)) < 0){
|
||||
syslog_err("Client disconnected...");
|
||||
return false;
|
||||
}
|
||||
|
||||
syslog_debug("Radar connected");
|
||||
|
||||
}
|
||||
|
||||
// Create RAW socket
|
||||
|
|
@ -697,8 +681,6 @@ void *cp_service(void *fc){
|
|||
|
||||
/* Creating sockets and waiting for radar to connect*/
|
||||
is_radar_connected = radar_connection(RADAR_PORT,facilities);
|
||||
radar_connection(RADAR_PORT,facilities);
|
||||
|
||||
|
||||
while(!facilities->exit){
|
||||
usleep(1000*50);
|
||||
|
|
@ -713,37 +695,37 @@ void *cp_service(void *fc){
|
|||
|
||||
if (dissemination_check(facilities->dissemination, &facilities->epv,1) && facilities->dissemination->active){
|
||||
if(is_radar_connected){
|
||||
/* Information parsing from radar */
|
||||
parse_input(au8_readBuffer,i32_recv_bytes);
|
||||
/* Information parsing from radar */
|
||||
parse_input(au8_readBuffer,i32_recv_bytes);
|
||||
|
||||
/* 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) == 1)
|
||||
continue;
|
||||
/* 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) == 1)
|
||||
continue;
|
||||
|
||||
/* Encode TransportRequest */
|
||||
asn_enc_rval_t enc_tdr = oer_encode_to_buffer(&asn_DEF_TransportRequest, NULL, tr, tr_oer+1, 2047);
|
||||
if(enc_tdr.encoded == -1){
|
||||
syslog_err("[facilities] encoding TR for cpm failed");
|
||||
continue;
|
||||
}
|
||||
/* Encode TransportRequest */
|
||||
asn_enc_rval_t enc_tdr = oer_encode_to_buffer(&asn_DEF_TransportRequest, NULL, tr, tr_oer+1, 2047);
|
||||
if(enc_tdr.encoded == -1){
|
||||
syslog_err("[facilities] encoding TR for cpm failed");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Encode FacilitiesIndication */
|
||||
asn_enc_rval_t enc_fdi = oer_encode_to_buffer(&asn_DEF_FacilitiesIndication, NULL, fi, fi_oer+1, 2047);
|
||||
if(enc_fdi.encoded == -1){
|
||||
syslog_err("[facilities] encoding FI for cpm failed");
|
||||
continue;
|
||||
}
|
||||
/* Encode FacilitiesIndication */
|
||||
asn_enc_rval_t enc_fdi = oer_encode_to_buffer(&asn_DEF_FacilitiesIndication, NULL, fi, fi_oer+1, 2047);
|
||||
if(enc_fdi.encoded == -1){
|
||||
syslog_err("[facilities] encoding FI for cpm failed");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Create thread to send packet to the Transport Layer (=3) */
|
||||
queue_add(facilities->tx_queue, tr_oer, enc_tdr.encoded+1, 3);
|
||||
pthread_cond_signal(&facilities->tx_queue->trigger);
|
||||
/* Create thread to send packet to the Transport Layer (=3) */
|
||||
queue_add(facilities->tx_queue, tr_oer, enc_tdr.encoded+1, 3);
|
||||
pthread_cond_signal(&facilities->tx_queue->trigger);
|
||||
|
||||
/* Create thread to send packet to the Applications Layer (=5) */
|
||||
queue_add(facilities->tx_queue, fi_oer, enc_fdi.encoded+1, 5);
|
||||
pthread_cond_signal(&facilities->tx_queue->trigger);
|
||||
/* Create thread to send packet to the Applications Layer (=5) */
|
||||
queue_add(facilities->tx_queue, fi_oer, enc_fdi.encoded+1, 5);
|
||||
pthread_cond_signal(&facilities->tx_queue->trigger);
|
||||
|
||||
/*Reset Timer for dissemination control */
|
||||
dissemination_reset_timer(facilities->dissemination, &facilities->epv,1);
|
||||
/*Reset Timer for dissemination control */
|
||||
dissemination_reset_timer(facilities->dissemination, &facilities->epv,1);
|
||||
|
||||
}else{
|
||||
is_radar_connected = waitingIncomingConnection();
|
||||
|
|
|
|||
Loading…
Reference in New Issue