mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-11-09 19:53:04 +00:00
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next_fpga
This commit is contained in:
@@ -194,7 +194,8 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
|||||||
int num_bands = 0;
|
int num_bands = 0;
|
||||||
if ((gps_1C_count > 0) || (gal_1B_count > 0)) num_bands = 1;
|
if ((gps_1C_count > 0) || (gal_1B_count > 0)) num_bands = 1;
|
||||||
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) ) num_bands = 2;
|
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) ) num_bands = 2;
|
||||||
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) && ((gal_E5a_count > 0) || (gal_E5a_count > 0))) num_bands = 3;
|
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && ((gal_E5a_count > 0) || (gal_E5b_count > 0)) ) num_bands = 2;
|
||||||
|
if (((gps_1C_count > 0) || (gal_1B_count > 0)) && (gps_2S_count > 0) && ((gal_E5a_count > 0) || (gal_E5b_count > 0))) num_bands = 3;
|
||||||
int number_of_frequencies = configuration->property(role + ".num_bands", num_bands); /* (1:L1, 2:L1+L2, 3:L1+L2+L5) */
|
int number_of_frequencies = configuration->property(role + ".num_bands", num_bands); /* (1:L1, 2:L1+L2, 3:L1+L2+L5) */
|
||||||
if( (number_of_frequencies < 1) || (number_of_frequencies > 3) )
|
if( (number_of_frequencies < 1) || (number_of_frequencies > 3) )
|
||||||
{
|
{
|
||||||
@@ -382,7 +383,7 @@ RtklibPvt::RtklibPvt(ConfigurationInterface* configuration,
|
|||||||
iono_model, /* ionosphere option (IONOOPT_XXX) */
|
iono_model, /* ionosphere option (IONOOPT_XXX) */
|
||||||
trop_model, /* troposphere option (TROPOPT_XXX) */
|
trop_model, /* troposphere option (TROPOPT_XXX) */
|
||||||
dynamics_model, /* dynamics model (0:none, 1:velocity, 2:accel) */
|
dynamics_model, /* dynamics model (0:none, 1:velocity, 2:accel) */
|
||||||
earth_tide, /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */
|
earth_tide, /* earth tide correction (0:off,1:solid,2:solid+otl+pole) */
|
||||||
number_filter_iter, /* number of filter iteration */
|
number_filter_iter, /* number of filter iteration */
|
||||||
0, /* code smoothing window size (0:none) */
|
0, /* code smoothing window size (0:none) */
|
||||||
0, /* interpolate reference obs (for post mission) */
|
0, /* interpolate reference obs (for post mission) */
|
||||||
|
|||||||
@@ -144,4 +144,3 @@ gr::basic_block_sptr PulseBlankingFilter::get_right_block()
|
|||||||
LOG(ERROR) << " Unknown input filter input/output item type conversion";
|
LOG(ERROR) << " Unknown input filter input/output item type conversion";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,8 +76,6 @@ private:
|
|||||||
std::string input_item_type_;
|
std::string input_item_type_;
|
||||||
size_t input_size_;
|
size_t input_size_;
|
||||||
std::string output_item_type_;
|
std::string output_item_type_;
|
||||||
double intermediate_freq_;
|
|
||||||
double sampling_freq_;
|
|
||||||
std::string role_;
|
std::string role_;
|
||||||
unsigned int in_streams_;
|
unsigned int in_streams_;
|
||||||
unsigned int out_streams_;
|
unsigned int out_streams_;
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ double var_uraeph(int ura)
|
|||||||
2.4, 3.4, 4.85, 6.85, 9.65, 13.65, 24.0, 48.0, 96.0, 192.0, 384.0, 768.0, 1536.0,
|
2.4, 3.4, 4.85, 6.85, 9.65, 13.65, 24.0, 48.0, 96.0, 192.0, 384.0, 768.0, 1536.0,
|
||||||
3072.0, 6144.0
|
3072.0, 6144.0
|
||||||
};
|
};
|
||||||
return ura < 0 || 15 < ura ? std::pow(6144.0, 2.0) : std::pow(ura_value[ura], 2.0);
|
return ura < 0 || 14 < ura ? std::pow(6144.0, 2.0) : std::pow(ura_value[ura], 2.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -394,15 +394,18 @@ void readtec(const char *file, nav_t *nav, int opt)
|
|||||||
trace(2, "ionex file open error %s\n", efiles[i]);
|
trace(2, "ionex file open error %s\n", efiles[i]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* read ionex header */
|
else
|
||||||
if (readionexh(fp, lats, lons, hgts, &rb, &nexp, dcb, rms) <= 0.0)
|
|
||||||
{
|
{
|
||||||
trace(2, "ionex file format error %s\n", efiles[i]);
|
/* read ionex header */
|
||||||
continue;
|
if (readionexh(fp, lats, lons, hgts, &rb, &nexp, dcb, rms) <= 0.0)
|
||||||
|
{
|
||||||
|
trace(2, "ionex file format error %s\n", efiles[i]);
|
||||||
|
fclose(fp);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* read ionex body */
|
||||||
|
readionexb(fp, lats, lons, hgts, rb, nexp, nav);
|
||||||
}
|
}
|
||||||
/* read ionex body */
|
|
||||||
readionexb(fp, lats, lons, hgts, rb, nexp, nav);
|
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
for (i = 0; i < MAXEXFILE; i++) free(efiles[i]);
|
for (i = 0; i < MAXEXFILE; i++) free(efiles[i]);
|
||||||
|
|||||||
@@ -364,7 +364,8 @@ int valsol(const double *azel, const int *vsat, int n,
|
|||||||
const prcopt_t *opt, const double *v, int nv, int nx,
|
const prcopt_t *opt, const double *v, int nv, int nx,
|
||||||
char *msg)
|
char *msg)
|
||||||
{
|
{
|
||||||
double azels[MAXOBS*2], dop[4], vv;
|
double azels[MAXOBS*2] = {0};
|
||||||
|
double dop[4], vv;
|
||||||
int i, ns;
|
int i, ns;
|
||||||
|
|
||||||
trace(3, "valsol : n=%d nv=%d\n", n, nv);
|
trace(3, "valsol : n=%d nv=%d\n", n, nv);
|
||||||
|
|||||||
@@ -461,7 +461,11 @@ int fix_amb_ILS(rtk_t *rtk, int *sat1, int *sat2, int *NW, int n)
|
|||||||
sat2[m] = sat2[i];
|
sat2[m] = sat2[i];
|
||||||
NW[m++] = NW[i];
|
NW[m++] = NW[i];
|
||||||
}
|
}
|
||||||
if (m<3) return 0;
|
if (m<3)
|
||||||
|
{
|
||||||
|
free(B1); free(N1); free(D); free(E); free(Q); free(NC);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* covariance of narrow-lane ambiguities */
|
/* covariance of narrow-lane ambiguities */
|
||||||
matmul("TN", m, rtk->nx, rtk->nx, 1.0, D, rtk->P, 0.0, E);
|
matmul("TN", m, rtk->nx, rtk->nx, 1.0, D, rtk->P, 0.0, E);
|
||||||
@@ -471,9 +475,14 @@ int fix_amb_ILS(rtk_t *rtk, int *sat1, int *sat2, int *NW, int n)
|
|||||||
if ((info = lambda(m, 2, B1, Q, N1, s)))
|
if ((info = lambda(m, 2, B1, Q, N1, s)))
|
||||||
{
|
{
|
||||||
trace(2, "lambda error: info=%d\n", info);
|
trace(2, "lambda error: info=%d\n", info);
|
||||||
|
free(B1); free(N1); free(D); free(E); free(Q); free(NC);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (s[0] <= 0.0)
|
||||||
|
{
|
||||||
|
free(B1); free(N1); free(D); free(E); free(Q); free(NC);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (s[0] <= 0.0) return 0;
|
|
||||||
|
|
||||||
rtk->sol.ratio = (float)(MIN_PPP(s[1]/s[0], 999.9));
|
rtk->sol.ratio = (float)(MIN_PPP(s[1]/s[0], 999.9));
|
||||||
|
|
||||||
@@ -481,6 +490,7 @@ int fix_amb_ILS(rtk_t *rtk, int *sat1, int *sat2, int *NW, int n)
|
|||||||
if (rtk->opt.thresar[0]>0.0 && rtk->sol.ratio<rtk->opt.thresar[0])
|
if (rtk->opt.thresar[0]>0.0 && rtk->sol.ratio<rtk->opt.thresar[0])
|
||||||
{
|
{
|
||||||
trace(2, "varidation error: n=%2d ratio=%8.3f\n", m, rtk->sol.ratio);
|
trace(2, "varidation error: n=%2d ratio=%8.3f\n", m, rtk->sol.ratio);
|
||||||
|
free(B1); free(N1); free(D); free(E); free(Q); free(NC);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
trace(2, "varidation ok: %s n=%2d ratio=%8.3f\n", time_str(rtk->sol.time, 0), m,
|
trace(2, "varidation ok: %s n=%2d ratio=%8.3f\n", time_str(rtk->sol.time, 0), m,
|
||||||
@@ -889,7 +899,7 @@ void testeclipse(const obsd_t *obs, int n, const nav_t *nav, double *rs)
|
|||||||
|
|
||||||
/* unit vector of sun direction (ecef) */
|
/* unit vector of sun direction (ecef) */
|
||||||
sunmoonpos(gpst2utc(obs[0].time), erpv, rsun, NULL, NULL);
|
sunmoonpos(gpst2utc(obs[0].time), erpv, rsun, NULL, NULL);
|
||||||
normv3(rsun, esun);
|
if(normv3(rsun, esun) == 0) trace(1, "Error computing the norm");
|
||||||
|
|
||||||
for (i = 0;i<n;i++)
|
for (i = 0;i<n;i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -355,8 +355,7 @@ void readsp3(const char *file, nav_t *nav, int opt)
|
|||||||
*-----------------------------------------------------------------------------*/
|
*-----------------------------------------------------------------------------*/
|
||||||
int readsap(const char *file, gtime_t time, nav_t *nav)
|
int readsap(const char *file, gtime_t time, nav_t *nav)
|
||||||
{
|
{
|
||||||
pcv_t aux = { 0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
pcvs_t pcvs = {0, 0, (pcv_t*){ 0 } };
|
||||||
pcvs_t pcvs = {0, 0, &aux };
|
|
||||||
pcv_t pcv0 = { 0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} }, *pcv;
|
pcv_t pcv0 = { 0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} }, *pcv;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -369,7 +368,7 @@ int readsap(const char *file, gtime_t time, nav_t *nav)
|
|||||||
pcv = searchpcv(i + 1, "", time, &pcvs);
|
pcv = searchpcv(i + 1, "", time, &pcvs);
|
||||||
nav->pcvs[i] = pcv ? *pcv : pcv0;
|
nav->pcvs[i] = pcv ? *pcv : pcv0;
|
||||||
}
|
}
|
||||||
free(pcvs.pcv);
|
free(pcv);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -530,7 +529,11 @@ int readfcbf(const char *file, nav_t *nav)
|
|||||||
if (!(sat = satid2no(str))) continue;
|
if (!(sat = satid2no(str))) continue;
|
||||||
ts = epoch2time(ep1);
|
ts = epoch2time(ep1);
|
||||||
te = epoch2time(ep2);
|
te = epoch2time(ep2);
|
||||||
if (!addfcb(nav, ts, te, sat, bias, std)) return 0;
|
if (!addfcb(nav, ts, te, sat, bias, std))
|
||||||
|
{
|
||||||
|
fclose(fp);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -567,13 +567,20 @@ void setcodepri(int sys, int freq, const char *pri)
|
|||||||
trace(3, "setcodepri : sys=%d freq=%d pri=%s\n", sys, freq, pri);
|
trace(3, "setcodepri : sys=%d freq=%d pri=%s\n", sys, freq, pri);
|
||||||
|
|
||||||
if (freq <= 0 || MAXFREQ<freq) return;
|
if (freq <= 0 || MAXFREQ<freq) return;
|
||||||
if (sys&SYS_GPS) strcpy(codepris[0][freq-1], pri);
|
if(strlen(pri) < 17)
|
||||||
if (sys&SYS_GLO) strcpy(codepris[1][freq-1], pri);
|
{
|
||||||
if (sys&SYS_GAL) strcpy(codepris[2][freq-1], pri);
|
if (sys&SYS_GPS) strcpy(codepris[0][freq-1], pri);
|
||||||
if (sys&SYS_QZS) strcpy(codepris[3][freq-1], pri);
|
if (sys&SYS_GLO) strcpy(codepris[1][freq-1], pri);
|
||||||
if (sys&SYS_SBS) strcpy(codepris[4][freq-1], pri);
|
if (sys&SYS_GAL) strcpy(codepris[2][freq-1], pri);
|
||||||
if (sys&SYS_BDS) strcpy(codepris[5][freq-1], pri);
|
if (sys&SYS_QZS) strcpy(codepris[3][freq-1], pri);
|
||||||
if (sys&SYS_IRN) strcpy(codepris[6][freq-1], pri);
|
if (sys&SYS_SBS) strcpy(codepris[4][freq-1], pri);
|
||||||
|
if (sys&SYS_BDS) strcpy(codepris[5][freq-1], pri);
|
||||||
|
if (sys&SYS_IRN) strcpy(codepris[6][freq-1], pri);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace(1, "pri array is too long");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2133,7 +2140,7 @@ int readngspcv(const char *file, pcvs_t *pcvs)
|
|||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
static const pcv_t pcv0 = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
static const pcv_t pcv0 = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
||||||
pcv_t pcv;
|
pcv_t pcv = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
||||||
double neu[3];
|
double neu[3];
|
||||||
int n = 0;
|
int n = 0;
|
||||||
char buff[256];
|
char buff[256];
|
||||||
@@ -2187,7 +2194,7 @@ int readantex(const char *file, pcvs_t *pcvs)
|
|||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
static const pcv_t pcv0 = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
static const pcv_t pcv0 = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
||||||
pcv_t pcv;
|
pcv_t pcv = {0, {}, {}, {0,0}, {0,0}, {{},{}}, {{},{}} };
|
||||||
double neu[3];
|
double neu[3];
|
||||||
int i, f, freq = 0, state = 0, freqs[] = {1, 2, 5, 6, 7, 8, 0};
|
int i, f, freq = 0, state = 0, freqs[] = {1, 2, 5, 6, 7, 8, 0};
|
||||||
char buff[256];
|
char buff[256];
|
||||||
@@ -2317,12 +2324,13 @@ pcv_t *searchpcv(int sat, const char *type, gtime_t time,
|
|||||||
const pcvs_t *pcvs)
|
const pcvs_t *pcvs)
|
||||||
{
|
{
|
||||||
pcv_t *pcv;
|
pcv_t *pcv;
|
||||||
char buff[MAXANT], *types[2], *p;
|
char buff[MAXANT] = "", *types[2], *p;
|
||||||
int i, j, n = 0;
|
int i, j, n = 0;
|
||||||
|
|
||||||
trace(3, "searchpcv: sat=%2d type=%s\n", sat, type);
|
trace(3, "searchpcv: sat=%2d type=%s\n", sat, type);
|
||||||
|
|
||||||
if (sat) { /* search satellite antenna */
|
if (sat)
|
||||||
|
{ /* search satellite antenna */
|
||||||
for (i = 0; i<pcvs->n; i++)
|
for (i = 0; i<pcvs->n; i++)
|
||||||
{
|
{
|
||||||
pcv = pcvs->pcv+i;
|
pcv = pcvs->pcv+i;
|
||||||
@@ -2331,10 +2339,14 @@ pcv_t *searchpcv(int sat, const char *type, gtime_t time,
|
|||||||
if (pcv->te.time != 0 && timediff(pcv->te, time)<0.0) continue;
|
if (pcv->te.time != 0 && timediff(pcv->te, time)<0.0) continue;
|
||||||
return pcv;
|
return pcv;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
strcpy(buff, type);
|
if(strlen(type) < MAXANT +1 ) strcpy(buff, type);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace(1, "type array is too long");
|
||||||
|
}
|
||||||
for (p = strtok(buff, " "); p && n<2; p = strtok(NULL, " ")) types[n++] = p;
|
for (p = strtok(buff, " "); p && n<2; p = strtok(NULL, " ")) types[n++] = p;
|
||||||
if (n <= 0) return NULL;
|
if (n <= 0) return NULL;
|
||||||
|
|
||||||
@@ -3013,7 +3025,8 @@ void traceopen(const char *file)
|
|||||||
|
|
||||||
reppath(file, path, time, "", "");
|
reppath(file, path, time, "", "");
|
||||||
if (!*path || !(fp_trace = fopen(path, "w"))) fp_trace = stderr;
|
if (!*path || !(fp_trace = fopen(path, "w"))) fp_trace = stderr;
|
||||||
strcpy(file_trace, file);
|
if (strlen(file) < 1025) strcpy(file_trace, file);
|
||||||
|
else trace(1, "file array is too long");
|
||||||
tick_trace = tickget();
|
tick_trace = tickget();
|
||||||
time_trace = time;
|
time_trace = time;
|
||||||
initlock(&lock_trace);
|
initlock(&lock_trace);
|
||||||
@@ -3224,11 +3237,12 @@ void createdir(const char *path)
|
|||||||
char buff[1024], *p;
|
char buff[1024], *p;
|
||||||
//tracet(3, "createdir: path=%s\n", path);
|
//tracet(3, "createdir: path=%s\n", path);
|
||||||
|
|
||||||
strcpy(buff, path);
|
if(strlen(path) < 1025) strcpy(buff, path);
|
||||||
|
else trace(1, "path is too long");
|
||||||
if (!(p = strrchr(buff, FILEPATHSEP))) return;
|
if (!(p = strrchr(buff, FILEPATHSEP))) return;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
|
|
||||||
mkdir(buff, 0777);
|
if(mkdir(buff, 0777) != 0) trace(1, "Error creating folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -3246,7 +3260,9 @@ int repstr(char *str, const char *pat, const char *rep)
|
|||||||
r += sprintf(r, "%s", rep);
|
r += sprintf(r, "%s", rep);
|
||||||
}
|
}
|
||||||
if (p <= str) return 0;
|
if (p <= str) return 0;
|
||||||
strcpy(r, p);
|
|
||||||
|
if(strlen(p) < 1025 ) strcpy(r, p);
|
||||||
|
else trace(1, "pat array is too long");
|
||||||
strcpy(str, buff);
|
strcpy(str, buff);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -3934,7 +3950,8 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
|
|
||||||
trace(3, "rtk_uncompress: file=%s\n", file);
|
trace(3, "rtk_uncompress: file=%s\n", file);
|
||||||
|
|
||||||
strcpy(tmpfile, file);
|
if(strlen(file) < 1025) strcpy(tmpfile, file);
|
||||||
|
else trace(1, "file array is too long");
|
||||||
if (!(p = strrchr(tmpfile, '.'))) return 0;
|
if (!(p = strrchr(tmpfile, '.'))) return 0;
|
||||||
|
|
||||||
/* uncompress by gzip */
|
/* uncompress by gzip */
|
||||||
@@ -3947,10 +3964,10 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
|
|
||||||
if (execcmd(cmd))
|
if (execcmd(cmd))
|
||||||
{
|
{
|
||||||
remove(uncfile);
|
if(remove(uncfile) != 0) trace(1, "Error removing file");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
strcpy(tmpfile, uncfile);
|
if(strlen(uncfile) < 1025) strcpy(tmpfile, uncfile);
|
||||||
stat = 1;
|
stat = 1;
|
||||||
}
|
}
|
||||||
/* extract tar file */
|
/* extract tar file */
|
||||||
@@ -3966,10 +3983,10 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
sprintf(cmd, "tar -C \"%s\" -xf \"%s\"", dir, tmpfile);
|
sprintf(cmd, "tar -C \"%s\" -xf \"%s\"", dir, tmpfile);
|
||||||
if (execcmd(cmd))
|
if (execcmd(cmd))
|
||||||
{
|
{
|
||||||
if (stat) remove(tmpfile);
|
if (stat) if(remove(tmpfile) != 0) trace(1, "Error removing file");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (stat) remove(tmpfile);
|
if (stat) if(remove(tmpfile) != 0) trace(1, "Error removing file");
|
||||||
stat = 1;
|
stat = 1;
|
||||||
}
|
}
|
||||||
/* extract hatanaka-compressed file by cnx2rnx */
|
/* extract hatanaka-compressed file by cnx2rnx */
|
||||||
@@ -3982,11 +3999,11 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
|
|
||||||
if (execcmd(cmd))
|
if (execcmd(cmd))
|
||||||
{
|
{
|
||||||
remove(uncfile);
|
if(remove(uncfile) != 0) trace(1, "Error removing file");
|
||||||
if (stat) remove(tmpfile);
|
if (stat) if(remove(tmpfile) != 0) trace(1, "Error removing file");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (stat) remove(tmpfile);
|
if (stat) if(remove(tmpfile) != 0) trace(1, "Error removing file");
|
||||||
stat = 1;
|
stat = 1;
|
||||||
}
|
}
|
||||||
trace(3, "rtk_uncompress: stat=%d\n", stat);
|
trace(3, "rtk_uncompress: stat=%d\n", stat);
|
||||||
@@ -4005,7 +4022,7 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
int expath(const char *path, char *paths[], int nmax)
|
int expath(const char *path, char *paths[], int nmax)
|
||||||
{
|
{
|
||||||
int i, j, n = 0;
|
int i, j, n = 0;
|
||||||
char tmp[1024];
|
char tmp[1024] = "";
|
||||||
struct dirent *d;
|
struct dirent *d;
|
||||||
DIR *dp;
|
DIR *dp;
|
||||||
const char *file = path;
|
const char *file = path;
|
||||||
@@ -4040,7 +4057,11 @@ int expath(const char *path, char *paths[], int nmax)
|
|||||||
{
|
{
|
||||||
if (strcmp(paths[i], paths[j])>0)
|
if (strcmp(paths[i], paths[j])>0)
|
||||||
{
|
{
|
||||||
strcpy(tmp, paths[i]);
|
if(strlen(paths[i]) < 1025) strcpy(tmp, paths[i]);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trace(1, "Path is too long");
|
||||||
|
}
|
||||||
strcpy(paths[i], paths[j]);
|
strcpy(paths[i], paths[j]);
|
||||||
strcpy(paths[j], tmp);
|
strcpy(paths[j], tmp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,8 @@ int rtkopenstat(const char *file, int level)
|
|||||||
trace(1, "rtkopenstat: file open error path=%s\n", path);
|
trace(1, "rtkopenstat: file open error path=%s\n", path);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
strcpy(file_stat, file);
|
if(strlen(file) < 1025) strcpy(file_stat, file);
|
||||||
|
else trace(1, "File name is too long");
|
||||||
time_stat = time;
|
time_stat = time;
|
||||||
statlevel = level;
|
statlevel = level;
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -752,8 +752,8 @@ int rtksvrstart(rtksvr_t *svr, int cycle, int buffsize, int *strs,
|
|||||||
init_rtcm(svr->rtcm+i);
|
init_rtcm(svr->rtcm+i);
|
||||||
|
|
||||||
/* set receiver and rtcm option */
|
/* set receiver and rtcm option */
|
||||||
strcpy(svr->raw [i].opt, rcvopts[i]);
|
if(strlen(rcvopts[i]) < 256 ) strcpy(svr->raw [i].opt, rcvopts[i]);
|
||||||
strcpy(svr->rtcm[i].opt, rcvopts[i]);
|
if(strlen(rcvopts[i]) < 256 ) strcpy(svr->rtcm[i].opt, rcvopts[i]);
|
||||||
|
|
||||||
/* connect dgps corrections */
|
/* connect dgps corrections */
|
||||||
svr->rtcm[i].dgps = svr->nav.dgps;
|
svr->rtcm[i].dgps = svr->nav.dgps;
|
||||||
|
|||||||
@@ -185,9 +185,9 @@ int decode_sbstype6(const sbsmsg_t *msg, sbssat_t *sbssat)
|
|||||||
{
|
{
|
||||||
iodf[i] = getbitu(msg->msg, 14+i*2, 2);
|
iodf[i] = getbitu(msg->msg, 14+i*2, 2);
|
||||||
}
|
}
|
||||||
for (i = 0;i<sbssat->nsat && i<MAXSAT;i++)
|
for (i = 0; i < sbssat->nsat && i < MAXSAT; i++)
|
||||||
{
|
{
|
||||||
if (sbssat->sat[i].fcorr.iodf != iodf[i/13]) continue;
|
if (sbssat->sat[i].fcorr.iodf != iodf[i/22]) continue;
|
||||||
udre = getbitu(msg->msg, 22+i*4, 4);
|
udre = getbitu(msg->msg, 22+i*4, 4);
|
||||||
sbssat->sat[i].fcorr.udre = udre+1;
|
sbssat->sat[i].fcorr.udre = udre+1;
|
||||||
}
|
}
|
||||||
@@ -536,7 +536,7 @@ void readmsgs(const char *file, int sel, gtime_t ts, gtime_t te,
|
|||||||
if (!(sbs_msgs = (sbsmsg_t *)realloc(sbs->msgs, sbs->nmax * sizeof(sbsmsg_t))))
|
if (!(sbs_msgs = (sbsmsg_t *)realloc(sbs->msgs, sbs->nmax * sizeof(sbsmsg_t))))
|
||||||
{
|
{
|
||||||
trace(1, "readsbsmsg malloc error: nmax=%d\n", sbs->nmax);
|
trace(1, "readsbsmsg malloc error: nmax=%d\n", sbs->nmax);
|
||||||
free(sbs->msgs); sbs->msgs = NULL; sbs->n = sbs->nmax = 0;
|
free(sbs->msgs); sbs->msgs = NULL; sbs->n = sbs->nmax = 0; fclose(fp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sbs->msgs = sbs_msgs;
|
sbs->msgs = sbs_msgs;
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ int decode_nmeagga(char **val, int n, sol_t *sol)
|
|||||||
/* decode nmea ---------------------------------------------------------------*/
|
/* decode nmea ---------------------------------------------------------------*/
|
||||||
int decode_nmea(char *buff, sol_t *sol)
|
int decode_nmea(char *buff, sol_t *sol)
|
||||||
{
|
{
|
||||||
char *p,*q,*val[MAXFIELD];
|
char *p, *q, *val[MAXFIELD] = {0};
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
trace(4,"decode_nmea: buff=%s\n",buff);
|
trace(4,"decode_nmea: buff=%s\n",buff);
|
||||||
|
|||||||
@@ -104,10 +104,10 @@ serial_t *openserial(const char *path, int mode, char *msg)
|
|||||||
strncpy(port, path, p-path); port[p-path] = '\0';
|
strncpy(port, path, p-path); port[p-path] = '\0';
|
||||||
sscanf(p, ":%d:%d:%c:%d:%s", &brate, &bsize, &parity, &stopb, fctr);
|
sscanf(p, ":%d:%d:%c:%d:%s", &brate, &bsize, &parity, &stopb, fctr);
|
||||||
}
|
}
|
||||||
else strcpy(port, path);
|
else if(strlen(path) < 128) strcpy(port, path);
|
||||||
|
|
||||||
for (i = 0;i < 11;i++) if (br[i] == brate) break;
|
for (i = 0;i < 10; i++) if (br[i] == brate) break;
|
||||||
if (i >= 12)
|
if (i >= 11)
|
||||||
{
|
{
|
||||||
sprintf(msg, "bitrate error (%d)", brate);
|
sprintf(msg, "bitrate error (%d)", brate);
|
||||||
tracet(1, "openserial: %s path=%s\n", msg, path);
|
tracet(1, "openserial: %s path=%s\n", msg, path);
|
||||||
@@ -150,8 +150,8 @@ serial_t *openserial(const char *path, int mode, char *msg)
|
|||||||
/* close serial --------------------------------------------------------------*/
|
/* close serial --------------------------------------------------------------*/
|
||||||
void closeserial(serial_t *serial)
|
void closeserial(serial_t *serial)
|
||||||
{
|
{
|
||||||
tracet(3, "closeserial: dev=%d\n", serial->dev);
|
|
||||||
if (!serial) return;
|
if (!serial) return;
|
||||||
|
tracet(3, "closeserial: dev=%d\n", serial->dev);
|
||||||
close(serial->dev);
|
close(serial->dev);
|
||||||
free(serial);
|
free(serial);
|
||||||
}
|
}
|
||||||
@@ -161,8 +161,8 @@ void closeserial(serial_t *serial)
|
|||||||
int readserial(serial_t *serial, unsigned char *buff, int n, char *msg __attribute__((unused)))
|
int readserial(serial_t *serial, unsigned char *buff, int n, char *msg __attribute__((unused)))
|
||||||
{
|
{
|
||||||
int nr;
|
int nr;
|
||||||
tracet(4, "readserial: dev=%d n=%d\n", serial->dev, n);
|
|
||||||
if (!serial) return 0;
|
if (!serial) return 0;
|
||||||
|
tracet(4, "readserial: dev=%d n=%d\n", serial->dev, n);
|
||||||
if ((nr = read(serial->dev, buff, n)) < 0) return 0;
|
if ((nr = read(serial->dev, buff, n)) < 0) return 0;
|
||||||
tracet(5, "readserial: exit dev=%d nr=%d\n", serial->dev, nr);
|
tracet(5, "readserial: exit dev=%d nr=%d\n", serial->dev, nr);
|
||||||
return nr;
|
return nr;
|
||||||
@@ -173,8 +173,8 @@ int readserial(serial_t *serial, unsigned char *buff, int n, char *msg __attribu
|
|||||||
int writeserial(serial_t *serial, unsigned char *buff, int n, char *msg __attribute__((unused)))
|
int writeserial(serial_t *serial, unsigned char *buff, int n, char *msg __attribute__((unused)))
|
||||||
{
|
{
|
||||||
int ns;
|
int ns;
|
||||||
tracet(3, "writeserial: dev=%d n=%d\n", serial->dev, n);
|
|
||||||
if (!serial) return 0;
|
if (!serial) return 0;
|
||||||
|
tracet(3, "writeserial: dev=%d n=%d\n", serial->dev, n);
|
||||||
if ((ns = write(serial->dev, buff, n)) < 0) return 0;
|
if ((ns = write(serial->dev, buff, n)) < 0) return 0;
|
||||||
tracet(5, "writeserial: exit dev=%d ns=%d\n", serial->dev, ns);
|
tracet(5, "writeserial: exit dev=%d ns=%d\n", serial->dev, ns);
|
||||||
return ns;
|
return ns;
|
||||||
@@ -269,7 +269,7 @@ int openfile_(file_t *file, gtime_t time, char *msg)
|
|||||||
if ((fp = fopen(tagpath, "rb")))
|
if ((fp = fopen(tagpath, "rb")))
|
||||||
{
|
{
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
remove(tagpath);
|
if (remove(tagpath) != 0) trace(1, "Error removing file");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@@ -315,7 +315,7 @@ file_t *openfile(const char *path, int mode, char *msg)
|
|||||||
if (!(file = (file_t *)malloc(sizeof(file_t)))) return NULL;
|
if (!(file = (file_t *)malloc(sizeof(file_t)))) return NULL;
|
||||||
|
|
||||||
file->fp = file->fp_tag = file->fp_tmp = file->fp_tag_tmp = NULL;
|
file->fp = file->fp_tag = file->fp_tmp = file->fp_tag_tmp = NULL;
|
||||||
strcpy(file->path, path);
|
if(strlen(path) < MAXSTRPATH) strcpy(file->path, path);
|
||||||
if ((p = strstr(file->path, "::"))) *p = '\0';
|
if ((p = strstr(file->path, "::"))) *p = '\0';
|
||||||
file->openpath[0] = '\0';
|
file->openpath[0] = '\0';
|
||||||
file->mode = mode;
|
file->mode = mode;
|
||||||
@@ -344,8 +344,8 @@ file_t *openfile(const char *path, int mode, char *msg)
|
|||||||
/* close file ----------------------------------------------------------------*/
|
/* close file ----------------------------------------------------------------*/
|
||||||
void closefile(file_t *file)
|
void closefile(file_t *file)
|
||||||
{
|
{
|
||||||
tracet(3, "closefile: fp=%d\n", file->fp);
|
|
||||||
if (!file) return;
|
if (!file) return;
|
||||||
|
tracet(3, "closefile: fp=%d\n", file->fp);
|
||||||
closefile_(file);
|
closefile_(file);
|
||||||
free(file);
|
free(file);
|
||||||
}
|
}
|
||||||
@@ -404,9 +404,8 @@ int readfile(file_t *file, unsigned char *buff, int nmax, char *msg)
|
|||||||
int nr = 0;
|
int nr = 0;
|
||||||
size_t fpos;
|
size_t fpos;
|
||||||
|
|
||||||
tracet(4, "readfile: fp=%d nmax=%d\n", file->fp, nmax);
|
|
||||||
|
|
||||||
if (!file) return 0;
|
if (!file) return 0;
|
||||||
|
tracet(4, "readfile: fp=%d nmax=%d\n", file->fp, nmax);
|
||||||
|
|
||||||
if (file->fp == stdin)
|
if (file->fp == stdin)
|
||||||
{
|
{
|
||||||
@@ -431,7 +430,7 @@ int readfile(file_t *file, unsigned char *buff, int nmax, char *msg)
|
|||||||
if (fread(&tick, sizeof(tick), 1, file->fp_tag) < 1 ||
|
if (fread(&tick, sizeof(tick), 1, file->fp_tag) < 1 ||
|
||||||
fread(&fpos, sizeof(fpos), 1, file->fp_tag) < 1)
|
fread(&fpos, sizeof(fpos), 1, file->fp_tag) < 1)
|
||||||
{
|
{
|
||||||
fseek(file->fp, 0, SEEK_END);
|
if(fseek(file->fp, 0, SEEK_END) != 0) trace(1, "fseek error");
|
||||||
sprintf(msg, "end");
|
sprintf(msg, "end");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -445,7 +444,7 @@ int readfile(file_t *file, unsigned char *buff, int nmax, char *msg)
|
|||||||
|
|
||||||
if ((int)(fpos-file->fpos) >= nmax)
|
if ((int)(fpos-file->fpos) >= nmax)
|
||||||
{
|
{
|
||||||
fseek(file->fp, fpos, SEEK_SET);
|
if(fseek(file->fp, fpos, SEEK_SET) != 0) trace(1, "Error fseek");
|
||||||
file->fpos = fpos;
|
file->fpos = fpos;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -453,7 +452,7 @@ int readfile(file_t *file, unsigned char *buff, int nmax, char *msg)
|
|||||||
|
|
||||||
if (file->repmode || file->speed>0.0)
|
if (file->repmode || file->speed>0.0)
|
||||||
{
|
{
|
||||||
fseek(file->fp_tag, -(long)(sizeof(tick)+sizeof(fpos)), SEEK_CUR);
|
if(fseek(file->fp_tag, -(long)(sizeof(tick)+sizeof(fpos)), SEEK_CUR) !=0) trace(1, "Error fseek");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -478,9 +477,8 @@ int writefile(file_t *file, unsigned char *buff, int n, char *msg)
|
|||||||
double tow1, tow2, intv;
|
double tow1, tow2, intv;
|
||||||
size_t fpos, fpos_tmp;
|
size_t fpos, fpos_tmp;
|
||||||
|
|
||||||
tracet(3, "writefile: fp=%d n=%d\n", file->fp, n);
|
|
||||||
|
|
||||||
if (!file) return 0;
|
if (!file) return 0;
|
||||||
|
tracet(3, "writefile: fp=%d n=%d\n", file->fp, n);
|
||||||
|
|
||||||
wtime = utc2gpst(timeget()); /* write time in gpst */
|
wtime = utc2gpst(timeget()); /* write time in gpst */
|
||||||
|
|
||||||
@@ -560,7 +558,7 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
|||||||
if (mntpnt) *mntpnt = '\0';
|
if (mntpnt) *mntpnt = '\0';
|
||||||
if (str) *str = '\0';
|
if (str) *str = '\0';
|
||||||
|
|
||||||
strcpy(buff, path);
|
if(strlen(path) < MAXSTRPATH) strcpy(buff, path);
|
||||||
|
|
||||||
if (!(p = strrchr(buff, '@'))) p = buff;
|
if (!(p = strrchr(buff, '@'))) p = buff;
|
||||||
|
|
||||||
@@ -645,7 +643,7 @@ int connect_nb(socket_t sock, struct sockaddr *addr, socklen_t len)
|
|||||||
int err, flag;
|
int err, flag;
|
||||||
|
|
||||||
flag = fcntl(sock, F_GETFL, 0);
|
flag = fcntl(sock, F_GETFL, 0);
|
||||||
fcntl(sock, F_SETFL, flag|O_NONBLOCK);
|
if(fcntl(sock, F_SETFL, flag|O_NONBLOCK) == -1) trace(1, "fcntl error");
|
||||||
if (connect(sock, addr, len) == -1)
|
if (connect(sock, addr, len) == -1)
|
||||||
{
|
{
|
||||||
err = errsock();
|
err = errsock();
|
||||||
@@ -761,7 +759,7 @@ tcpsvr_t *opentcpsvr(const char *path, char *msg)
|
|||||||
{
|
{
|
||||||
tcpsvr_t *tcpsvr, tcpsvr0; // = {{0}};
|
tcpsvr_t *tcpsvr, tcpsvr0; // = {{0}};
|
||||||
char port[256] = "";
|
char port[256] = "";
|
||||||
|
tcpsvr0 = { {0, {0}, 0, {0,0,0,{0}},0,0,0,0}, { 0, {0}, 0,{0,0,0,{0}},0,0,0,0} };
|
||||||
tracet(3, "opentcpsvr: path=%s\n", path);
|
tracet(3, "opentcpsvr: path=%s\n", path);
|
||||||
|
|
||||||
if (!(tcpsvr = (tcpsvr_t *)malloc(sizeof(tcpsvr_t)))) return NULL;
|
if (!(tcpsvr = (tcpsvr_t *)malloc(sizeof(tcpsvr_t)))) return NULL;
|
||||||
@@ -863,7 +861,7 @@ int accsock(tcpsvr_t *tcpsvr, char *msg)
|
|||||||
tcpsvr->cli[i].sock = sock;
|
tcpsvr->cli[i].sock = sock;
|
||||||
if (!setsock(tcpsvr->cli[i].sock, msg)) return 0;
|
if (!setsock(tcpsvr->cli[i].sock, msg)) return 0;
|
||||||
memcpy(&tcpsvr->cli[i].addr, &addr, sizeof(addr));
|
memcpy(&tcpsvr->cli[i].addr, &addr, sizeof(addr));
|
||||||
strcpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr));
|
if(strlen(inet_ntoa(addr.sin_addr)) < 256) strcpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr));
|
||||||
sprintf(msg, "%s", tcpsvr->cli[i].saddr);
|
sprintf(msg, "%s", tcpsvr->cli[i].saddr);
|
||||||
tracet(2, "accsock: connected sock=%d addr=%s\n", tcpsvr->cli[i].sock, tcpsvr->cli[i].saddr);
|
tracet(2, "accsock: connected sock=%d addr=%s\n", tcpsvr->cli[i].sock, tcpsvr->cli[i].saddr);
|
||||||
tcpsvr->cli[i].state = 2;
|
tcpsvr->cli[i].state = 2;
|
||||||
@@ -985,6 +983,7 @@ tcpcli_t *opentcpcli(const char *path, char *msg)
|
|||||||
{
|
{
|
||||||
tcpcli_t *tcpcli, tcpcli0; // = {{0}};
|
tcpcli_t *tcpcli, tcpcli0; // = {{0}};
|
||||||
char port[256] = "";
|
char port[256] = "";
|
||||||
|
tcpcli0 = {{0, {0}, 0, {0,0,0,{0}},0,0,0,0}, 0, 0};
|
||||||
|
|
||||||
tracet(3, "opentcpcli: path=%s\n", path);
|
tracet(3, "opentcpcli: path=%s\n", path);
|
||||||
|
|
||||||
@@ -1425,7 +1424,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
|||||||
topts[2] = 0; /* download time offset (s) */
|
topts[2] = 0; /* download time offset (s) */
|
||||||
topts[3] = 0; /* retry interval (s) (0: no retry) */
|
topts[3] = 0; /* retry interval (s) (0: no retry) */
|
||||||
}
|
}
|
||||||
strcpy(buff, path);
|
if(strlen(path) < MAXSTRPATH) strcpy(buff, path);
|
||||||
|
|
||||||
if ((p = strchr(buff, '/')))
|
if ((p = strchr(buff, '/')))
|
||||||
{
|
{
|
||||||
@@ -1550,13 +1549,13 @@ void *ftpthread(void *arg)
|
|||||||
/* execute download command */
|
/* execute download command */
|
||||||
if ((ret = execcmd(cmd)))
|
if ((ret = execcmd(cmd)))
|
||||||
{
|
{
|
||||||
remove(local);
|
if(remove(local) != 0) trace(1, "Error removing file");
|
||||||
tracet(1, "execcmd error: cmd=%s ret=%d\n", cmd, ret);
|
tracet(1, "execcmd error: cmd=%s ret=%d\n", cmd, ret);
|
||||||
ftp->error = ret;
|
ftp->error = ret;
|
||||||
ftp->state = 3;
|
ftp->state = 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
remove(errfile);
|
if(remove(errfile) != 0) trace(1, "Error removing file");
|
||||||
|
|
||||||
/* uncompress downloaded file */
|
/* uncompress downloaded file */
|
||||||
if ((p = strrchr(local, '.')) &&
|
if ((p = strrchr(local, '.')) &&
|
||||||
@@ -1565,8 +1564,8 @@ void *ftpthread(void *arg)
|
|||||||
{
|
{
|
||||||
if (rtk_uncompress(local, tmpfile))
|
if (rtk_uncompress(local, tmpfile))
|
||||||
{
|
{
|
||||||
remove(local);
|
if(remove(local) != 0) trace(1, "Error removing file");
|
||||||
strcpy(local, tmpfile);
|
if(strlen(tmpfile) < 1024) strcpy(local, tmpfile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1576,7 +1575,7 @@ void *ftpthread(void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
strcpy(ftp->local, local);
|
if(strlen(local) < 1024 ) strcpy(ftp->local, local);
|
||||||
ftp->state = 2; /* ftp completed */
|
ftp->state = 2; /* ftp completed */
|
||||||
|
|
||||||
tracet(3, "ftpthread: complete cmd=%s\n", cmd);
|
tracet(3, "ftpthread: complete cmd=%s\n", cmd);
|
||||||
@@ -1754,7 +1753,7 @@ int stropen(stream_t *stream, int type, int mode, const char *path)
|
|||||||
|
|
||||||
stream->type = type;
|
stream->type = type;
|
||||||
stream->mode = mode;
|
stream->mode = mode;
|
||||||
strcpy(stream->path, path);
|
if(strlen(path) < MAXSTRPATH ) strcpy(stream->path, path);
|
||||||
stream->inb = stream->inr = stream->outb = stream->outr = 0;
|
stream->inb = stream->inr = stream->outb = stream->outr = 0;
|
||||||
stream->tick = tickget();
|
stream->tick = tickget();
|
||||||
stream->inbt = stream->outbt = 0;
|
stream->inbt = stream->outbt = 0;
|
||||||
@@ -2060,7 +2059,7 @@ void strsettimeout(stream_t *stream, int toinact, int tirecon)
|
|||||||
void strsetdir(const char *dir)
|
void strsetdir(const char *dir)
|
||||||
{
|
{
|
||||||
tracet(3, "strsetdir: dir=%s\n", dir);
|
tracet(3, "strsetdir: dir=%s\n", dir);
|
||||||
strcpy(localdir, dir);
|
if (strlen(dir) < 1024) strcpy(localdir, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2072,7 +2071,7 @@ void strsetdir(const char *dir)
|
|||||||
void strsetproxy(const char *addr)
|
void strsetproxy(const char *addr)
|
||||||
{
|
{
|
||||||
tracet(3, "strsetproxy: addr=%s\n", addr);
|
tracet(3, "strsetproxy: addr=%s\n", addr);
|
||||||
strcpy(proxyaddr, addr);
|
if(strlen(addr) < 256) strcpy(proxyaddr, addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ class kernel_class:
|
|||||||
########################################################################
|
########################################################################
|
||||||
__file__ = os.path.abspath(__file__)
|
__file__ = os.path.abspath(__file__)
|
||||||
srcdir = os.path.dirname(os.path.dirname(__file__))
|
srcdir = os.path.dirname(os.path.dirname(__file__))
|
||||||
kernel_files = glob.glob(os.path.join(srcdir, "kernels", "volk_gnsssdr", "*.h"))
|
kernel_files = sorted(glob.glob(os.path.join(srcdir, "kernels", "volk_gnsssdr", "*.h")))
|
||||||
kernels = list(map(kernel_class, kernel_files))
|
kernels = list(map(kernel_class, kernel_files))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -32,14 +32,20 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr_cpu.h>
|
#include <volk_gnsssdr/volk_gnsssdr_cpu.h>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr_common.h>
|
#include <volk_gnsssdr/volk_gnsssdr_common.h>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr_malloc.h>
|
#include <volk_gnsssdr/volk_gnsssdr_malloc.h>
|
||||||
|
|
||||||
float uniform() {
|
float uniform()
|
||||||
return 2.0f * ((float) rand() / RAND_MAX - 0.5f); // uniformly (-1, 1)
|
{
|
||||||
|
// Seed with a real random value, if available
|
||||||
|
std::random_device r;
|
||||||
|
std::default_random_engine e1(r());
|
||||||
|
std::uniform_real_distribution<> uniform_dist(-1, 1);
|
||||||
|
return static_cast<float>(uniform_dist(e1));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class t>
|
template <class t>
|
||||||
@@ -51,6 +57,9 @@ void random_floats (t *buf, unsigned n)
|
|||||||
|
|
||||||
void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n)
|
void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n)
|
||||||
{
|
{
|
||||||
|
std::random_device r;
|
||||||
|
std::default_random_engine e1(r());
|
||||||
|
std::uniform_real_distribution<float> uniform_dist(-1, 1);
|
||||||
if(type.is_complex) n *= 2;
|
if(type.is_complex) n *= 2;
|
||||||
if(type.is_float)
|
if(type.is_float)
|
||||||
{
|
{
|
||||||
@@ -63,7 +72,7 @@ void load_random_data(void *data, volk_gnsssdr_type_t type, unsigned int n)
|
|||||||
if(type.is_signed) int_max /= 2.0;
|
if(type.is_signed) int_max /= 2.0;
|
||||||
for(unsigned int i = 0; i < n; i++)
|
for(unsigned int i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
float scaled_rand = (((float) (rand() - (RAND_MAX/2))) / static_cast<float>((RAND_MAX/2))) * int_max;
|
float scaled_rand = static_cast<float>(uniform_dist(e1)) * int_max;
|
||||||
//man i really don't know how to do this in a more clever way, you have to cast down at some point
|
//man i really don't know how to do this in a more clever way, you have to cast down at some point
|
||||||
switch(type.size)
|
switch(type.size)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -58,10 +58,10 @@ class volk_gnsssdr_modtool:
|
|||||||
else:
|
else:
|
||||||
name = self.get_basename(base);
|
name = self.get_basename(base);
|
||||||
if name == '':
|
if name == '':
|
||||||
hdr_files = glob.glob(os.path.join(base, "kernels/volk_gnsssdr/*.h"));
|
hdr_files = sorted(glob.glob(os.path.join(base, "kernels/volk_gnsssdr/*.h")));
|
||||||
begins = re.compile("(?<=volk_gnsssdr_).*")
|
begins = re.compile("(?<=volk_gnsssdr_).*")
|
||||||
else:
|
else:
|
||||||
hdr_files = glob.glob(os.path.join(base, "kernels/volk_gnsssdr_" + name + "/*.h"));
|
hdr_files = sorted(glob.glob(os.path.join(base, "kernels/volk_gnsssdr_" + name + "/*.h")));
|
||||||
begins = re.compile("(?<=volk_gnsssdr_" + name + "_).*")
|
begins = re.compile("(?<=volk_gnsssdr_" + name + "_).*")
|
||||||
|
|
||||||
datatypes = [];
|
datatypes = [];
|
||||||
@@ -166,7 +166,7 @@ class volk_gnsssdr_modtool:
|
|||||||
open(dest, 'w+').write(outstring);
|
open(dest, 'w+').write(outstring);
|
||||||
|
|
||||||
# copy orc proto-kernels if they exist
|
# copy orc proto-kernels if they exist
|
||||||
for orcfile in glob.glob(inpath + '/orc/' + top + name + '*.orc'):
|
for orcfile in sorted(glob.glob(inpath + '/kernels/volk_gnsssdr/asm/orc/' + top + name + '*.orc')):
|
||||||
if os.path.isfile(orcfile):
|
if os.path.isfile(orcfile):
|
||||||
instring = open(orcfile, 'r').read();
|
instring = open(orcfile, 'r').read();
|
||||||
outstring = re.sub(oldvolk_gnsssdr, 'volk_gnsssdr_' + self.my_dict['name'], instring);
|
outstring = re.sub(oldvolk_gnsssdr, 'volk_gnsssdr_' + self.my_dict['name'], instring);
|
||||||
@@ -333,8 +333,3 @@ class volk_gnsssdr_modtool:
|
|||||||
write_okay = False
|
write_okay = False
|
||||||
if write_okay:
|
if write_okay:
|
||||||
open(dest, 'a').write(otherline);
|
open(dest, 'a').write(otherline);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
* GNSS-SDR is free software: you can redistribute it and/or modify
|
* GNSS-SDR is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* GNSS-SDR is distributed in the hope that it will be useful,
|
* GNSS-SDR is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
@@ -33,7 +33,6 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <gnuradio/io_signature.h>
|
#include <gnuradio/io_signature.h>
|
||||||
//#include <volk/volk.h>
|
|
||||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||||
#include "gps_sdr_signal_processing.h"
|
#include "gps_sdr_signal_processing.h"
|
||||||
#include "galileo_e1_signal_processing.h"
|
#include "galileo_e1_signal_processing.h"
|
||||||
@@ -131,6 +130,8 @@ void signal_generator_c::init()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
random_ = new gr::random();
|
random_ = new gr::random();
|
||||||
|
std::default_random_engine e1(r());
|
||||||
|
std::uniform_int_distribution<int> uniform_dist(0, RAND_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -295,7 +296,7 @@ int signal_generator_c::general_work (int noutput_items __attribute__((unused)),
|
|||||||
if (ms_counter_[sat] == 0 && data_flag_)
|
if (ms_counter_[sat] == 0 && data_flag_)
|
||||||
{
|
{
|
||||||
// New random data bit
|
// New random data bit
|
||||||
current_data_bits_[sat] = gr_complex((rand() % 2) == 0 ? 1 : -1, 0);
|
current_data_bits_[sat] = gr_complex((uniform_dist(e1) % 2) == 0 ? 1 : -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (k = delay_samples; k < samples_per_code_[sat]; k++)
|
for (k = delay_samples; k < samples_per_code_[sat]; k++)
|
||||||
@@ -330,7 +331,7 @@ int signal_generator_c::general_work (int noutput_items __attribute__((unused)),
|
|||||||
if (ms_counter_[sat]%data_bit_duration_ms_[sat] == 0 && data_flag_)
|
if (ms_counter_[sat]%data_bit_duration_ms_[sat] == 0 && data_flag_)
|
||||||
{
|
{
|
||||||
// New random data bit
|
// New random data bit
|
||||||
current_data_bit_int_[sat] = (rand()%2) == 0 ? 1 : -1;
|
current_data_bit_int_[sat] = (uniform_dist(e1)%2) == 0 ? 1 : -1;
|
||||||
}
|
}
|
||||||
data_modulation_[sat] = current_data_bit_int_[sat] * (Galileo_E5a_I_SECONDARY_CODE.at((ms_counter_[sat]+delay_sec_[sat]) % 20) == '0' ? 1 : -1);
|
data_modulation_[sat] = current_data_bit_int_[sat] * (Galileo_E5a_I_SECONDARY_CODE.at((ms_counter_[sat]+delay_sec_[sat]) % 20) == '0' ? 1 : -1);
|
||||||
pilot_modulation_[sat] = (Galileo_E5a_Q_SECONDARY_CODE[PRN_[sat] - 1].at((ms_counter_[sat] + delay_sec_[sat]) % 100) == '0' ? 1 : -1);
|
pilot_modulation_[sat] = (Galileo_E5a_Q_SECONDARY_CODE[PRN_[sat] - 1].at((ms_counter_[sat] + delay_sec_[sat]) % 100) == '0' ? 1 : -1);
|
||||||
@@ -362,7 +363,7 @@ int signal_generator_c::general_work (int noutput_items __attribute__((unused)),
|
|||||||
if (ms_counter_[sat] == 0 && data_flag_)
|
if (ms_counter_[sat] == 0 && data_flag_)
|
||||||
{
|
{
|
||||||
// New random data bit
|
// New random data bit
|
||||||
current_data_bits_[sat] = gr_complex((rand() % 2) == 0 ? 1 : -1, 0);
|
current_data_bits_[sat] = gr_complex((uniform_dist(e1) % 2) == 0 ? 1 : -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (k = delay_samples; k < samples_per_code_[sat]; k++)
|
for (k = delay_samples; k < samples_per_code_[sat]; k++)
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <random>
|
||||||
#include <boost/scoped_array.hpp>
|
#include <boost/scoped_array.hpp>
|
||||||
#include <gnuradio/random.h>
|
#include <gnuradio/random.h>
|
||||||
#include <gnuradio/block.h>
|
#include <gnuradio/block.h>
|
||||||
@@ -122,6 +124,9 @@ private:
|
|||||||
gr_complex* complex_phase_;
|
gr_complex* complex_phase_;
|
||||||
|
|
||||||
unsigned int work_counter_;
|
unsigned int work_counter_;
|
||||||
|
std::random_device r;
|
||||||
|
std::default_random_engine e1;
|
||||||
|
std::uniform_int_distribution<int> uniform_dist;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~signal_generator_c(); // public destructor
|
~signal_generator_c(); // public destructor
|
||||||
@@ -135,4 +140,3 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif /* GNSS_SDR_SIGNAL_GENERATOR_C_H */
|
#endif /* GNSS_SDR_SIGNAL_GENERATOR_C_H */
|
||||||
|
|
||||||
|
|||||||
@@ -62,7 +62,12 @@ UhdSignalSource::UhdSignalSource(ConfigurationInterface* configuration,
|
|||||||
{
|
{
|
||||||
dev_addr["addr"] = device_address_;
|
dev_addr["addr"] = device_address_;
|
||||||
}
|
}
|
||||||
|
//filter the device by serial number if required (useful for USB devices)
|
||||||
|
std::string device_serial = configuration->property(role + ".device_serial", empty);
|
||||||
|
if (empty.compare(device_serial) != 0) // if not empty
|
||||||
|
{
|
||||||
|
dev_addr["serial"] = device_serial;
|
||||||
|
}
|
||||||
subdevice_ = configuration->property(role + ".subdevice", empty);
|
subdevice_ = configuration->property(role + ".subdevice", empty);
|
||||||
clock_source_ = configuration->property(role + ".clock_source", std::string("internal"));
|
clock_source_ = configuration->property(role + ".clock_source", std::string("internal"));
|
||||||
RF_channels_ = configuration->property(role + ".RF_channels", 1);
|
RF_channels_ = configuration->property(role + ".RF_channels", 1);
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc(
|
|||||||
d_decimation_output_factor = 1;
|
d_decimation_output_factor = 1;
|
||||||
d_channel = 0;
|
d_channel = 0;
|
||||||
flag_PLL_180_deg_phase_locked = false;
|
flag_PLL_180_deg_phase_locked = false;
|
||||||
|
d_preamble_time_samples = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ int sbas_l1_telemetry_decoder_cc::general_work (int noutput_items __attribute__(
|
|||||||
d_sample_buf.push_back(current_symbol.Prompt_I); //add new symbol to the symbol queue
|
d_sample_buf.push_back(current_symbol.Prompt_I); //add new symbol to the symbol queue
|
||||||
|
|
||||||
// store the time stamp of the first sample in the processed sample block
|
// store the time stamp of the first sample in the processed sample block
|
||||||
double sample_stamp = in[0].Tracking_sample_counter/in[0].fs;
|
double sample_stamp = static_cast<double>(in[0].Tracking_sample_counter) / static_cast<double>(in[0].fs);
|
||||||
|
|
||||||
// decode only if enough samples in buffer
|
// decode only if enough samples in buffer
|
||||||
if(d_sample_buf.size() >= d_block_size)
|
if(d_sample_buf.size() >= d_block_size)
|
||||||
@@ -498,4 +498,3 @@ void sbas_l1_telemetry_decoder_cc::crc_verifier::zerropad_front_and_convert_to_b
|
|||||||
<< std::setfill('0') << std::hex << (unsigned int)byte
|
<< std::setfill('0') << std::hex << (unsigned int)byte
|
||||||
<< std::setfill(' ') << std::resetiosflags(std::ios::hex);
|
<< std::setfill(' ') << std::resetiosflags(std::ios::hex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ Gps_CNAV_Navigation_Message::Gps_CNAV_Navigation_Message()
|
|||||||
satelliteBlock[prn_] = gnss_satellite_.what_block("GPS", prn_);
|
satelliteBlock[prn_] = gnss_satellite_.what_block("GPS", prn_);
|
||||||
}
|
}
|
||||||
b_flag_iono_valid = false;
|
b_flag_iono_valid = false;
|
||||||
|
b_flag_utc_valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,11 @@ DECLARE_string(log_dir);
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
google::ParseCommandLineFlags(&argc, &argv, true);
|
google::ParseCommandLineFlags(&argc, &argv, true);
|
||||||
testing::InitGoogleTest(&argc, argv);
|
try
|
||||||
|
{
|
||||||
|
testing::InitGoogleTest(&argc, argv);
|
||||||
|
}
|
||||||
|
catch(...) {} // catch the "testing::internal::<unnamed>::ClassUniqueToAlwaysTrue" from gtest
|
||||||
google::InitGoogleLogging(argv[0]);
|
google::InitGoogleLogging(argv[0]);
|
||||||
int res = 0;
|
int res = 0;
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
|
#include <random>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/ipc.h>
|
#include <sys/ipc.h>
|
||||||
@@ -515,9 +516,10 @@ TEST_F(TTFF_GPS_L1_CA_Test, ColdStart)
|
|||||||
std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl;
|
std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl;
|
||||||
if(n < FLAGS_num_measurements - 1)
|
if(n < FLAGS_num_measurements - 1)
|
||||||
{
|
{
|
||||||
std::srand(std::time(0)); // use current time as seed for random generator
|
std::random_device r;
|
||||||
int random_variable = std::rand();
|
std::default_random_engine e1(r());
|
||||||
float random_variable_0_1 = static_cast<float>(random_variable) / static_cast<float>( RAND_MAX );
|
std::uniform_real_distribution<float> uniform_dist(0, 1);
|
||||||
|
float random_variable_0_1 = uniform_dist(e1);
|
||||||
int random_delay_s = static_cast<int>(random_variable_0_1 * 25.0);
|
int random_delay_s = static_cast<int>(random_variable_0_1 * 25.0);
|
||||||
std::cout << "Waiting a random amount of time (from 5 to 30 s) to start a new measurement... " << std::endl;
|
std::cout << "Waiting a random amount of time (from 5 to 30 s) to start a new measurement... " << std::endl;
|
||||||
std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl;
|
std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl;
|
||||||
@@ -599,9 +601,10 @@ TEST_F(TTFF_GPS_L1_CA_Test, HotStart)
|
|||||||
std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl;
|
std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl;
|
||||||
if(n < FLAGS_num_measurements - 1)
|
if(n < FLAGS_num_measurements - 1)
|
||||||
{
|
{
|
||||||
std::srand(std::time(0)); // use current time as seed for random generator
|
std::random_device r;
|
||||||
int random_variable = std::rand();
|
std::default_random_engine e1(r());
|
||||||
float random_variable_0_1 = static_cast<float>(random_variable) / static_cast<float>( RAND_MAX );
|
std::uniform_real_distribution<float> uniform_dist(0, 1);
|
||||||
|
float random_variable_0_1 = uniform_dist(e1);
|
||||||
int random_delay_s = static_cast<int>(random_variable_0_1 * 25.0);
|
int random_delay_s = static_cast<int>(random_variable_0_1 * 25.0);
|
||||||
std::cout << "Waiting a random amount of time (from 5 to 30 s) to start new measurement... " << std::endl;
|
std::cout << "Waiting a random amount of time (from 5 to 30 s) to start new measurement... " << std::endl;
|
||||||
std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl;
|
std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
* GNSS-SDR is free software: you can redistribute it and/or modify
|
* GNSS-SDR is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* GNSS-SDR is distributed in the hope that it will be useful,
|
* GNSS-SDR is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <complex>
|
#include <complex>
|
||||||
|
#include <random>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <volk_gnsssdr/volk_gnsssdr.h>
|
#include <volk_gnsssdr/volk_gnsssdr.h>
|
||||||
#include "cpu_multicorrelator.h"
|
#include "cpu_multicorrelator.h"
|
||||||
@@ -100,9 +101,12 @@ TEST(CPU_multicorrelator_test, MeasureExecutionTime)
|
|||||||
// generate local reference (1 sample per chip)
|
// generate local reference (1 sample per chip)
|
||||||
gps_l1_ca_code_gen_complex(d_ca_code, 1, 0);
|
gps_l1_ca_code_gen_complex(d_ca_code, 1, 0);
|
||||||
// generate inut signal
|
// generate inut signal
|
||||||
|
std::random_device r;
|
||||||
|
std::default_random_engine e1(r());
|
||||||
|
std::uniform_real_distribution<float> uniform_dist(0, 1);
|
||||||
for (int n=0;n<2*d_vector_length;n++)
|
for (int n=0;n<2*d_vector_length;n++)
|
||||||
{
|
{
|
||||||
in_cpu[n]=std::complex<float>(static_cast <float> (rand())/static_cast<float>(RAND_MAX),static_cast <float> (rand())/static_cast<float>(RAND_MAX));
|
in_cpu[n]=std::complex<float>(uniform_dist(e1), uniform_dist(e1));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int n=0;n<max_threads;n++)
|
for (int n=0;n<max_threads;n++)
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#define FRONT_END_CAL_VERSION "0.0.1"
|
#define FRONT_END_CAL_VERSION "0.0.1"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -372,8 +373,15 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
gr::block_sptr source;
|
gr::block_sptr source;
|
||||||
source = gr::blocks::file_source::make(sizeof(gr_complex), "tmp_capture.dat");
|
source = gr::blocks::file_source::make(sizeof(gr_complex), "tmp_capture.dat");
|
||||||
|
boost::shared_ptr<FrontEndCal_msg_rx> msg_rx;
|
||||||
boost::shared_ptr<FrontEndCal_msg_rx> msg_rx = FrontEndCal_msg_rx_make();
|
try
|
||||||
|
{
|
||||||
|
msg_rx = FrontEndCal_msg_rx_make();
|
||||||
|
}
|
||||||
|
catch(const std::exception & e)
|
||||||
|
{
|
||||||
|
std::cout << "Failure connecting the message port system: " << e.what() << std::endl; exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
//gr_basic_block_sptr head = gr_make_head(sizeof(gr_complex), nsamples);
|
//gr_basic_block_sptr head = gr_make_head(sizeof(gr_complex), nsamples);
|
||||||
//gr_head_sptr head_sptr = boost::dynamic_pointer_cast<gr_head>(head);
|
//gr_head_sptr head_sptr = boost::dynamic_pointer_cast<gr_head>(head);
|
||||||
|
|||||||
Reference in New Issue
Block a user