12namespace fingerprint_grow {
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> *p_data_buffer);
223 [
this](uint16_t finger_id, uint16_t confidence) { this->
trigger(finger_id, confidence); });
252 [
this](uint8_t scan_num, uint16_t finger_id) { this->
trigger(scan_num, finger_id); });
276 auto finger_id = this->finger_id_.value(
x...);
277 auto num_scans = this->num_scans_.value(
x...);
279 this->
parent_->enroll_fingerprint(finger_id, num_scans);
281 this->
parent_->enroll_fingerprint(finger_id, 2);
286template<
typename... Ts>
296 void play(Ts...
x)
override {
297 auto finger_id = this->finger_id_.value(
x...);
298 this->
parent_->delete_fingerprint(finger_id);
304 void play(Ts...
x)
override { this->
parent_->delete_all_fingerprints(); }
311 void play(Ts...
x)
override {
312 auto state = this->state_.value(
x...);
325 auto state = this->state_.value(
x...);
326 auto speed = this->speed_.value(
x...);
327 auto color = this->color_.value(
x...);
328 auto count = this->count_.value(
x...);
330 this->parent_->aura_led_control(
state,
speed, color, count);
virtual void play(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(Ts... x) override
void play(Ts... x) override
TEMPLATABLE_VALUE(uint16_t, finger_id) void play(Ts... x) override
void play(Ts... x) override
num_scans void play(Ts... x) override
TEMPLATABLE_VALUE(uint16_t, finger_id) TEMPLATABLE_VALUE(uint8_t
EnrollmentDoneTrigger(FingerprintGrowComponent *parent)
EnrollmentFailedTrigger(FingerprintGrowComponent *parent)
EnrollmentScanTrigger(FingerprintGrowComponent *parent)
FingerScanInvalidTrigger(FingerprintGrowComponent *parent)
FingerScanMatchedTrigger(FingerprintGrowComponent *parent)
FingerScanMisplacedTrigger(FingerprintGrowComponent *parent)
FingerScanStartTrigger(FingerprintGrowComponent *parent)
FingerScanUnmatchedTrigger(FingerprintGrowComponent *parent)
sensor::Sensor * last_confidence_sensor_
CallbackManager< void(uint16_t, uint16_t)> finger_scan_matched_callback_
uint8_t enrollment_image_
GPIOPin * sensor_power_pin_
sensor::Sensor * capacity_sensor_
void dump_config() override
sensor::Sensor * status_sensor_
void add_on_enrollment_done_callback(std::function< void(uint16_t)> callback)
sensor::Sensor * security_level_sensor_
uint8_t enrollment_buffers_
void set_last_confidence_sensor(sensor::Sensor *last_confidence_sensor)
void set_capacity_sensor(sensor::Sensor *capacity_sensor)
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_
uint8_t transfer_(std::vector< uint8_t > *p_data_buffer)
uint16_t enrollment_slot_
CallbackManager< void(uint16_t)> enrollment_done_callback_
binary_sensor::BinarySensor * enrolling_binary_sensor_
void add_on_enrollment_scan_callback(std::function< void(uint8_t, uint16_t)> callback)
void set_sensor_power_pin(GPIOPin *sensor_power_pin)
sensor::Sensor * fingerprint_count_sensor_
void add_on_finger_scan_invalid_callback(std::function< void()> callback)
CallbackManager< void(uint16_t)> enrollment_failed_callback_
void finish_enrollment(uint8_t result)
CallbackManager< void()> finger_scan_start_callback_
void add_on_finger_scan_matched_callback(std::function< void(uint16_t, uint16_t)> callback)
void add_on_finger_scan_unmatched_callback(std::function< void()> callback)
void set_idle_period_to_sleep_ms(uint32_t period_ms)
void set_new_password(uint32_t new_password)
void add_on_enrollment_failed_callback(std::function< void(uint16_t)> callback)
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 set_sensing_pin(GPIOPin *sensing_pin)
CallbackManager< void(uint8_t, uint16_t)> enrollment_scan_callback_
CallbackManager< void()> finger_scan_misplaced_callback_
void add_on_finger_scan_misplaced_callback(std::function< void()> callback)
void set_address(uint32_t address)
void led_control(bool state)
uint8_t save_fingerprint_()
uint32_t last_transfer_ms_
uint16_t last_aura_led_duration_
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 add_on_finger_scan_start_callback(std::function< void()> callback)
void set_status_sensor(sensor::Sensor *status_sensor)
CallbackManager< void()> finger_scan_invalid_callback_
void delete_fingerprint(uint16_t finger_id)
uint16_t system_identifier_code_
TEMPLATABLE_VALUE(bool, state) void play(Ts... x) override
Base-class for all sensors.
Providing packet encoding functions for exchanging data with a remote host.