Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,100 @@
|
||||
#pragma once
|
||||
#include <QJsonDocument>
|
||||
#include <AudioVideoManagement/avm_enums.hpp>
|
||||
#include <CombatNetRadio/svccnrhelper_export.h>
|
||||
#include <CombatNetRadio/Helper/cnr_frequency_planning_helper.h>
|
||||
|
||||
namespace AudioVideoManagement {
|
||||
|
||||
struct SVCCNRHELPER_EXPORT RadioCircuit
|
||||
{
|
||||
RadioCircuit() = default;
|
||||
virtual ~RadioCircuit() = default;
|
||||
|
||||
QString name;
|
||||
FrequencyBand freqBand {FrequencyBand_def::VHF};
|
||||
int radioStationId {0};
|
||||
|
||||
|
||||
virtual bool isValid() const = 0;
|
||||
virtual QJsonObject toJson() const = 0;
|
||||
virtual QString toString() const = 0;
|
||||
virtual int frequencySetDataId() const = 0;
|
||||
};
|
||||
|
||||
struct SVCCNRHELPER_EXPORT RadioCircuitHF : public RadioCircuit
|
||||
{
|
||||
ModulationType modulationType {ModulationType::AM};
|
||||
ChannelSpacingHF channelSpacing {ChannelSpacingHF::CS_100_Hz};
|
||||
int frequency {0}; // Valid: 20.000-30.0000 [Hz]
|
||||
int squelch {0}; // Valid: 0..9
|
||||
|
||||
static const int FREQ_MIN = 2000000;
|
||||
static const int FREQ_MAX = 29975000;
|
||||
static const int SQUELCH_MIN = 1;
|
||||
static const int SQUELCH_MAX = 9;
|
||||
|
||||
RadioCircuitHF()
|
||||
: RadioCircuit()
|
||||
{}
|
||||
bool isValid() const;
|
||||
QJsonObject toJson() const;
|
||||
static RadioCircuitHF* fromJson(const QJsonObject &obj);
|
||||
QString toString() const;
|
||||
int frequencySetDataId() const { return 0; }
|
||||
};
|
||||
|
||||
struct SVCCNRHELPER_EXPORT RadioCircuitUHF: public RadioCircuit
|
||||
{
|
||||
ModulationType modulationType {ModulationType::AM};
|
||||
ChannelSpacing channelSpacing {ChannelSpacing::CS_25_00_kHz};
|
||||
int frequency {0}; // Valid: 225.000.000 - 399.975.000 [Hz]
|
||||
int squelchDB {0}; // Valid: 0 (off), 6-20 [dB]
|
||||
bool clipper {false};
|
||||
bool agc {false};
|
||||
|
||||
static const int FREQ_MIN = 225000000;
|
||||
static const int FREQ_MAX = 399975000;
|
||||
static const int SQUELCH_MIN = 6;
|
||||
static const int SQUELCH_MAX = 20;
|
||||
|
||||
RadioCircuitUHF()
|
||||
: RadioCircuit()
|
||||
{}
|
||||
|
||||
bool isValid() const;
|
||||
QJsonObject toJson() const;
|
||||
static RadioCircuitUHF* fromJson(const QJsonObject &obj);
|
||||
QString toString() const;
|
||||
int frequencySetDataId() const { return 0; }
|
||||
};
|
||||
|
||||
struct SVCCNRHELPER_EXPORT RadioCircuitVHF: public RadioCircuit
|
||||
{
|
||||
RcOperatingMode operatingMode {RcOperatingMode_def::FixedFreqEncNone};
|
||||
int freqSetDataId {0};
|
||||
bool pilotTone {false};
|
||||
|
||||
RadioCircuitVHF(RcOperatingMode _operatingMode, int _frequencySetDataId, bool _pilotTone)
|
||||
: RadioCircuit()
|
||||
, operatingMode(_operatingMode)
|
||||
, freqSetDataId(_frequencySetDataId)
|
||||
, pilotTone(_pilotTone)
|
||||
{}
|
||||
|
||||
RadioCircuitVHF() = default;
|
||||
int frequencySetDataId() const { return freqSetDataId; }
|
||||
bool isValid() const {return freqSetDataId > 0; }
|
||||
QJsonObject toJson() const;
|
||||
static RadioCircuitVHF* fromJson(const QJsonObject &obj);
|
||||
QString toString() const;
|
||||
|
||||
};
|
||||
|
||||
bool SVCCNRHELPER_EXPORT isReadOnly(const std::string& json);
|
||||
QVector<RadioCircuit*> SVCCNRHELPER_EXPORT fromJson(const std::string& json);
|
||||
QSet<int> SVCCNRHELPER_EXPORT frequencySetDataIds(const std::string &frequencyPlanDataProperties);
|
||||
QJsonObject SVCCNRHELPER_EXPORT frequencyPlanningJson(QJsonObject obj, const QString &name, FrequencyBand freqBand, int radioStationId);
|
||||
bool SVCCNRHELPER_EXPORT isAkwMode(RcOperatingMode mode);
|
||||
|
||||
} // namespace AudioVideoManagement
|
||||
Reference in new issue
Block a user