#ifndef EXECUTOR_H #define EXECUTOR_H #include class Machine; class QTimer; class Executor : public QObject { Q_OBJECT public: explicit Executor(Machine* m = nullptr); ~Executor() override; bool hasEnded() const; void resetProgram(); public slots: // Zažene oz. nadaljuje samodejno izvajanje. void start(); // Zaustavi samodejno izvajanje. void stop(); // Izvede en ukaz. void step(); signals: void updateRequested(); void signalEnded(); void signalStarted(); void signalStopped(); private slots: void runStep(); // povezan s QTimer::timeout private: Machine* machine = nullptr; QTimer* timer = nullptr; bool running = false; bool ended = false; bool stepping = false; // prepreči reentrant step int intervalMs = 500; // privzeta frekvenca izvajanja v ms }; #endif // EXECUTOR_H