kopia lustrzana https://github.com/projecthorus/horusdemodlib
rodzic
f15104318e
commit
332ba71aa3
|
@ -1 +1 @@
|
|||
__version__ = "0.1.16"
|
||||
__version__ = "0.1.17"
|
||||
|
|
|
@ -333,6 +333,11 @@ class HorusLib():
|
|||
)
|
||||
return frame
|
||||
|
||||
def set_estimator_limits(self, lower: float, upper: float):
|
||||
""" Update the modems internal frequency estimator limits """
|
||||
self.c_lib.horus_set_freq_est_limits(self.hstates, c_float(lower), c_float(upper))
|
||||
|
||||
|
||||
def add_samples(self, samples: bytes):
|
||||
""" Add samples to a input buffer, to pass on to demodulate when we have nin samples """
|
||||
|
||||
|
@ -363,9 +368,10 @@ class HorusLib():
|
|||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
if len(sys.argv) != 3:
|
||||
raise ArgumentError("Usage python3 -m horusdemodlib.demod mode filename")
|
||||
if len(sys.argv) != 4:
|
||||
raise ArgumentError("Usage python3 -m horusdemodlib.demod mode filename sample_rate")
|
||||
filename = sys.argv[2]
|
||||
rate = int(sys.argv[3])
|
||||
|
||||
if sys.argv[1] == 'rtty7n2':
|
||||
mode = Mode.RTTY_7N2
|
||||
|
@ -394,7 +400,8 @@ if __name__ == "__main__":
|
|||
format="%(asctime)s %(levelname)s: %(message)s", level=logging.DEBUG
|
||||
)
|
||||
|
||||
with HorusLib(mode=mode, verbose=False, callback=frame_callback, sample_rate=48000, rate=300) as horus:
|
||||
with HorusLib(mode=mode, verbose=False, callback=frame_callback, sample_rate=rate, rate=100) as horus:
|
||||
#horus.set_estimator_limits(10.0, 3000.0)
|
||||
with open(filename, "rb") as f:
|
||||
while True:
|
||||
# Fixed read size - 2000 samples
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[tool.poetry]
|
||||
name = "horusdemodlib"
|
||||
version = "0.1.16"
|
||||
version = "0.1.17"
|
||||
description = "Project Horus HAB Telemetry Demodulators"
|
||||
authors = ["Mark Jessop"]
|
||||
license = "LGPL-2.1-or-later"
|
||||
|
|
|
@ -628,11 +628,12 @@ void fsk_demod_core(struct FSK *fsk, uint8_t rx_bits[], float rx_sd[], COMP fsk_
|
|||
modem_probe_samp_f("t_f_est",fsk->f_est,M);
|
||||
#endif
|
||||
float *f_est;
|
||||
if (fsk->freq_est_type)
|
||||
|
||||
if (fsk->freq_est_type){
|
||||
f_est = fsk->f2_est;
|
||||
else
|
||||
}else{
|
||||
f_est = fsk->f_est;
|
||||
|
||||
}
|
||||
/* update filter (integrator) memory by shifting in nin samples */
|
||||
for(m=0; m<M; m++) {
|
||||
for(i=0,j=Nmem-nold; i<nold; i++,j++)
|
||||
|
@ -1003,6 +1004,7 @@ void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats){
|
|||
stats->neyetr = fsk->stats->neyetr;
|
||||
memcpy(stats->rx_eye, fsk->stats->rx_eye, sizeof(stats->rx_eye));
|
||||
memcpy(stats->f_est, fsk->stats->f_est, fsk->mode*sizeof(float));
|
||||
|
||||
|
||||
/* these fields not used for FSK so set to something sensible */
|
||||
|
||||
|
|
|
@ -921,7 +921,12 @@ void horus_get_modem_extended_stats (struct horus *hstates, struct MODEM_STATS *
|
|||
|
||||
assert(hstates->mFSK <= MODEM_STATS_MAX_F_EST);
|
||||
for (i=0; i<hstates->mFSK; i++) {
|
||||
stats->f_est[i] = hstates->fsk->f_est[i];
|
||||
// Grab the appropriate frequency estimator data.
|
||||
if (hstates->fsk->freq_est_type){
|
||||
stats->f_est[i] = hstates->fsk->f2_est[i];
|
||||
} else {
|
||||
stats->f_est[i] = hstates->fsk->f_est[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue