mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-10-31 15:07:12 -04:00
M17 code reorganization
This commit is contained in:
parent
e39277269c
commit
ac2a45ce88
@ -549,10 +549,7 @@ add_subdirectory(qrtplib)
|
|||||||
add_subdirectory(swagger)
|
add_subdirectory(swagger)
|
||||||
add_subdirectory(devices)
|
add_subdirectory(devices)
|
||||||
add_subdirectory(sdrbench)
|
add_subdirectory(sdrbench)
|
||||||
|
add_subdirectory(modemm17)
|
||||||
if (LINUX)
|
|
||||||
add_subdirectory(modems)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (BUILD_GUI)
|
if (BUILD_GUI)
|
||||||
add_subdirectory(sdrgui)
|
add_subdirectory(sdrgui)
|
||||||
|
@ -139,16 +139,16 @@
|
|||||||
# define SDRBENCH_API
|
# define SDRBENCH_API
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* the 'M17_API' controls the import/export of 'm17' symbols
|
/* the 'MODEMM17_API' controls the import/export of 'modemm17' symbols
|
||||||
*/
|
*/
|
||||||
#if !defined(sdrangel_STATIC)
|
#if !defined(sdrangel_STATIC)
|
||||||
# ifdef m17_EXPORTS
|
# ifdef modemm17_EXPORTS
|
||||||
# define M17_API __SDR_EXPORT
|
# define MODEMM17_API __SDR_EXPORT
|
||||||
# else
|
# else
|
||||||
# define M17_API __SDR_IMPORT
|
# define MODEMM17_API __SDR_IMPORT
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# define M17_API
|
# define MODEMM17_API
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __SDRANGEL_EXPORT_H */
|
#endif /* __SDRANGEL_EXPORT_H */
|
||||||
|
56
modemm17/CMakeLists.txt
Normal file
56
modemm17/CMakeLists.txt
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
project(modemm17)
|
||||||
|
|
||||||
|
set(modemm17_SOURCES
|
||||||
|
Correlator.cpp
|
||||||
|
FreqDevEstimator.cpp
|
||||||
|
Golay24.cpp
|
||||||
|
M17Demodulator.cpp
|
||||||
|
M17Modulator.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set(modemm17_HEADERS
|
||||||
|
ax25_frame.h
|
||||||
|
CarrierDetect.h
|
||||||
|
ClockRecovery.h
|
||||||
|
Convolution.h
|
||||||
|
Correlator.h
|
||||||
|
CRC16.h
|
||||||
|
DataCarrierDetect.h
|
||||||
|
DeviationError.h
|
||||||
|
Filter.h
|
||||||
|
FirFilter.h
|
||||||
|
FreqDevEstimator.h
|
||||||
|
FrequencyError.h
|
||||||
|
Fsk4Demod.h
|
||||||
|
Golay24.h
|
||||||
|
IirFilter.h
|
||||||
|
LinkSetupFrame.h
|
||||||
|
M17Demodulator.h
|
||||||
|
M17FrameDecoder.h
|
||||||
|
M17Framer.h
|
||||||
|
M17Modulator.h
|
||||||
|
M17Randomizer.h
|
||||||
|
M17Synchronizer.h
|
||||||
|
PhaseEstimator.h
|
||||||
|
PolynomialInterleaver.h
|
||||||
|
queue.h
|
||||||
|
SlidingDFT.h
|
||||||
|
SymbolEvm.h
|
||||||
|
Trellis.h
|
||||||
|
Util.h
|
||||||
|
Viterbi.h
|
||||||
|
)
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${CMAKE_SOURCE_DIR}/exports
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(modemm17 SHARED
|
||||||
|
${modemm17_SOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(modemm17
|
||||||
|
Qt5::Core
|
||||||
|
)
|
||||||
|
|
||||||
|
install(TARGETS modemm17 DESTINATION ${INSTALL_LIB_DIR})
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
namespace modemm17 {
|
namespace modemm17 {
|
||||||
|
|
||||||
struct M17_API Correlator
|
struct MODEMM17_API Correlator
|
||||||
{
|
{
|
||||||
static constexpr size_t SYMBOLS = 8;
|
static constexpr size_t SYMBOLS = 8;
|
||||||
static constexpr size_t SAMPLES_PER_SYMBOL = 10;
|
static constexpr size_t SAMPLES_PER_SYMBOL = 10;
|
@ -26,7 +26,7 @@ namespace modemm17 {
|
|||||||
* Estimates are expected to be updated at each sync word. But they can
|
* Estimates are expected to be updated at each sync word. But they can
|
||||||
* be updated more frequently, such as during the preamble.
|
* be updated more frequently, such as during the preamble.
|
||||||
*/
|
*/
|
||||||
class M17_API FreqDevEstimator
|
class MODEMM17_API FreqDevEstimator
|
||||||
{
|
{
|
||||||
using sample_filter_t = BaseIirFilter<3>;
|
using sample_filter_t = BaseIirFilter<3>;
|
||||||
|
|
@ -81,7 +81,7 @@ constexpr array<T, N> sort(array<T, N> array)
|
|||||||
} // Golay24_detail
|
} // Golay24_detail
|
||||||
|
|
||||||
|
|
||||||
struct M17_API Golay24
|
struct MODEMM17_API Golay24
|
||||||
{
|
{
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
struct SyndromeMapEntry
|
struct SyndromeMapEntry
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
namespace modemm17 {
|
namespace modemm17 {
|
||||||
|
|
||||||
struct M17_API M17Demodulator
|
struct MODEMM17_API M17Demodulator
|
||||||
{
|
{
|
||||||
static const uint16_t SAMPLE_RATE = 48000;
|
static const uint16_t SAMPLE_RATE = 48000;
|
||||||
static const uint16_t SYMBOL_RATE = 4800;
|
static const uint16_t SYMBOL_RATE = 4800;
|
@ -14,7 +14,7 @@
|
|||||||
namespace modemm17
|
namespace modemm17
|
||||||
{
|
{
|
||||||
|
|
||||||
inline constexpr std::array<int8_t, 61> make_p1() {
|
inline std::array<int8_t, 61> make_p1() {
|
||||||
std::array<int8_t, 61> result{};
|
std::array<int8_t, 61> result{};
|
||||||
for (size_t i = 0, j = 2; i != 61; ++i) {
|
for (size_t i = 0, j = 2; i != 61; ++i) {
|
||||||
if (i == j) {
|
if (i == j) {
|
||||||
@ -107,7 +107,7 @@ struct CostTable
|
|||||||
using cost_table_t = std::array<std::array<uint8_t, InputValues>, K>;
|
using cost_table_t = std::array<std::array<uint8_t, InputValues>, K>;
|
||||||
|
|
||||||
template <typename Trellis_>
|
template <typename Trellis_>
|
||||||
static constexpr cost_table_t makeCostTable(const Trellis_& trellis)
|
static constexpr cost_table_t makeCostTable()
|
||||||
{
|
{
|
||||||
cost_table_t result;
|
cost_table_t result;
|
||||||
for (size_t i = 0; i != K; ++i)
|
for (size_t i = 0; i != K; ++i)
|
@ -146,7 +146,10 @@ auto llr(float sample)
|
|||||||
template <size_t M, typename T, size_t N, typename U, size_t IN>
|
template <size_t M, typename T, size_t N, typename U, size_t IN>
|
||||||
auto depunctured(std::array<T, N> puncture_matrix, std::array<U, IN> in)
|
auto depunctured(std::array<T, N> puncture_matrix, std::array<U, IN> in)
|
||||||
{
|
{
|
||||||
static_assert(M % N == 0);
|
if (M % N != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
std::array<U, M> result;
|
std::array<U, M> result;
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
size_t pindex = 0;
|
size_t pindex = 0;
|
@ -1,56 +0,0 @@
|
|||||||
project(modems)
|
|
||||||
|
|
||||||
set(modems_SOURCES
|
|
||||||
m17/Correlator.cpp
|
|
||||||
m17/FreqDevEstimator.cpp
|
|
||||||
m17/Golay24.cpp
|
|
||||||
m17/M17Demodulator.cpp
|
|
||||||
m17/M17Modulator.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set(modems_HEADERS
|
|
||||||
m17/ax25_frame.h
|
|
||||||
m17/CarrierDetect.h
|
|
||||||
m17/ClockRecovery.h
|
|
||||||
m17/Convolution.h
|
|
||||||
m17/Correlator.h
|
|
||||||
m17/CRC16.h
|
|
||||||
m17/DataCarrierDetect.h
|
|
||||||
m17/DeviationError.h
|
|
||||||
m17/Filter.h
|
|
||||||
m17/FirFilter.h
|
|
||||||
m17/FreqDevEstimator.h
|
|
||||||
m17/FrequencyError.h
|
|
||||||
m17/Fsk4Demod.h
|
|
||||||
m17/Golay24.h
|
|
||||||
m17/IirFilter.h
|
|
||||||
m17/LinkSetupFrame.h
|
|
||||||
m17/M17Demodulator.h
|
|
||||||
m17/M17FrameDecoder.h
|
|
||||||
m17/M17Framer.h
|
|
||||||
m17/M17Modulator.h
|
|
||||||
m17/M17Randomizer.h
|
|
||||||
m17/M17Synchronizer.h
|
|
||||||
m17/PhaseEstimator.h
|
|
||||||
m17/PolynomialInterleaver.h
|
|
||||||
m17/queue.h
|
|
||||||
m17/SlidingDFT.h
|
|
||||||
m17/SymbolEvm.h
|
|
||||||
m17/Trellis.h
|
|
||||||
m17/Util.h
|
|
||||||
m17/Viterbi.h
|
|
||||||
)
|
|
||||||
|
|
||||||
include_directories(
|
|
||||||
${CMAKE_SOURCE_DIR}/exports
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(modems SHARED
|
|
||||||
${modems_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(modems
|
|
||||||
Qt5::Core
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS modems DESTINATION ${INSTALL_LIB_DIR})
|
|
@ -97,7 +97,7 @@ if (ENABLE_CHANNELRX_DEMODFREEDV AND CODEC2_FOUND)
|
|||||||
add_subdirectory(demodfreedv)
|
add_subdirectory(demodfreedv)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (LINUX AND ENABLE_CHANNELRX_DEMODM17 AND CODEC2_FOUND)
|
if (ENABLE_CHANNELRX_DEMODM17 AND CODEC2_FOUND)
|
||||||
add_subdirectory(demodm17)
|
add_subdirectory(demodm17)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ set(m17_HEADERS
|
|||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||||
${CODEC2_INCLUDE_DIR}
|
${CODEC2_INCLUDE_DIR}
|
||||||
${CMAKE_SOURCE_DIR}/modems
|
${CMAKE_SOURCE_DIR}/modemm17
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT SERVER_MODE)
|
if(NOT SERVER_MODE)
|
||||||
@ -69,7 +69,7 @@ target_link_libraries(${TARGET_NAME}
|
|||||||
${TARGET_LIB_GUI}
|
${TARGET_LIB_GUI}
|
||||||
swagger
|
swagger
|
||||||
${CODEC2_LIBRARIES}
|
${CODEC2_LIBRARIES}
|
||||||
modems
|
modemm17
|
||||||
)
|
)
|
||||||
|
|
||||||
install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
|
install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "audio/audiofifo.h"
|
#include "audio/audiofifo.h"
|
||||||
#include "util/ax25.h"
|
#include "util/ax25.h"
|
||||||
|
|
||||||
#include "m17/ax25_frame.h"
|
#include "ax25_frame.h"
|
||||||
#include "m17demod.h"
|
#include "m17demod.h"
|
||||||
#include "m17demodprocessor.h"
|
#include "m17demodprocessor.h"
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
|
||||||
#include "audio/audiocompressor.h"
|
#include "audio/audiocompressor.h"
|
||||||
#include "m17/M17Demodulator.h"
|
#include "M17Demodulator.h"
|
||||||
#include "m17demodfilters.h"
|
#include "m17demodfilters.h"
|
||||||
|
|
||||||
class AudioFifo;
|
class AudioFifo;
|
||||||
|
@ -63,6 +63,6 @@ if (ENABLE_CHANNELTX_MODFREEDV AND CODEC2_FOUND)
|
|||||||
add_subdirectory(modfreedv)
|
add_subdirectory(modfreedv)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (LINUX AND ENABLE_CHANNELTX_MODM17 AND CODEC2_FOUND)
|
if (ENABLE_CHANNELTX_MODM17 AND CODEC2_FOUND)
|
||||||
add_subdirectory(modm17)
|
add_subdirectory(modm17)
|
||||||
endif()
|
endif()
|
||||||
|
@ -29,7 +29,7 @@ set(modm17_HEADERS
|
|||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||||
${CODEC2_INCLUDE_DIR}
|
${CODEC2_INCLUDE_DIR}
|
||||||
${CMAKE_SOURCE_DIR}/modems
|
${CMAKE_SOURCE_DIR}/modemm17
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT SERVER_MODE)
|
if(NOT SERVER_MODE)
|
||||||
@ -69,7 +69,7 @@ target_link_libraries(${TARGET_NAME}
|
|||||||
${TARGET_LIB_GUI}
|
${TARGET_LIB_GUI}
|
||||||
swagger
|
swagger
|
||||||
${CODEC2_LIBRARIES}
|
${CODEC2_LIBRARIES}
|
||||||
modems
|
modemm17
|
||||||
)
|
)
|
||||||
|
|
||||||
install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
|
install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include <codec2/codec2.h>
|
#include <codec2/codec2.h>
|
||||||
|
|
||||||
#include "m17/M17Modulator.h"
|
#include "M17Modulator.h"
|
||||||
#include "maincore.h"
|
#include "maincore.h"
|
||||||
|
|
||||||
#include "m17modax25.h"
|
#include "m17modax25.h"
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
#include "m17/M17Modulator.h"
|
#include "M17Modulator.h"
|
||||||
#include "dsp/dsptypes.h"
|
#include "dsp/dsptypes.h"
|
||||||
#include "util/message.h"
|
#include "util/message.h"
|
||||||
#include "util/messagequeue.h"
|
#include "util/messagequeue.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user