M5Unit-FINGER 0.0.2 git rev:9f22200
Loading...
Searching...
No Matches
m5::unit::UnitFPC1XXX Class Reference

Base class for FPC1xxx family. More...

#include <unit_FPC1xxx.hpp>

Inheritance diagram for m5::unit::UnitFPC1XXX:
m5::unit::UnitFPC1020A

Classes

struct  config_t
 Settings for begin. More...
 

Public Types

using Frame = std::array<uint8_t, 8>
 
using VariableFrame = std::vector<uint8_t>
 

Public Member Functions

virtual bool begin () override
 Begin communication with the unit.
 
bool readSerialNumber (uint32_t &no)
 Read the serial number (24 bits)
 
bool readVersion (char str[9])
 Read the version string.
 
bool sleep (void)
 Go to deep sleep.
 
Settings for begin
config_t config ()
 Gets the configuration.
 
void config (const config_t &cfg)
 Set the configuration.
 
Properties
virtual uint16_t resolutionWidth () const
 Gets the width of resolution.
 
virtual uint16_t resolutionHeight () const
 Gets the height of resolution.
 
uint16_t imageWidth (const bool raw) const
 Get the image width.
 
uint16_t imageHeight (const bool raw) const
 Get the resolution height.
 
virtual uint16_t minimumUserID () const
 Get the minimum user ID.
 
virtual uint16_t maximumUserID () const
 Get the maximum user ID.
 
Settings
bool readRegistrationMode (fpc1xxx::Mode &mode)
 Read the registration mode.
 
bool writeRegistrationMode (const fpc1xxx::Mode mode)
 Write the registration mode.
 
bool readComparisonLevel (uint8_t &lv)
 Read the comparison level.
 
bool writeComparisonLevel (const uint8_t lv)
 Write the comparison level.
 
bool writeBaudRate (const fpc1xxx::BaudRate baud)
 Write the baud rate.
 
bool readTimeout (uint8_t &timeout)
 Read the timeout.
 
bool writeTimeout (const uint8_t timeout)
 Write the timeout.
 
User data
bool readRegisteredUserCount (uint16_t &count)
 Read the number of registered users.
 
bool readUser (uint8_t &permission, const uint16_t user_id)
 Read the user permission.
 
bool readAllUser (std::vector< fpc1xxx::User > &v)
 Get the all user data.
 
bool readUserCharacteristic (uint8_t characteristic[193], const uint16_t user_id)
 Read the user characteristic data.
 
bool findAvailableUserID (uint16_t &user_id, const uint16_t low=0, const uint16_t high=0)
 Find the unregistered user id in specific range.
 
bool deleteUser (const uint16_t user_id)
 Delete user data.
 
bool deleteAllUsers ()
 Delete all user data.
 
Finger
bool registerFinger (const uint16_t user_id, const uint8_t permission, const uint8_t step=4)
 Register finger.
 
bool verifyFinger (bool &match, const uint16_t user_id)
 Verify specific user finger (1:1)
 
bool identifyFinger (uint16_t &user_id, uint8_t &permission)
 Identify finger (1:N)
 
bool scanCharacteristic (uint8_t characteristic[193])
 Scan characteristic.
 
virtual bool captureImage (std::vector< uint8_t > &img, const bool raw=false)
 Capture finger image.
 
bool registerCharacteristic (const uint16_t user_id, const uint8_t permission, const uint8_t characteristic[193])
 Register characteristic.
 
bool verifyCharacteristic (bool &match, const uint16_t user_id, const uint8_t characteristic[193])
 Verify specific user characteristic (1:1)
 
bool identifyCharacteristic (uint16_t &user_id, const uint8_t characteristic[193])
 Identify characteristic (1:N)
 
bool compareCharacteristic (bool &match, const uint8_t characteristic[193])
 Compare characteristic.
 

Static Public Attributes

static constexpr uint16_t RESOLUTION_WIDTH {0}
 
static constexpr uint16_t RESOLUTION_HEIGHT {0}
 
static constexpr uint16_t MINIMUM_USER_ID {0}
 
static constexpr uint16_t MAXIMUM_USER_ID {0}
 

Protected Member Functions

bool is_valid_user_id (const uint16_t user_id) const
 
bool transceive_command (Frame &res, const uint8_t cmd, const uint8_t p1=0, const uint8_t p2=0, const uint8_t p3=0)
 
bool capture_image (std::vector< uint8_t > &img, const bool full=false)
 

Detailed Description

Base class for FPC1xxx family.

Note
Family spec
Chip Resolution Unit
FPC1020 192x192
FPC1020AM 192x192
FPC1020AP 192x192
FPC1020A 160x160 Unit Finger (SKU:U008)
FPC1021 160x160
FPC1024 192x192
FPC1025 160x160
FPC1523 96x96

Member Function Documentation

◆ begin()

bool m5::unit::UnitFPC1XXX::begin ( )
overridevirtual

Begin communication with the unit.

Reimplemented in m5::unit::UnitFPC1020A.

◆ captureImage()

virtual bool m5::unit::UnitFPC1XXX::captureImage ( std::vector< uint8_t > & img,
const bool raw = false )
inlinevirtual

Capture finger image.

Parameters
[out]imgImage vector (4 or 8 bits grayscale)
rawCapture raw image(8bits) if true, Capture compressed image(4bits) if false
Returns
True if successful
Note
Read 8 bits grayscale width x height byte pixel array if raw image
Read 4 bits grayscale width/2 x height/2 nibble pixel array if NOT raw image
Warning
Some chips do not support capturing raw image

◆ compareCharacteristic()

bool m5::unit::UnitFPC1XXX::compareCharacteristic ( bool & match,
const uint8_t characteristic[193] )

Compare characteristic.

Parameters
[out]matchMatch if true
characteristicCharacteristic data
Returns
True if successful

◆ deleteAllUsers()

bool m5::unit::UnitFPC1XXX::deleteAllUsers ( )

Delete all user data.

Returns
True if successful

◆ deleteUser()

bool m5::unit::UnitFPC1XXX::deleteUser ( const uint16_t user_id)

Delete user data.

Parameters
user_idUserID
Returns
True if successful

◆ findAvailableUserID()

bool m5::unit::UnitFPC1XXX::findAvailableUserID ( uint16_t & user_id,
const uint16_t low = 0,
const uint16_t high = 0 )

Find the unregistered user id in specific range.

Parameters
[out]user_idUser ID
lowLowest user ID (Minimum user ID if zero)
highHighest user ID (Maximum user ID if zero)
Returns
True if successful

◆ identifyCharacteristic()

bool m5::unit::UnitFPC1XXX::identifyCharacteristic ( uint16_t & user_id,
const uint8_t characteristic[193] )

Identify characteristic (1:N)

Parameters
[out]user_idMatching UserID, 0 if NoUser
characteristicCharacteristic data
Returns
True if successful

◆ identifyFinger()

bool m5::unit::UnitFPC1XXX::identifyFinger ( uint16_t & user_id,
uint8_t & permission )

Identify finger (1:N)

Parameters
[out]user_idMatching UserID, 0 if NoUser
[out]permissionMatching user permission, 0 if NoUser
Returns
True if successful

◆ maximumUserID()

virtual uint16_t m5::unit::UnitFPC1XXX::maximumUserID ( ) const
inlinevirtual

Get the maximum user ID.

Reimplemented in m5::unit::UnitFPC1020A.

◆ minimumUserID()

virtual uint16_t m5::unit::UnitFPC1XXX::minimumUserID ( ) const
inlinevirtual

Get the minimum user ID.

Reimplemented in m5::unit::UnitFPC1020A.

◆ readAllUser()

bool m5::unit::UnitFPC1XXX::readAllUser ( std::vector< fpc1xxx::User > & v)

Get the all user data.

Parameters
[out]vUser data vector
Returns
True if successful

◆ readComparisonLevel()

bool m5::unit::UnitFPC1XXX::readComparisonLevel ( uint8_t & lv)

Read the comparison level.

Parameters
[out]lvComparison level (0-9)
Returns
True if successful
Note
The higher the value, the stricter the comparison

◆ readRegisteredUserCount()

bool m5::unit::UnitFPC1XXX::readRegisteredUserCount ( uint16_t & count)

Read the number of registered users.

Parameters
[out]countNumber of registered users
Returns
True if successful

◆ readRegistrationMode()

bool m5::unit::UnitFPC1XXX::readRegistrationMode ( fpc1xxx::Mode & mode)

Read the registration mode.

Parameters
[out]modeMode
Returns
True if successful

◆ readSerialNumber()

bool m5::unit::UnitFPC1XXX::readSerialNumber ( uint32_t & no)

Read the serial number (24 bits)

Parameters
[out]snoSerial number
Returns
True if successful

◆ readTimeout()

bool m5::unit::UnitFPC1XXX::readTimeout ( uint8_t & timeout)

Read the timeout.

Parameters
[out]timeoutTimeout value
Returns
True if successful

◆ readUser()

bool m5::unit::UnitFPC1XXX::readUser ( uint8_t & permission,
const uint16_t user_id )

Read the user permission.

Parameters
[out]permissionPermission(1,2,3)
user_iduser ID
Returns
True if successful

◆ readUserCharacteristic()

bool m5::unit::UnitFPC1XXX::readUserCharacteristic ( uint8_t characteristic[193],
const uint16_t user_id )

Read the user characteristic data.

Parameters
[out]characteristicUser characteristic (At least 193 bytes)
user_idUser ID
Returns
True if successful

◆ readVersion()

bool m5::unit::UnitFPC1XXX::readVersion ( char str[9])

Read the version string.

Parameters
[out]strOutput string buffer (At least 9 bytes)
Returns
True if successful

◆ registerCharacteristic()

bool m5::unit::UnitFPC1XXX::registerCharacteristic ( const uint16_t user_id,
const uint8_t permission,
const uint8_t characteristic[193] )

Register characteristic.

Parameters
user_idUserID
permissionPermission(1,2,3)
characteristicCharacteristic data
Returns
True if successful

◆ registerFinger()

bool m5::unit::UnitFPC1XXX::registerFinger ( const uint16_t user_id,
const uint8_t permission,
const uint8_t step = 4 )

Register finger.

Parameters
user_idUserID
permissionPermission (1,2, or 3)
stepNumber of intermediate step repetitions
Returns
True if successful
Warning
Data considered identical will fail if the mode is Mode::ProhibitDuplicate

◆ resolutionHeight()

virtual uint16_t m5::unit::UnitFPC1XXX::resolutionHeight ( ) const
inlinevirtual

Gets the height of resolution.

Reimplemented in m5::unit::UnitFPC1020A.

◆ resolutionWidth()

virtual uint16_t m5::unit::UnitFPC1XXX::resolutionWidth ( ) const
inlinevirtual

Gets the width of resolution.

Reimplemented in m5::unit::UnitFPC1020A.

◆ scanCharacteristic()

bool m5::unit::UnitFPC1XXX::scanCharacteristic ( uint8_t characteristic[193])

Scan characteristic.

Parameters
[out]characteristicCharacteristic data (At least 193 bytes)

◆ sleep()

bool m5::unit::UnitFPC1XXX::sleep ( void )

Go to deep sleep.

Returns
True if successful
Warning
Note that the unit must be physically reconnected in order to wake up from deep sleep

◆ verifyCharacteristic()

bool m5::unit::UnitFPC1XXX::verifyCharacteristic ( bool & match,
const uint16_t user_id,
const uint8_t characteristic[193] )

Verify specific user characteristic (1:1)

Parameters
[out]matchMatch if true
user_idUserID
characteristicCharacteristic data
Returns
True if successful

◆ verifyFinger()

bool m5::unit::UnitFPC1XXX::verifyFinger ( bool & match,
const uint16_t user_id )

Verify specific user finger (1:1)

Parameters
[out]matchMatch if true
user_idUserID
Returns
True if successful

◆ writeBaudRate()

bool m5::unit::UnitFPC1XXX::writeBaudRate ( const fpc1xxx::BaudRate baud)

Write the baud rate.

Parameters
baudBaudRate
Returns
True if successful
Note
After response, the communication speed is changed
The settings are saved in the DSP and remain valid after reset

◆ writeComparisonLevel()

bool m5::unit::UnitFPC1XXX::writeComparisonLevel ( const uint8_t lv)

Write the comparison level.

Parameters
lvComparison level (0-9)
Returns
True if successful
Note
The higher the value, the stricter the comparison
The settings are saved in the DSP and remain valid after reset

◆ writeRegistrationMode()

bool m5::unit::UnitFPC1XXX::writeRegistrationMode ( const fpc1xxx::Mode mode)

Write the registration mode.

Parameters
modeMode
Returns
True if successful
Note
Applies to fingerprint registration only

◆ writeTimeout()

bool m5::unit::UnitFPC1XXX::writeTimeout ( const uint8_t timeout)

Write the timeout.

Parameters
timeoutTimeout value
Returns
True if successful