1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-05 15:34:57 -04:00

add new columns to satellite tracker table (time to next event, pass duration),

This commit is contained in:
DreamNik
2021-09-01 21:03:14 +03:00
parent feaacd390f
commit 82c2a1c775
4 changed files with 39 additions and 4 deletions
@@ -989,6 +989,8 @@ void SatelliteTrackerGUI::resizeTable()
ui->satTable->setItem(row, SAT_COL_NAME, new QTableWidgetItem("Satellite123"));
ui->satTable->setItem(row, SAT_COL_AZ, new QTableWidgetItem("360"));
ui->satTable->setItem(row, SAT_COL_EL, new QTableWidgetItem("-90"));
ui->satTable->setItem(row, SAT_COL_TNE, new QTableWidgetItem("9999:99 AOS"));
ui->satTable->setItem(row, SAT_COL_DUR, new QTableWidgetItem("999:99"));
ui->satTable->setItem(row, SAT_COL_AOS, new QTableWidgetItem("+1 10:17"));
ui->satTable->setItem(row, SAT_COL_LOS, new QTableWidgetItem("+1 10:17"));
ui->satTable->setItem(row, SAT_COL_MAX_EL, new QTableWidgetItem("90"));
@@ -1022,6 +1024,19 @@ QString SatelliteTrackerGUI::formatDaysTime(qint64 days, QDateTime dateTime)
return dt.time().toString(QString("hh:mm %1").arg(days));
}
QString SatelliteTrackerGUI::formatSecondsHHMM(qint64 seconds)
{
char const* sign = "";
if(seconds < 0)
{
sign = "-";
seconds = -seconds;
}
return QString("%1%2:%3").arg(sign).arg(seconds/60).arg(seconds%60,2,10,QChar('0'));
}
// Table item showing some text, but sorted by datetime set as user data
class DateTimeSortedTableWidgetItem : public QTableWidgetItem {
public:
@@ -1113,9 +1128,14 @@ void SatelliteTrackerGUI::updateTable(SatelliteState *satState)
if (satState->m_passes.size() > 0)
{
// Get number of days to AOS/LOS
QDate currentDate = QDate::currentDate();
int daysToAOS = currentDate.daysTo(satState->m_passes[0]->m_aos.date());
int daysToLOS = currentDate.daysTo(satState->m_passes[0]->m_los.date());
QDateTime currentDateTime = QDateTime::currentDateTime();
int daysToAOS = currentDateTime.daysTo(satState->m_passes[0]->m_aos);
int daysToLOS = currentDateTime.daysTo(satState->m_passes[0]->m_los);
if( satState->m_passes[ 0 ]->m_aos > currentDateTime )
items[SAT_COL_TNE]->setText(formatSecondsHHMM(currentDateTime.secsTo(satState->m_passes[0]->m_aos))+" AOS");
else
items[SAT_COL_TNE]->setText(formatSecondsHHMM(currentDateTime.secsTo(satState->m_passes[0]->m_los))+" LOS");
items[SAT_COL_DUR]->setText(formatSecondsHHMM(satState->m_passes[0]->m_aos.secsTo(satState->m_passes[0]->m_los)));
items[SAT_COL_AOS]->setText(formatDaysTime(daysToAOS, satState->m_passes[0]->m_aos));
items[SAT_COL_AOS]->setData(Qt::UserRole, satState->m_passes[0]->m_aos);
items[SAT_COL_LOS]->setText(formatDaysTime(daysToLOS, satState->m_passes[0]->m_los));
@@ -1128,6 +1148,8 @@ void SatelliteTrackerGUI::updateTable(SatelliteState *satState)
}
else
{
items[SAT_COL_TNE]->setText("");
items[SAT_COL_DUR]->setText("");
items[SAT_COL_AOS]->setText("");
items[SAT_COL_LOS]->setText("");
items[SAT_COL_MAX_EL]->setData(Qt::DisplayRole, QVariant());