GPS fixed
This commit is contained in:
parent
ac8b0e24fb
commit
e55a3782a5
|
|
@ -155,6 +155,7 @@ static int mk_cam(facilities_t* facilities, uint8_t *cam, uint32_t *cam_len) {
|
||||||
cam_tx->cam.camParameters.basicContainer.referencePosition.altitude.altitudeConfidence = AltitudeConfidence_unavailable;
|
cam_tx->cam.camParameters.basicContainer.referencePosition.altitude.altitudeConfidence = AltitudeConfidence_unavailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!facilities->gps_fixed) {
|
||||||
if (!isnan(gps_data.gps_latitude)) {
|
if (!isnan(gps_data.gps_latitude)) {
|
||||||
cam_tx->cam.camParameters.basicContainer.referencePosition.latitude = (int32_t)((gps_data.gps_latitude) * 10000000);
|
cam_tx->cam.camParameters.basicContainer.referencePosition.latitude = (int32_t)((gps_data.gps_latitude) * 10000000);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -166,6 +167,11 @@ static int mk_cam(facilities_t* facilities, uint8_t *cam, uint32_t *cam_len) {
|
||||||
} else {
|
} else {
|
||||||
cam_tx->cam.camParameters.basicContainer.referencePosition.longitude = Longitude_unavailable;
|
cam_tx->cam.camParameters.basicContainer.referencePosition.longitude = Longitude_unavailable;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
cam_tx->cam.camParameters.basicContainer.referencePosition.latitude = (int32_t)((facilities->latitude) * 10000000);
|
||||||
|
cam_tx->cam.camParameters.basicContainer.referencePosition.longitude = (int32_t)((facilities->longitude) * 10000000);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
cam_tx->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence = SemiAxisLength_unavailable;
|
cam_tx->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMinorConfidence = SemiAxisLength_unavailable;
|
||||||
cam_tx->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence = SemiAxisLength_unavailable;
|
cam_tx->cam.camParameters.basicContainer.referencePosition.positionConfidenceEllipse.semiMajorConfidence = SemiAxisLength_unavailable;
|
||||||
|
|
|
||||||
33
src/config.c
33
src/config.c
|
|
@ -63,6 +63,21 @@ static int extract_val_int(int64_t * output, toml_table_t *table, char* name) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int extract_val_double(double * output, toml_table_t *table, char* name) {
|
||||||
|
toml_raw_t raw;
|
||||||
|
if (0 == (raw = toml_raw_in(table, name))) {
|
||||||
|
syslog_err("[itss] [config] error extracting %s from file", name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toml_rtod(raw, output)) {
|
||||||
|
syslog_err("[itss] [config] error extracting %s to double", name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int itss_config(void* facilities_s, char* config_file) {
|
int itss_config(void* facilities_s, char* config_file) {
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
|
|
||||||
|
|
@ -88,7 +103,7 @@ int itss_config(void* facilities_s, char* config_file) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
// Tables
|
// Tables
|
||||||
toml_table_t *general, *security, *denm, *cam, *beacon, *replay, *ivim, *protected_zones;
|
toml_table_t *general, *security, *denm, *cam, *beacon, *replay, *ivim, *protected_zones, *gps;
|
||||||
|
|
||||||
if (0 == (general = toml_table_in(conf, "general"))) {syslog_err("[facilities] [config] failed locating [general] table"); return 1;}
|
if (0 == (general = toml_table_in(conf, "general"))) {syslog_err("[facilities] [config] failed locating [general] table"); return 1;}
|
||||||
if (0 == (security = toml_table_in(conf, "security"))) {syslog_err("[facilities] [config] failed locating [security] table"); return 1;}
|
if (0 == (security = toml_table_in(conf, "security"))) {syslog_err("[facilities] [config] failed locating [security] table"); return 1;}
|
||||||
|
|
@ -97,8 +112,7 @@ int itss_config(void* facilities_s, char* config_file) {
|
||||||
if (0 == (replay = toml_table_in(conf, "replay"))) {syslog_err("[facilities] [config] failed locating [replay] table"); return 1;}
|
if (0 == (replay = toml_table_in(conf, "replay"))) {syslog_err("[facilities] [config] failed locating [replay] table"); return 1;}
|
||||||
if (0 == (ivim = toml_table_in(conf, "ivim"))) {syslog_err("[facilities] [config] failed locating [ivim] table"); return 1;}
|
if (0 == (ivim = toml_table_in(conf, "ivim"))) {syslog_err("[facilities] [config] failed locating [ivim] table"); return 1;}
|
||||||
if (0 == (protected_zones = toml_table_in(conf, "protected-zones"))) {syslog_err("[facilities] [config] failed locating [protected-zones] table"); return 1;}
|
if (0 == (protected_zones = toml_table_in(conf, "protected-zones"))) {syslog_err("[facilities] [config] failed locating [protected-zones] table"); return 1;}
|
||||||
|
if (0 == (gps = toml_table_in(conf, "gps"))) {syslog_err("[facilities] [config] failed locating [gps] table"); return 1;}
|
||||||
|
|
||||||
|
|
||||||
// Values
|
// Values
|
||||||
// General
|
// General
|
||||||
|
|
@ -222,9 +236,18 @@ int itss_config(void* facilities_s, char* config_file) {
|
||||||
free(pz_path);
|
free(pz_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int gps_fixed = 0;
|
||||||
|
rv += extract_val_bool(&gps_fixed, gps, "fixed");
|
||||||
|
facilities->gps_fixed = gps_fixed;
|
||||||
|
if (gps_fixed) {
|
||||||
|
double latitude;
|
||||||
|
rv += extract_val_double(&latitude, gps, "latitude");
|
||||||
|
facilities->latitude = latitude;
|
||||||
|
|
||||||
|
double longitude;
|
||||||
|
rv += extract_val_double(&longitude, gps, "longitude");
|
||||||
|
facilities->longitude = longitude;
|
||||||
|
}
|
||||||
|
|
||||||
toml_free(conf);
|
toml_free(conf);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,10 @@ typedef struct facilities {
|
||||||
uint64_t station_id;
|
uint64_t station_id;
|
||||||
bool id_random;
|
bool id_random;
|
||||||
|
|
||||||
|
bool gps_fixed;
|
||||||
|
double latitude;
|
||||||
|
double longitude;
|
||||||
|
|
||||||
bool exit;
|
bool exit;
|
||||||
} facilities_t;
|
} facilities_t;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue