egis_etu905: Use fpi writer to build the commit data

This commit is contained in:
Marco Trevisan (Treviño)
2026-07-01 17:59:34 +02:00
parent a042240b67
commit 141a63b0a4
2 changed files with 15 additions and 25 deletions
+15 -15
View File
@@ -1073,7 +1073,6 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
FpDevice *device) FpDevice *device)
{ {
g_auto(FpiByteWriter) writer = {0}; g_auto(FpiByteWriter) writer = {0};
EgismocSidData sid_data = {0};
EnrollPrint *enroll_print = fpi_ssm_get_data (ssm); EnrollPrint *enroll_print = fpi_ssm_get_data (ssm);
g_autofree guchar *payload = NULL; g_autofree guchar *payload = NULL;
gsize payload_length = 0; gsize payload_length = 0;
@@ -1121,20 +1120,21 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
user_id = fpi_print_generate_user_id (enroll_print->print); user_id = fpi_print_generate_user_id (enroll_print->print);
fp_dbg ("New fingerprint ID: %s", user_id); fp_dbg ("New fingerprint ID: %s", user_id);
sid_data.reserve_para_1 = GUINT16_TO_LE (EGIS_ETU905_PARA_1_VALUE); device_print_id = g_malloc0 (EGIS_ETU905_FINGERPRINT_DATA_SIZE);
sid_data.reserve_para_2 = GUINT16_TO_LE (EGIS_ETU905_PARA_2_VALUE); memcpy (device_print_id, user_id,
sid_data.reserve_para_3 = GUINT16_TO_LE (EGIS_ETU905_PARA_3_VALUE); MIN (EGIS_ETU905_FINGERPRINT_DATA_SIZE, strlen (user_id)));
memcpy (sid_data.reserve_para_4, user_id, MIN (EGIS_ETU905_FINGERPRINT_DATA_SIZE, strlen (user_id))); egis_etu905_set_print_data (enroll_print->print, device_print_id, user_id);
egis_etu905_set_print_data (enroll_print->print, (const gchar *) &sid_data.reserve_para_4, user_id);
fpi_byte_writer_init (&writer); fpi_byte_writer_init_with_size (&writer,
if (!fpi_byte_writer_put_data (&writer, cmd_new_print_prefix_type2, cmd_new_print_prefix_type2_len +
cmd_new_print_prefix_type2_len)) 1 + 2 + 2 + EGIS_ETU905_PARA_4_SIZE,
{ TRUE);
fpi_ssm_mark_failed (ssm, fpi_device_error_new (FP_DEVICE_ERROR_PROTO)); if (!fpi_byte_writer_put_data_static (&writer, cmd_new_print_prefix_type2) ||
break; !fpi_byte_writer_put_uint8 (&writer, EGIS_ETU905_PARA_1_VALUE) ||
} !fpi_byte_writer_put_uint16_le (&writer, EGIS_ETU905_PARA_2_VALUE) ||
if (!fpi_byte_writer_put_data (&writer, (guint8 *) &sid_data, !fpi_byte_writer_put_uint16_le (&writer, EGIS_ETU905_PARA_3_VALUE) ||
sizeof (EgismocSidData))) !fpi_byte_writer_put_data (&writer, (guint8 *) device_print_id,
EGIS_ETU905_FINGERPRINT_DATA_SIZE))
{ {
fpi_ssm_mark_failed (ssm, fpi_device_error_new (FP_DEVICE_ERROR_PROTO)); fpi_ssm_mark_failed (ssm, fpi_device_error_new (FP_DEVICE_ERROR_PROTO));
break; break;
-10
View File
@@ -53,16 +53,6 @@ G_DECLARE_FINAL_TYPE (FpiDeviceEgisEtu905, fpi_device_egis_etu905, FPI, DEVICE_E
#define EGIS_ETU905_PARA_2_VALUE 0 #define EGIS_ETU905_PARA_2_VALUE 0
#define EGIS_ETU905_PARA_3_VALUE 32 #define EGIS_ETU905_PARA_3_VALUE 32
#pragma pack(push, 1)
typedef struct
{
guchar reserve_para_1;
gushort reserve_para_2;
gushort reserve_para_3;
guchar reserve_para_4[EGIS_ETU905_PARA_4_SIZE];
} EgismocSidData;
#pragma pack(pop)
/* standard prefixes for all read/writes */ /* standard prefixes for all read/writes */
static guchar egis_etu905_write_prefix[] = {'E', 'G', 'I', 'S', 0x00, 0x00, 0x00, 0x01}; static guchar egis_etu905_write_prefix[] = {'E', 'G', 'I', 'S', 0x00, 0x00, 0x00, 0x01};