diff --git a/src/config.c b/src/config.c index d957a11..25b328c 100644 --- a/src/config.c +++ b/src/config.c @@ -430,7 +430,7 @@ int facilities_config(void* facilities_s) { mreq->choice.attributes.choice.get.clockType = 1; mreq->choice.attributes.choice.get.clock = 1; mreq->choice.attributes.choice.get.clockOffset = 1; - mreq->choice.attributes.choice.get.trajectory = 1; + mreq->choice.attributes.choice.get.trajectory = config->facilities.dcm.activate; void* management_socket = zmq_socket(facilities->zmq.ctx, ZMQ_REQ); zmq_connect(management_socket, facilities->zmq.management_address); uint8_t buffer[256]; @@ -451,7 +451,7 @@ int facilities_config(void* facilities_s) { mrep->attributes->clock && mrep->attributes->clockOffset && mrep->attributes->gpsType && - mrep->attributes->trajectory) { + (!!mrep->attributes->trajectory == mreq->choice.attributes.choice.get.trajectory)) { facilities->epv.space.latitude = mrep->attributes->coordinates->latitude; facilities->epv.space.latitude_conf = mrep->attributes->coordinates->latitudeConfidence; facilities->epv.space.longitude = mrep->attributes->coordinates->longitude; @@ -469,11 +469,13 @@ int facilities_config(void* facilities_s) { asn_INTEGER2ulong(mrep->attributes->clock, &facilities->epv.time.clock); asn_INTEGER2ulong(mrep->attributes->clockOffset, &facilities->epv.time.offset); - facilities->epv.trajectory.len = mrep->attributes->trajectory->list.count; - for (int i = 0; i < mrep->attributes->trajectory->list.count; ++i) { - facilities->epv.trajectory.path[i].latitude = mrep->attributes->trajectory->list.array[i]->latitude; - facilities->epv.trajectory.path[i].longitude = mrep->attributes->trajectory->list.array[i]->longitude; - asn_INTEGER2ulong(&mrep->attributes->trajectory->list.array[i]->timestamp, &facilities->epv.trajectory.path[i].timestamp); + if (config->facilities.dcm.activate) { + facilities->epv.trajectory.len = mrep->attributes->trajectory->list.count; + for (int i = 0; i < mrep->attributes->trajectory->list.count; ++i) { + facilities->epv.trajectory.path[i].latitude = mrep->attributes->trajectory->list.array[i]->latitude; + facilities->epv.trajectory.path[i].longitude = mrep->attributes->trajectory->list.array[i]->longitude; + asn_INTEGER2ulong(&mrep->attributes->trajectory->list.array[i]->timestamp, &facilities->epv.trajectory.path[i].timestamp); + } } } else { syslog_err("[applications] rejected MR attribute request");