#ifndef DISCRETESTATEWINDOW_H #define DISCRETESTATEWINDOW_H #include #include #include "can_structs.h" namespace Ui { class DiscreteStateWindow; } namespace DWStates { enum DiscreteWindowState { IDLE, COUNTDOWN_SIGNAL, COUNTDOWN_WAITING, GETTING_SIGNAL }; } using namespace DWStates; class DiscreteStateWindow : public QDialog { Q_OBJECT public: explicit DiscreteStateWindow(const QVector *frames, QWidget *parent = 0); ~DiscreteStateWindow(); void showEvent(QShowEvent*); private slots: void updatedFrames(int); void handleStartButton(); void handleTick(); private: Ui::DiscreteStateWindow *ui; const QVector *modelFrames; QList< QVector *> stateFrames; QTimer *timer; DiscreteWindowState operatingState; int ticksUntilStateChange; int ticksPerStateChange; int numToggleStates; int currToggleState; int numIterations; int currIteration; void closeEvent(QCloseEvent *event); void readSettings(); void writeSettings(); void updateStateLabel(); void calculateResults(); }; #endif // DISCRETESTATEWINDOW_H