14static const uint16_t START_CODE = 0xEF01;
16static const uint16_t ENROLLMENT_SLOT_UNUSED = 0xFFFF;
19static const uint8_t WAIT_FOR_WAKE_UP_MS = 200;
21static const uint32_t DEFAULT_IDLE_PERIOD_TO_SLEEP_MS = 5000;
98 void setup()
override;
171 uint8_t
transfer_(std::vector<uint8_t> &data_buffer);
217 void
play(const Ts &...
x)
override {
218 auto finger_id = this->finger_id_.value(
x...);
219 auto num_scans = this->num_scans_.value(
x...);
221 this->
parent_->enroll_fingerprint(finger_id, num_scans);
223 this->
parent_->enroll_fingerprint(finger_id, 2);
228template<
typename... Ts>
231 void play(
const Ts &...
x)
override { this->
parent_->finish_enrollment(1); }
238 void play(
const Ts &...
x)
override {
239 auto finger_id = this->finger_id_.value(
x...);
240 this->
parent_->delete_fingerprint(finger_id);
246 void play(
const Ts &...
x)
override { this->
parent_->delete_all_fingerprints(); }
253 void play(
const Ts &...
x)
override {
254 auto state = this->state_.value(
x...);
266 void play(const Ts &...
x)
override {
267 auto state = this->state_.value(
x...);
268 auto speed = this->speed_.value(
x...);
269 auto color = this->color_.value(
x...);
270 auto count = this->count_.value(
x...);
272 this->parent_->aura_led_control(
state,
speed, color, count);
virtual void play(const Ts &...x)=0
Helper class to easily give an object a parent of type T.
FingerprintGrowComponent * parent_
This class simplifies creating components that periodically check a state.
Base class for all binary_sensor-type classes.
TEMPLATABLE_VALUE(uint8_t, state) TEMPLATABLE_VALUE(uint8_t
speed count void play(const Ts &...x) override
void play(const Ts &...x) override
TEMPLATABLE_VALUE(uint16_t, finger_id) void play(const Ts &...x) override
void play(const Ts &...x) override
num_scans void play(const Ts &...x) override
TEMPLATABLE_VALUE(uint16_t, finger_id) TEMPLATABLE_VALUE(uint8_t
sensor::Sensor * last_confidence_sensor_
CallbackManager< void(uint16_t, uint16_t)> finger_scan_matched_callback_
uint8_t enrollment_image_
GPIOPin * sensor_power_pin_
void add_on_finger_scan_start_callback(F &&callback)
sensor::Sensor * capacity_sensor_
uint8_t transfer_(std::vector< uint8_t > &data_buffer)
void dump_config() override
sensor::Sensor * status_sensor_
sensor::Sensor * security_level_sensor_
uint8_t enrollment_buffers_
uint32_t last_aura_led_duration_
void set_last_confidence_sensor(sensor::Sensor *last_confidence_sensor)
void set_capacity_sensor(sensor::Sensor *capacity_sensor)
void add_on_enrollment_done_callback(F &&callback)
CallbackManager< void()> finger_scan_unmatched_callback_
void get_fingerprint_count_()
void set_password(uint32_t password)
void enroll_fingerprint(uint16_t finger_id, uint8_t num_buffers)
uint32_t idle_period_to_sleep_ms_
sensor::Sensor * last_finger_id_sensor_
std::vector< uint8_t > data_
void add_on_finger_scan_invalid_callback(F &&callback)
uint16_t enrollment_slot_
CallbackManager< void(uint16_t)> enrollment_done_callback_
binary_sensor::BinarySensor * enrolling_binary_sensor_
void add_on_enrollment_scan_callback(F &&callback)
void set_sensor_power_pin(GPIOPin *sensor_power_pin)
sensor::Sensor * fingerprint_count_sensor_
CallbackManager< void(uint16_t)> enrollment_failed_callback_
void finish_enrollment(uint8_t result)
CallbackManager< void()> finger_scan_start_callback_
void set_idle_period_to_sleep_ms(uint32_t period_ms)
void set_new_password(uint32_t new_password)
void set_fingerprint_count_sensor(sensor::Sensor *fingerprint_count_sensor)
uint8_t scan_image_(uint8_t buffer)
void aura_led_control(uint8_t state, uint8_t speed, uint8_t color, uint8_t count)
void add_on_finger_scan_unmatched_callback(F &&callback)
void set_sensing_pin(GPIOPin *sensing_pin)
CallbackManager< void(uint8_t, uint16_t)> enrollment_scan_callback_
CallbackManager< void()> finger_scan_misplaced_callback_
void set_address(uint32_t address)
void add_on_finger_scan_matched_callback(F &&callback)
void led_control(bool state)
uint8_t save_fingerprint_()
uint32_t last_transfer_ms_
void set_security_level_sensor(sensor::Sensor *security_level_sensor)
void delete_all_fingerprints()
void set_last_finger_id_sensor(sensor::Sensor *last_finger_id_sensor)
uint32_t last_aura_led_control_
void set_enrolling_binary_sensor(binary_sensor::BinarySensor *enrolling_binary_sensor)
void set_status_sensor(sensor::Sensor *status_sensor)
CallbackManager< void()> finger_scan_invalid_callback_
void add_on_finger_scan_misplaced_callback(F &&callback)
void delete_fingerprint(uint16_t finger_id)
void add_on_enrollment_failed_callback(F &&callback)
uint16_t system_identifier_code_
TEMPLATABLE_VALUE(bool, state) void play(const Ts &...x) override
Base-class for all sensors.