4 #include "core/afv/model/atcstationmodel.h"
8 using namespace swift::core::afv;
10 namespace swift::core::afv::model
13 : m_callsign(callsign), m_transceiver(transceiver)
24 return QString::number(m_transceiver.
frequencyHz / 1000000.0,
'f', 3);
29 const double sqrtAltM = qSqrt(m_transceiver.
HeightMslM);
30 const double radioFactor = 4193.18014745372;
31 return radioFactor * sqrtAltM;
41 for (
const auto &station : atcStations)
43 if (!m_atcStations.contains(station)) { addStation(station); }
47 for (
int i = m_atcStations.size() - 1; i >= 0; i--)
50 if (!m_atcStations.contains(station)) { removeStationAtPosition(i); }
57 m_atcStations << atcStation;
61 void CSampleAtcStationModel::removeStationAtPosition(
int i)
63 beginRemoveRows(QModelIndex(), i, i);
64 m_atcStations.removeAt(i);
71 return m_atcStations.count();
76 if (index.row() < 0 || index.row() >= m_atcStations.count())
return QVariant();
79 if (role == CallsignRole)
return atcStation.
callsign();
80 if (role == LatitudeRole)
return atcStation.
latitude();
81 if (role == LongitudeRole)
return atcStation.
longitude();
84 if (role == FrequencyKhzRole)
return atcStation.
frequency() / 1000;
91 roles[CallsignRole] =
"callsign";
92 roles[LatitudeRole] =
"latitude";
93 roles[LongitudeRole] =
"longitude";
94 roles[RadioDistanceRole] =
"radioDistanceM";
95 roles[FrequencyRole] =
"frequencyAsString";
96 roles[FrequencyKhzRole] =
"frequencyKhz";
QString formattedFrequency() const
Getter.
const QString & callsign() const
Getter.
quint32 frequency() const
Getter.
double latitude() const
Getter.
double radioDistanceM() const
Getter.
double longitude() const
Getter.
CSampleAtcStation()=default
Ctor.
void updateAtcStations(const QVector< CSampleAtcStation > &atcStations)
Update the stations.
QHash< int, QByteArray > roleNames() const
copydoc QAbstractListModel::roleNames
~CSampleAtcStationModel()
Dtor.
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
copydoc QAbstractListModel::data
CSampleAtcStationModel(QObject *parent=nullptr)
Ctor.
int rowCount(const QModelIndex &parent=QModelIndex()) const
copydoc QAbstractListModel::rowCount
double HeightMslM
Properties.
quint32 frequencyHz
Properties.