#pragma once

#include "../../software/signal_processing/system/task_function.h"
#include <cinttypes>

class HardwareTaskSimulation {
public:
    HardwareTaskSimulation( task_function function );
    uint32_t read( uint32_t offset ) const;
    void write( uint32_t offset, uint32_t value );
private:
    void start();

    uint32_t state;
    uint32_t cycleCount;
    uint32_t config[4];
    task_function function;
};

