void RealtimeWindow::Start() // when start button is pressed { if (status&RT_RUNNING) { newLap(); } else { status |=RT_RUNNING; deviceController->start(); // start device load_period.restart(); startButton->setText(tr("Lap/Interval")); recordSelector->setEnabled(false); streamSelector->setEnabled(false); deviceSelector->setEnabled(false); session_time.start(); session_elapsed_msec = 0; lap_time.start(); lap_elapsed_msec = 0; if (status & RT_WORKOUT) { load_timer->start(LOADRATE); // start recording } if (recordSelector->isChecked()) { status |= RT_RECORDING; } if (status & RT_RECORDING) { QDateTime now = QDateTime::currentDateTime(); // setup file QString filename = now.toString(QString("yyyy_MM_dd_hh_mm_ss")) + QString(".csv"); QString fulltarget = home.absolutePath() + "/" + filename; if (recordFile) delete recordFile; recordFile = new QFile(fulltarget); if (!recordFile->open(QFile::WriteOnly | QFile::Truncate)) { status &= ~RT_RECORDING; } else { // CSV File header QTextStream recordFileStream(recordFile); recordFileStream << "Minutes,Torq (N-m),Km/h,Watts,Km,Cadence,Hrate,ID,Altitude (m)\n"; disk_timer->start(SAMPLERATE); // start screen } } // stream if (status & RT_STREAMING) { streamController->start(); stream_timer->start(STREAMRATE); } gui_timer->start(REFRESHRATE); // start recording } }
void RealtimeWindow::Start() // when start button is pressed { if (status&RT_RUNNING) { newLap(); } else { status |=RT_RUNNING; deviceController->start(); // start device startButton->setText(tr("Lap/Interval")); recordSelector->setEnabled(false); streamSelector->setEnabled(false); deviceSelector->setEnabled(false); if (status & RT_WORKOUT) { load_timer->start(LOADRATE); // start recording } if (status & RT_RECORDING) { // setup file QDate date = QDate().currentDate(); QTime time = QTime().currentTime(); QDateTime now(date, time); QChar zero = QLatin1Char ( '0' ); QString filename = QString ( "%1_%2_%3_%4_%5_%6.csv" ) .arg ( now.date().year(), 4, 10, zero ) .arg ( now.date().month(), 2, 10, zero ) .arg ( now.date().day(), 2, 10, zero ) .arg ( now.time().hour(), 2, 10, zero ) .arg ( now.time().minute(), 2, 10, zero ) .arg ( now.time().second(), 2, 10, zero ); QString fulltarget = home.absolutePath() + "/" + filename; if (recordFile) delete recordFile; recordFile = new QFile(fulltarget); if (!recordFile->open(QFile::WriteOnly | QFile::Truncate)) { status &= ~RT_RECORDING; } else { // CSV File header QTextStream recordFileStream(recordFile); recordFileStream << "Minutes,Torq (N-m),Km/h,Watts,Km,Cadence,Hrate,ID,Altitude (m)\n"; disk_timer->start(SAMPLERATE); // start screen } } // stream if (status & RT_STREAMING) { streamController->start(); stream_timer->start(STREAMRATE); } gui_timer->start(REFRESHRATE); // start recording } }
layout->setSpacing(0); layout->setContentsMargins(3,3,3,3); valueLabel = new QLabel(this); valueLabel->setAlignment(Qt::AlignCenter | Qt::AlignVCenter); layout->addWidget(valueLabel); // get updates.. connect(mainWindow, SIGNAL(telemetryUpdate(RealtimeData)), this, SLOT(telemetryUpdate(RealtimeData))); connect(seriesSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(seriesChanged())); connect(averageSlider, SIGNAL(valueChanged(int)),this, SLOT(setAverageFromSlider())); connect(averageEdit, SIGNAL(textChanged(const QString)), this, SLOT(setAverageFromText(const QString))); connect(mainWindow, SIGNAL(configChanged()), this, SLOT(seriesChanged())); connect(mainWindow, SIGNAL(stop()), this, SLOT(stop())); connect(mainWindow, SIGNAL(start()), this, SLOT(start())); connect(mainWindow, SIGNAL(newLap()), this, SLOT(onNewLap())); // setup colors seriesChanged(); // setup fontsize etc resizeEvent(NULL); // set to zero resetValues(); } void DialWindow::lap(int lapnumber) { lapNumber = lapnumber;
// display label... QVBoxLayout *layout = new QVBoxLayout; layout->setSpacing(0); layout->setContentsMargins(3,3,3,3); valueLabel = new QLabel(this); valueLabel->setAlignment(Qt::AlignCenter | Qt::AlignVCenter); layout->addWidget(valueLabel); setChartLayout(layout); // get updates.. connect(context, SIGNAL(telemetryUpdate(RealtimeData)), this, SLOT(telemetryUpdate(RealtimeData))); connect(context, SIGNAL(configChanged(qint32)), this, SLOT(seriesChanged())); connect(context, SIGNAL(stop()), this, SLOT(stop())); connect(context, SIGNAL(start()), this, SLOT(start())); connect(context, SIGNAL(newLap()), this, SLOT(onNewLap())); connect(seriesSelector, SIGNAL(currentIndexChanged(int)), this, SLOT(seriesChanged())); connect(averageSlider, SIGNAL(valueChanged(int)),this, SLOT(setAverageFromSlider())); connect(averageEdit, SIGNAL(textChanged(const QString)), this, SLOT(setAverageFromText(const QString))); // setup colors seriesChanged(); // setup fontsize etc resizeEvent(NULL); // set to zero resetValues(); }