27 template <
unsigned int NbBits>
32 , pin_timeout_(pin_timeout)
33 , pin_end_key_(pin_end_key)
39 template <
unsigned int NbBits>
50 DEBUG(
"Buffer value = " << (
unsigned int)input);
52 for (
int i = 0; i < 4; ++i)
54 bool v = ((input >> (7 - i)) & 0x01);
67 return std::to_string(n).at(0);
70 template <
unsigned int NbBits>
73 static_assert(NbBits == 4 || NbBits == 8,
74 "Must either be 4 or 8 bits per key pressed");
77 duration_cast<milliseconds>(system_clock::now() -
last_update_);
88 WARN(
"Expected number of bits invalid. (" 105 template <
unsigned int NbBits>
114 template <
unsigned int NbBits>
120 template <
unsigned int NbBits>
133 template <
unsigned int NbBits>
139 template <
unsigned int NbBits>
virtual void timeout() override
This is called when the module detect a timeout.
virtual void signal(zmqpp::socket &sock) override
Tells the strategy implementation to send a message to the application containing the received creden...
An implementation class that represents a Wiegand Reader.
Interface for a strategy that read a PIN code.
This is the header file for a generated source file, GitSHA1.cpp.
virtual bool completed() const override
Did the strategy gather needed data? If this function returns true, that means that the strategy impl...
WiegandReaderImpl * reader_
Strategy for ready PIN only.
int counter() const
Returns the number of bits read.
WiegandPinNBitsOnly(WiegandReaderImpl *reader, std::chrono::milliseconds pin_timeout, char pin_end_key)
Create a strategy that read N bits-per-key PIN code.
virtual const std::string & get_pin() const override
Retrieve the pin code that was read from the reader.
bool ready_
Are we ready to submit the PIN code ?
char extract_from_raw(uint8_t input) const
Extract the character that was pressed from raw data.
Message formatting when using a simple PIN code.
virtual void reset() override
Reset the strategy, meaning that the next time timeout() is called the behavior should be the same th...
std::chrono::milliseconds pin_timeout_
void read_reset()
Reset the "read state" of the reader, effectively cleaning the wiegand-bit-buffer and resetting the c...
Provide support for Wiegand devices.
void end_of_input()
Timeout or pin_end_key read.
const unsigned char * buffer() const
Return a pointer to internal buffer memory.
const std::string & name() const
Returns the name of this reader.