hi sir, i am sudhakar, actually i have a problem in real time data plotting. i copied code from http://www.qcustomplot.com/index.php/demos/realtimedatademo this page. everything is ok than dataTimer. it is saying (issue is)
C:\Users\DEBEL\Desktop\Projects\Qt2\serialtest\mainwindow.cpp:42: error: 'dataTimer' was not declared in this scope connect(&dataTimer,SIGNAL(timeout()),this,SLOT(realtimedata()));.
i dont know how to resolve this issue. i hope u people will make me reply with solution.
this is my code
ui->Plot->addGraph(); // blue line ui->Plot->graph(0)->setPen(QPen(QColor(40, 110, 255))); QSharedPointer<QCPAxisTickerTime> timeTicker(new QCPAxisTickerTime); timeTicker->setTimeFormat("%h:%m:%s"); ui->Plot->xAxis->setTicker(timeTicker); ui->Plot->axisRect()->setupFullAxesBox(); ui->Plot->yAxis->setRange(-1.2, 1.2); // make left and bottom axes transfer their ranges to right and top axes: connect(ui->Plot->xAxis,SIGNAL(rangeChanged(QCPRange)),SLOT(setRange(QCPRange))); connect(ui->Plot->yAxis,SIGNAL(rangeChanged(QCPRange)),SLOT(setRange(QCPRange))); // setup a timer that repeatedly calls MainWindow::realtimeDataSlot: connect(&dataTimer,SIGNAL(timeout()),this,SLOT(realtimedata())); dataTimer.start(0); // Interval 0 means to refresh as fast as possible
this is my slot
void MainWindow::realtimedata() { static QTime time(QTime::currentTime()); // calculate two new data points: double key = time.elapsed()/1000.0; // time elapsed since start of demo, in seconds static double lastPointKey = 0; if (key-lastPointKey > 0.002) // at most add point every 2 ms { // add data to lines: ui->Plot->graph(0)->addData(key, qSin(key)+qrand()/(double)RAND_MAX*1*qSin(key/0.3843)); //ui->Plot->graph(1)->addData(key, qCos(key)+qrand()/(double)RAND_MAX*0.5*qSin(key/0.4364)); // rescale value (vertical) axis to fit the current data: //ui->customPlot->graph(0)->rescaleValueAxis(); //ui->customPlot->graph(1)->rescaleValueAxis(true); lastPointKey = key; } // make key axis range scroll with the data (at a constant range size of 8): ui->Plot->xAxis->setRange(key, 8, Qt::AlignRight); ui->Plot->replot(); // calculate frames per second: static double lastFpsKey; static int frameCount; ++frameCount; if (key-lastFpsKey > 2) // average fps over 2 seconds { ui->statusBar->showMessage( QString("%1 FPS, Total Data points: %2") .arg(frameCount/(key-lastFpsKey), 0, 'f', 0) .arg(ui->Plot->graph(0)->data()->size()) , 0); lastFpsKey = key; frameCount = 0; } }
R.Sudhakar
Thanks and Regards