#include "dsd.h"
#include "p25p1_hdu.h"
#include "p25p1_const.h"
#include "p25p1_heuristics.h"
Go to the source code of this file.
◆ correct_hamming_dibits()
| void correct_hamming_dibits |
( |
char * | hex_data, |
|
|
int | hex_count, |
|
|
AnalogSignal * | analog_signal_array ) |
Correct the information in analog_signal_array according with the content of data, which has been error corrected and should be valid.
- Parameters
-
| Dibits | that have already been error corrected and we trust are correct. \count Number of dibits. |
| analog_signal_array | Pointer to a sequence of AnalogSignal elements, as many as the value of count. |
◆ process_IMBE()
Separate imbe frames and deinterleave. This important methods read the IMBE data from the stream and passes it to the vocoder to produce audio.
- Parameters
-
| opts | The DSD options. |
| state | The DSD state. \status_count An index that allows us to skip the status words interleaved every 36 dibit in the data stream. |
◆ read_and_correct_hex_word()
| void read_and_correct_hex_word |
( |
dsd_opts * | opts, |
|
|
dsd_state * | state, |
|
|
char * | hex, |
|
|
int * | status_count, |
|
|
AnalogSignal * | analog_signal_array, |
|
|
int * | analog_signal_index ) |
Reads an hex word, its parity bits and attempts to error correct it using the Hamming FEC.
- Parameters
-
| opts | The DSD options. |
| state | The DSD state. |
| hex | Pointer where to store the read hex word. Six bytes, one per bit. |
| status_count | An index that allows us to skip the status words interleaved every 36 dibit in the data stream. |
| analog_singal_array | Pointer to a sequence of AnalogSignal elements. |
| analog_signal_index | The current index in the analog_singal_array. This value is increased on each dibit read. |