Browse Source

update

master
zhaohe 1 year ago
parent
commit
2d917c90ce
  1. 2
      a8000_protocol
  2. 2
      sdk
  3. 29
      usrc/subboards/subboard100_idcard_reader/eeprom_service.cpp
  4. 7
      usrc/subboards/subboard100_idcard_reader/eeprom_service.hpp

2
a8000_protocol

@ -1 +1 @@
Subproject commit 59082bcc8c2a856133f693619bbd1fdc64dba0fd
Subproject commit 5ed47307b153a256e90fc5031b58ff65102a7f03

2
sdk

@ -1 +1 @@
Subproject commit ac5dbdd30601037dfff6b4702a9a50297493a382
Subproject commit 39643f7b7276936e78af888fc2c2923009a3183a

29
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 <stdio.h>
#include <string.h>
#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和m24lrxxe2kbyte
* :
* 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);
}
}
}
}

7
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;
}

Loading…
Cancel
Save