/****************************************************************************** * Qwt Widget Library * Copyright (C) 1997 Josef Wilgen * Copyright (C) 2002 Uwe Rathmann * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ #ifndef QWT_SAMPLING_THREAD_H #define QWT_SAMPLING_THREAD_H #include "qwt_global.h" #include /*! \brief A thread collecting samples at regular intervals. Continuous signals are converted into a discrete signal by collecting samples at regular intervals. A discrete signal can be displayed by a QwtPlotSeriesItem on a QwtPlot widget. QwtSamplingThread starts a thread calling periodically sample(), to collect and store ( or emit ) a single sample. \sa QwtPlotCurve, QwtPlotSeriesItem */ class QWT_EXPORT QwtSamplingThread : public QThread { Q_OBJECT public: virtual ~QwtSamplingThread(); double interval() const; double elapsed() const; public Q_SLOTS: void setInterval( double interval ); void stop(); protected: explicit QwtSamplingThread( QObject* parent = NULL ); virtual void run() QWT_OVERRIDE; /*! Collect a sample \param elapsed Time since the thread was started in seconds \note Due to a bug in previous version elapsed was passed as seconds instead of miliseconds. To avoid breaking existing code we stay with seconds for now. */ virtual void sample( double elapsed ) = 0; private: class PrivateData; PrivateData* m_data; }; #endif