minor: Cleanup style for pulse_detect_fsk
This commit is contained in:
parent
e3b91622ca
commit
aae921c1db
4 changed files with 24 additions and 25 deletions
|
@ -53,7 +53,7 @@ enum package_types {
|
|||
PULSE_DATA_FSK = 2,
|
||||
};
|
||||
|
||||
/// state data for pulse_FSK_detect()
|
||||
/// state data for pulse_detect_fsk_ functions
|
||||
typedef struct {
|
||||
unsigned int fsk_pulse_length; ///< Counter for internal FSK pulse detection
|
||||
enum {
|
||||
|
@ -72,7 +72,7 @@ typedef struct {
|
|||
int16_t minn;
|
||||
int16_t midd;
|
||||
int skip_samples;
|
||||
} pulse_FSK_state_t;
|
||||
} pulse_detect_fsk_t;
|
||||
|
||||
typedef struct pulse_detect pulse_detect_t;
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
#include <stdint.h>
|
||||
#include "pulse_detect.h"
|
||||
|
||||
void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t *s);
|
||||
void pulse_FSK_wrap_up(pulse_data_t *fsk_pulses, pulse_FSK_state_t *s);
|
||||
void pulse_FSK_detect_mm(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t *s);
|
||||
void pulse_detect_fsk_classic(pulse_detect_fsk_t *s, int16_t fm_n, pulse_data_t *fsk_pulses);
|
||||
void pulse_detect_fsk_wrap_up(pulse_detect_fsk_t *s, pulse_data_t *fsk_pulses);
|
||||
void pulse_detect_fsk_minmax(pulse_detect_fsk_t *s, int16_t fm_n, pulse_data_t *fsk_pulses);
|
||||
|
||||
#define FSK_PULSE_DETECT_START 0
|
||||
enum {
|
||||
|
|
|
@ -261,7 +261,7 @@ struct pulse_detect {
|
|||
|
||||
int verbosity; ///< Debug output verbosity, 0=None, 1=Levels, 2=Histograms
|
||||
|
||||
pulse_FSK_state_t FSK_state;
|
||||
pulse_detect_fsk_t pulse_detect_fsk;
|
||||
};
|
||||
|
||||
pulse_detect_t *pulse_detect_create()
|
||||
|
@ -437,10 +437,10 @@ int pulse_detect_package(pulse_detect_t *pulse_detect, int16_t const *envelope_d
|
|||
fsk_pulses->start_ago = len - s->data_counter;
|
||||
s->pulse_length = 0;
|
||||
s->max_pulse = 0;
|
||||
s->FSK_state = (pulse_FSK_state_t){0};
|
||||
s->FSK_state.var_test_max = INT16_MIN;
|
||||
s->FSK_state.var_test_min = INT16_MAX;
|
||||
s->FSK_state.skip_samples = 40;
|
||||
s->pulse_detect_fsk = (pulse_detect_fsk_t){0};
|
||||
s->pulse_detect_fsk.var_test_max = INT16_MIN;
|
||||
s->pulse_detect_fsk.var_test_min = INT16_MAX;
|
||||
s->pulse_detect_fsk.skip_samples = 40;
|
||||
s->ook_state = PD_OOK_STATE_PULSE;
|
||||
}
|
||||
else { // We are still idle..
|
||||
|
@ -490,9 +490,9 @@ int pulse_detect_package(pulse_detect_t *pulse_detect, int16_t const *envelope_d
|
|||
// FSK Demodulation
|
||||
if (pulses->num_pulses == 0) { // Only during first pulse
|
||||
if (fpdm == FSK_PULSE_DETECT_OLD)
|
||||
pulse_FSK_detect(fm_data[s->data_counter], fsk_pulses, &s->FSK_state);
|
||||
pulse_detect_fsk_classic(&s->pulse_detect_fsk, fm_data[s->data_counter], fsk_pulses);
|
||||
else
|
||||
pulse_FSK_detect_mm(fm_data[s->data_counter], fsk_pulses, &s->FSK_state);
|
||||
pulse_detect_fsk_minmax(&s->pulse_detect_fsk, fm_data[s->data_counter], fsk_pulses);
|
||||
}
|
||||
break;
|
||||
case PD_OOK_STATE_GAP_START: // Beginning of gap - it might be a spurious gap
|
||||
|
@ -509,10 +509,10 @@ int pulse_detect_package(pulse_detect_t *pulse_detect, int16_t const *envelope_d
|
|||
if (fsk_pulses->num_pulses > PD_MIN_PULSES) {
|
||||
// Store last pulse/gap
|
||||
if (fpdm == FSK_PULSE_DETECT_OLD)
|
||||
pulse_FSK_wrap_up(fsk_pulses, &s->FSK_state);
|
||||
pulse_detect_fsk_wrap_up(&s->pulse_detect_fsk, fsk_pulses);
|
||||
// Store estimates
|
||||
fsk_pulses->fsk_f1_est = s->FSK_state.fm_f1_est;
|
||||
fsk_pulses->fsk_f2_est = s->FSK_state.fm_f2_est;
|
||||
fsk_pulses->fsk_f1_est = s->pulse_detect_fsk.fm_f1_est;
|
||||
fsk_pulses->fsk_f2_est = s->pulse_detect_fsk.fm_f2_est;
|
||||
fsk_pulses->ook_low_estimate = s->ook_low_estimate;
|
||||
fsk_pulses->ook_high_estimate = s->ook_high_estimate;
|
||||
pulses->end_ago = len - s->data_counter;
|
||||
|
@ -532,9 +532,9 @@ int pulse_detect_package(pulse_detect_t *pulse_detect, int16_t const *envelope_d
|
|||
// FSK Demodulation (continue during short gap - we might return...)
|
||||
if (pulses->num_pulses == 0) { // Only during first pulse
|
||||
if (fpdm == FSK_PULSE_DETECT_OLD)
|
||||
pulse_FSK_detect(fm_data[s->data_counter], fsk_pulses, &s->FSK_state);
|
||||
pulse_detect_fsk_classic(&s->pulse_detect_fsk, fm_data[s->data_counter], fsk_pulses);
|
||||
else
|
||||
pulse_FSK_detect_mm(fm_data[s->data_counter], fsk_pulses, &s->FSK_state);
|
||||
pulse_detect_fsk_minmax(&s->pulse_detect_fsk, fm_data[s->data_counter], fsk_pulses);
|
||||
}
|
||||
break;
|
||||
case PD_OOK_STATE_GAP:
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "pulse_detect.h"
|
||||
#include "pulse_detect_fsk.h"
|
||||
#include "util.h"
|
||||
#include "decoder.h"
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -40,7 +39,7 @@
|
|||
/// @param fm_n One single sample of FM data
|
||||
/// @param fsk_pulses Will return a pulse_data_t structure for FSK demodulated data
|
||||
/// @param s Internal state
|
||||
void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t *s)
|
||||
void pulse_detect_fsk_classic(pulse_detect_fsk_t *s, int16_t fm_n, pulse_data_t *fsk_pulses)
|
||||
{
|
||||
int const fm_f1_delta = abs(fm_n - s->fm_f1_est); // Get delta from F1 frequency estimate
|
||||
int const fm_f2_delta = abs(fm_n - s->fm_f2_est); // Get delta from F2 frequency estimate
|
||||
|
@ -116,7 +115,7 @@ void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t
|
|||
s->fsk_pulse_length = 0;
|
||||
// When pulse buffer is full go to error state
|
||||
if (fsk_pulses->num_pulses >= PD_MAX_PULSES) {
|
||||
//fprintf(stderr, "pulse_FSK_detect(): Maximum number of pulses reached!\n");
|
||||
//fprintf(stderr, "pulse_detect_fsk_classic(): Maximum number of pulses reached!\n");
|
||||
//s->fsk_state = PD_FSK_STATE_ERROR;
|
||||
// TODO: workaround, specifically for the Inkbird-ITH20R: free some of the buffer
|
||||
pulse_data_shift(fsk_pulses);
|
||||
|
@ -142,7 +141,7 @@ void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t
|
|||
case PD_FSK_STATE_ERROR: // Stay here until cleared
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "pulse_FSK_detect(): Unknown FSK state!!\n");
|
||||
fprintf(stderr, "pulse_detect_fsk_classic(): Unknown FSK state!!\n");
|
||||
s->fsk_state = PD_FSK_STATE_ERROR;
|
||||
} // switch(s->fsk_state)
|
||||
}
|
||||
|
@ -151,7 +150,7 @@ void pulse_FSK_detect(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t
|
|||
///
|
||||
/// @param fsk_pulses Pulse_data_t structure for FSK demodulated data
|
||||
/// @param s Internal state
|
||||
void pulse_FSK_wrap_up(pulse_data_t *fsk_pulses, pulse_FSK_state_t *s)
|
||||
void pulse_detect_fsk_wrap_up(pulse_detect_fsk_t *s, pulse_data_t *fsk_pulses)
|
||||
{
|
||||
if (fsk_pulses->num_pulses < PD_MAX_PULSES) { // Avoid overflow
|
||||
s->fsk_pulse_length++;
|
||||
|
@ -173,7 +172,7 @@ void pulse_FSK_wrap_up(pulse_data_t *fsk_pulses, pulse_FSK_state_t *s)
|
|||
/// @param fm_n One single sample of FM data
|
||||
/// @param fsk_pulses Will return a pulse_data_t structure for FSK demodulated data
|
||||
/// @param s Internal state
|
||||
void pulse_FSK_detect_mm(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state_t *s)
|
||||
void pulse_detect_fsk_minmax(pulse_detect_fsk_t *s, int16_t fm_n, pulse_data_t *fsk_pulses)
|
||||
{
|
||||
int16_t mid = 0;
|
||||
|
||||
|
@ -213,7 +212,7 @@ void pulse_FSK_detect_mm(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state
|
|||
s->fsk_pulse_length = 0;
|
||||
// When pulse buffer is full go to error state
|
||||
if (fsk_pulses->num_pulses >= PD_MAX_PULSES) {
|
||||
//fprintf(stderr, "pulse_FSK_detect(): Maximum number of pulses reached!\n");
|
||||
//fprintf(stderr, "pulse_detect_fsk_minmax(): Maximum number of pulses reached!\n");
|
||||
//s->fsk_state = PD_FSK_STATE_ERROR;
|
||||
// TODO: workaround, specifically for the Inkbird-ITH20R: free some of the buffer
|
||||
pulse_data_shift(fsk_pulses);
|
||||
|
@ -224,7 +223,7 @@ void pulse_FSK_detect_mm(int16_t fm_n, pulse_data_t *fsk_pulses, pulse_FSK_state
|
|||
case PD_FSK_STATE_ERROR: // Stay here until cleared
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "pulse_FSK_detect(): Unknown FSK state!!\n");
|
||||
fprintf(stderr, "pulse_detect_fsk_minmax(): Unknown FSK state!!\n");
|
||||
s->fsk_state = PD_FSK_STATE_ERROR;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue