30 lines
809 B
C
30 lines
809 B
C
|
#ifndef KEYBOARD_H
|
||
|
#define KEYBOARD_H
|
||
|
#include "gpio.h"
|
||
|
#include "oneway.h"
|
||
|
#include "generator.h"
|
||
|
class Usart;
|
||
|
|
||
|
class Keyboard : public OneWay {
|
||
|
enum PASSENUM { BEGIN = 0, END };
|
||
|
Usart & usart;
|
||
|
GpioClass led, relay;
|
||
|
Generator gl,gh;
|
||
|
unsigned col_cnt, pas_cnt;
|
||
|
const char * password;
|
||
|
PASSENUM pas_num;
|
||
|
uint8_t status [4];
|
||
|
public:
|
||
|
explicit Keyboard (Usart & serial) noexcept : OneWay(), usart (serial), led (GPIOD, 4u), relay (GPIOD, 3u),
|
||
|
gl (), gh (), col_cnt (0u), pas_cnt (0u), password (nullptr), pas_num (BEGIN) {
|
||
|
init();
|
||
|
}
|
||
|
void setPassword (const char * const pwd) { password = pwd; }
|
||
|
unsigned int Send (uint16_t * const ptr, const unsigned int len) override;
|
||
|
protected:
|
||
|
void init () noexcept;
|
||
|
void out (const char c);
|
||
|
};
|
||
|
|
||
|
#endif // KEYBOARD_H
|