45 lines
652 B
C++
45 lines
652 B
C++
|
#pragma once
|
||
|
|
||
|
#include <acs-driver/gpio.hpp>
|
||
|
|
||
|
namespace boost {
|
||
|
namespace system {
|
||
|
class error_code;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace acs
|
||
|
{
|
||
|
class state;
|
||
|
class card_reader;
|
||
|
class oled_writer;
|
||
|
class await_timer;
|
||
|
|
||
|
class access_controller
|
||
|
{
|
||
|
state* state_;
|
||
|
|
||
|
gpio* extra_gpio_;
|
||
|
|
||
|
card_reader* reader_;
|
||
|
|
||
|
oled_writer* writer_;
|
||
|
|
||
|
await_timer* timer_;
|
||
|
|
||
|
void wait(unsigned duration);
|
||
|
|
||
|
void reset(const boost::system::error_code& ec);
|
||
|
|
||
|
public:
|
||
|
|
||
|
explicit access_controller();
|
||
|
|
||
|
void authorized();
|
||
|
|
||
|
void forbidden();
|
||
|
|
||
|
void force_reset_if_idle();
|
||
|
};
|
||
|
}
|