Version initiale du logiciel. Développement commencé le 06/01/2026, en reprenant certaines parties/idées de miniDart, que j'ai écrit quelques années plus tôt
Cette révision appartient à :
83
inc/modulations.h
Fichier normal
83
inc/modulations.h
Fichier normal
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* modulations.h fichier d'en-tête
|
||||
* Licence GPL v2
|
||||
* Author and copyright : Eric Bachard 2026/01/08 18h03
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MODULATIONS_H
|
||||
#define __MODULATIONS_H
|
||||
|
||||
#define DEFAULT_WORD_SIZE 8
|
||||
#define WORD_SIZE_MAX 24
|
||||
|
||||
#define DEFAULT_SAMPLES_PER_BIT 400
|
||||
#define SAMPLES_PER_BIT_MAX 400
|
||||
|
||||
#define VTOGGLEBUTTON_WIDTH 30.8f
|
||||
#define CHILD2_WIDTH 300.0f
|
||||
#define LARGE_CHILD2_WIDTH 400.0f
|
||||
#define CANVAS_HEIGHT 400.0f
|
||||
|
||||
#define SINUS_AMPLITUDE (0.35 * CANVAS_HEIGHT)
|
||||
|
||||
#include "application.h"
|
||||
|
||||
|
||||
typedef enum DigitalModulationType
|
||||
{
|
||||
// Amplitude
|
||||
MOD_OOK_TYPE = 0,
|
||||
MOD_ASK_TYPE = 1,
|
||||
MOD_MASK_TYPE = 2,
|
||||
// Phase
|
||||
MOD_BPSK_TYPE = 3,
|
||||
MOD_DPSK_TYPE = 4,
|
||||
// Fréquence
|
||||
MOD_FSK_TYPE = 5,
|
||||
MOD_MFSK_TYPE = 6,
|
||||
// M-QAM
|
||||
MOD_M_QAM_TYPE = 7,
|
||||
MOD_4_QAM_TYPE = 8,
|
||||
MOD_16_QAM_TYPE = 9,
|
||||
// We can dream (wifi 7)
|
||||
MOD_256_QAM_TYPE = 10,
|
||||
// Should never be used
|
||||
NOT_A_MODULATION = 100
|
||||
} DigitalModulationType;
|
||||
|
||||
class DigitalModulation
|
||||
{
|
||||
public:
|
||||
// Ctor
|
||||
DigitalModulation();
|
||||
|
||||
// Dtor
|
||||
~DigitalModulation();
|
||||
|
||||
short int AmplitudeDigitalModulation(float *, int *, DigitalModulationType *);
|
||||
short int FrequencyDigitalModulation(float *, int *, DigitalModulationType *);
|
||||
short int PhaseDigitalModulation (float *, int *, DigitalModulationType *);
|
||||
short int M_QAM_DigitalModulation (float *, int *, DigitalModulationType *);
|
||||
|
||||
inline int getWordSize() { return mdWordSize; }
|
||||
inline void setWordSize(int aWordSize) { mdWordSize = aWordSize; }
|
||||
|
||||
inline DigitalModulationType get_AM_DigitalModulationType() { return md_AM_DigitalModulation_t; }
|
||||
inline DigitalModulationType get_FM_DigitalModulationType() { return md_FM_DigitalModulation_t; }
|
||||
inline DigitalModulationType get_PM_DigitalModulationType() { return md_PM_DigitalModulation_t; }
|
||||
inline DigitalModulationType getM_QAM_DigitalModulationType() { return md_M_QAM_DigitalModulation_t; }
|
||||
|
||||
void setDigitalModulationType (TAB_Name aTab, DigitalModulationType aType);
|
||||
|
||||
private:
|
||||
int mdWordSize;
|
||||
|
||||
DigitalModulationType md_AM_DigitalModulation_t;
|
||||
DigitalModulationType md_FM_DigitalModulation_t;
|
||||
DigitalModulationType md_PM_DigitalModulation_t;
|
||||
DigitalModulationType md_M_QAM_DigitalModulation_t;
|
||||
};
|
||||
|
||||
|
||||
#endif /* __MODULATIONS_H */
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur