From 2d917c90cef2c6feab62c7f33697ab8b423a17e8 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 27 Jun 2024 10:42:25 +0800 Subject: [PATCH] update --- a8000_protocol | 2 +- sdk | 2 +- .../subboard100_idcard_reader/eeprom_service.cpp | 29 +++++++++++++++++++--- .../subboard100_idcard_reader/eeprom_service.hpp | 7 ++++-- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/a8000_protocol b/a8000_protocol index 59082bc..5ed4730 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit 59082bcc8c2a856133f693619bbd1fdc64dba0fd +Subproject commit 5ed47307b153a256e90fc5031b58ff65102a7f03 diff --git a/sdk b/sdk index ac5dbdd..39643f7 160000 --- a/sdk +++ b/sdk @@ -1 +1 @@ -Subproject commit ac5dbdd30601037dfff6b4702a9a50297493a382 +Subproject commit 39643f7b7276936e78af888fc2c2923009a3183a diff --git a/usrc/subboards/subboard100_idcard_reader/eeprom_service.cpp b/usrc/subboards/subboard100_idcard_reader/eeprom_service.cpp index bbb53a7..059d5d1 100644 --- a/usrc/subboards/subboard100_idcard_reader/eeprom_service.cpp +++ b/usrc/subboards/subboard100_idcard_reader/eeprom_service.cpp @@ -1,8 +1,10 @@ #include "eeprom_service.hpp" -#include "sdk\components\zcancmder\protocol_event_bus_sender.hpp" + #include #include +#include "sdk\components\zcancmder\protocol_event_bus_sender.hpp" + using namespace std; using namespace iflytop; @@ -44,7 +46,7 @@ void EEPROMService::initialize(int id, I2C_HandleTypeDef* i2c_handle, ProtocolEv ZASSERT(m_i2c_handle); m_mutex.init(); m_monitor_thread.init(TAG, 1024, osPriorityNormal); - this->id = id; + this->m_id = id; m_event_bus_sender = event_bus_sender; m_subdevice_p24c16.initialize(m_i2c_handle); // 小ID卡 @@ -109,7 +111,7 @@ void EEPROMService::detect_online() { * 这里只是简单的判断eeprom的类型,并不是通用的判断逻辑, 仅仅是为了巴迪泰A8000设备而设计 * 巴迪泰项目中,eeprom只有两种,p24c16和m24lrxxe,且容积都是2kbyte * 这里的判断逻辑: - * p24c16 :地址包换 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 + * p24c16 :地址包换 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 * m24lrxxe:地址只包换 0x53,0x57 * * @param i2c_ping_state @@ -147,6 +149,21 @@ int32_t EEPROMService::a8000_idcard_reader_read_raw(int32_t index, uint8_t* data return val; } +int32_t EEPROMService::a8000_idcard_write_raw(int32_t add, uint8_t* data, int32_t len) { + ZLOGI(TAG, "write: 0x%08x, %d", add, len); + return 0; +} + +int32_t EEPROMService::a8000_idcard_erase() { + ZLOGI(TAG, "a8000_idcard_erase"); + return 0; +} + +int32_t EEPROMService::a8000_idcard_earse_unlock() { + ZLOGI(TAG, "a8000_idcard_earse_unlock"); + return 0; +} + int32_t EEPROMService::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { switch (param_id) { PROCESS_REG(kreg_id_card_reader_raw_sector_size, /* */ REG_GET(SECTOR_SIZE), ACTION_NONE); @@ -164,7 +181,11 @@ void EEPROMService::change_is_online_flag(bool state) { ZLOGI(TAG, "change_is_online_flag: %d", state); m_is_online_flag = state; if (m_event_bus_sender) { - m_event_bus_sender->push_reg_state_change_event(id, kreg_id_card_reader_is_online, !m_is_online_flag, m_is_online_flag); + if (m_is_online_flag) { + m_event_bus_sender->report(m_id, (int32_t)kevent_a8000_idcard_online); + } else { + m_event_bus_sender->report(m_id, (int32_t)kevent_a8000_idcard_offline); + } } } } diff --git a/usrc/subboards/subboard100_idcard_reader/eeprom_service.hpp b/usrc/subboards/subboard100_idcard_reader/eeprom_service.hpp index ed3ec1f..fa9d009 100644 --- a/usrc/subboards/subboard100_idcard_reader/eeprom_service.hpp +++ b/usrc/subboards/subboard100_idcard_reader/eeprom_service.hpp @@ -28,7 +28,7 @@ class EEPROMService : public ZIModule, public ZIA8000IDCardReaderModule { zmutex m_mutex; ProtocolEventBusSender* m_event_bus_sender; - int32_t id = 0; + int32_t m_id = 0; bool i2c_ping_state[255] = {0}; ZI_EEPROM* m_nowonline = nullptr; @@ -48,6 +48,9 @@ class EEPROMService : public ZIModule, public ZIA8000IDCardReaderModule { public: virtual int32_t a8000_idcard_reader_read_raw(int32_t index, uint8_t* data, int32_t* len) override; + virtual int32_t a8000_idcard_write_raw(int32_t index, uint8_t* data, int32_t len) override; + virtual int32_t a8000_idcard_erase() override; + virtual int32_t a8000_idcard_earse_unlock() override; int32_t start_monitor_status(); int32_t stop_monitor_status(); @@ -59,7 +62,7 @@ class EEPROMService : public ZIModule, public ZIA8000IDCardReaderModule { public: virtual int32_t getid(int32_t* id) override { - *id = this->id; + *id = this->m_id; return 0; }