Initial request trajectory only if DCM active

This commit is contained in:
emanuel 2022-02-04 16:49:59 +00:00
parent c66539eaeb
commit 9982b5c5f8
1 changed files with 9 additions and 7 deletions

View File

@ -430,7 +430,7 @@ int facilities_config(void* facilities_s) {
mreq->choice.attributes.choice.get.clockType = 1; mreq->choice.attributes.choice.get.clockType = 1;
mreq->choice.attributes.choice.get.clock = 1; mreq->choice.attributes.choice.get.clock = 1;
mreq->choice.attributes.choice.get.clockOffset = 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); void* management_socket = zmq_socket(facilities->zmq.ctx, ZMQ_REQ);
zmq_connect(management_socket, facilities->zmq.management_address); zmq_connect(management_socket, facilities->zmq.management_address);
uint8_t buffer[256]; uint8_t buffer[256];
@ -451,7 +451,7 @@ int facilities_config(void* facilities_s) {
mrep->attributes->clock && mrep->attributes->clock &&
mrep->attributes->clockOffset && mrep->attributes->clockOffset &&
mrep->attributes->gpsType && 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 = mrep->attributes->coordinates->latitude;
facilities->epv.space.latitude_conf = mrep->attributes->coordinates->latitudeConfidence; facilities->epv.space.latitude_conf = mrep->attributes->coordinates->latitudeConfidence;
facilities->epv.space.longitude = mrep->attributes->coordinates->longitude; 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->clock, &facilities->epv.time.clock);
asn_INTEGER2ulong(mrep->attributes->clockOffset, &facilities->epv.time.offset); asn_INTEGER2ulong(mrep->attributes->clockOffset, &facilities->epv.time.offset);
facilities->epv.trajectory.len = mrep->attributes->trajectory->list.count; if (config->facilities.dcm.activate) {
for (int i = 0; i < mrep->attributes->trajectory->list.count; ++i) { facilities->epv.trajectory.len = mrep->attributes->trajectory->list.count;
facilities->epv.trajectory.path[i].latitude = mrep->attributes->trajectory->list.array[i]->latitude; for (int i = 0; i < mrep->attributes->trajectory->list.count; ++i) {
facilities->epv.trajectory.path[i].longitude = mrep->attributes->trajectory->list.array[i]->longitude; facilities->epv.trajectory.path[i].latitude = mrep->attributes->trajectory->list.array[i]->latitude;
asn_INTEGER2ulong(&mrep->attributes->trajectory->list.array[i]->timestamp, &facilities->epv.trajectory.path[i].timestamp); 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 { } else {
syslog_err("[applications] rejected MR attribute request"); syslog_err("[applications] rejected MR attribute request");