DCM acceptedTrajectoriesIds

This commit is contained in:
emanuel 2022-02-16 19:03:53 +00:00
parent e21ad9ee0f
commit f17838cdca
1 changed files with 6 additions and 20 deletions

View File

@ -109,25 +109,11 @@ static int dcm_check_handle_request(facilities_t* facilities, DCM_t* dcm) {
dcm_rep->dcm.negotiation = calloc(1, sizeof(CoordinationNegotiation_t)); dcm_rep->dcm.negotiation = calloc(1, sizeof(CoordinationNegotiation_t));
dcm_rep->dcm.negotiation->present = CoordinationNegotiation_PR_reply; dcm_rep->dcm.negotiation->present = CoordinationNegotiation_PR_reply;
dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.count = 1; dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.count = 1;
dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.size = sizeof(void*); dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.size = sizeof(void*);
dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array = malloc(1*sizeof(void*)); dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array = malloc(1*sizeof(void*));
dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array[0] = calloc(1,sizeof(AcceptedTrajectory_t)); dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array[0] = malloc(sizeof(long));
AcceptedTrajectory_t* at = dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectories.list.array[0]; *dcm_rep->dcm.negotiation->choice.reply.acceptedTrajectoriesIds.list.array[0] = pt->id;
at->trajectory.list.count = pt->trajectory.list.count;
at->trajectory.list.size = sizeof(void*) * pt->trajectory.list.count;
at->trajectory.list.array = malloc(sizeof(void*) * pt->trajectory.list.count);
for (int i = 0; i < pt->trajectory.list.count; ++i) {
at->trajectory.list.array[i] = calloc(1, sizeof(STPoint_t));
at->trajectory.list.array[i]->latitude = pt->trajectory.list.array[i]->latitude;
at->trajectory.list.array[i]->longitude = pt->trajectory.list.array[i]->longitude;
at->trajectory.list.array[i]->timestamp.buf = malloc(pt->trajectory.list.array[i]->timestamp.size);
memcpy(at->trajectory.list.array[i]->timestamp.buf, pt->trajectory.list.array[i]->timestamp.buf, pt->trajectory.list.array[i]->timestamp.size);
at->trajectory.list.array[i]->timestamp.size = pt->trajectory.list.array[i]->timestamp.size;
}
at->id = pt->id;
asn_enc_rval_t enc = asn_encode_to_buffer(NULL, ATS_UNALIGNED_CANONICAL_PER, &asn_DEF_DCM, dcm_rep, buf, buf_len); asn_enc_rval_t enc = asn_encode_to_buffer(NULL, ATS_UNALIGNED_CANONICAL_PER, &asn_DEF_DCM, dcm_rep, buf, buf_len);
if (enc.encoded == -1) { if (enc.encoded == -1) {
@ -180,7 +166,7 @@ static int dcm_check_handle_reply(facilities_t* facilities, DCM_t* dcm) {
CoordinationReply_t* coo_rep = &dcm->dcm.negotiation->choice.reply; CoordinationReply_t* coo_rep = &dcm->dcm.negotiation->choice.reply;
syslog_info("[facilities] [dc] received coordination reply with %d accepted trajectories", coo_rep->acceptedTrajectories.list.count); syslog_info("[facilities] [dc] received coordination reply with %d accepted trajectories", coo_rep->acceptedTrajectoriesIds.list.count);
return rv; return rv;
} }