[FL-1063} LF-RFID Cli (#515)

* App lfrfid: update emulator to process external data.
* App lfrfid: cleanup emulator
* App lfrfid: cli interface
* Lib: arguments parser lib

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
SG
2021-06-10 21:53:59 +10:00
committed by GitHub
parent ced7d6315d
commit 4ad5245969
18 changed files with 372 additions and 63 deletions

View File

@@ -14,7 +14,7 @@ void LfrfidSceneEmulateEMMarine::on_enter(LfrfidApp* app) {
popup_set_text(popup, app->get_text_store(), 64, 22, AlignCenter, AlignTop);
view_manager->switch_to(LfrfidAppViewManager::ViewType::Popup);
app->get_emulator()->start(RfidTimerEmulator::Type::EM);
app->get_emulator()->start(LfrfidKeyType::KeyEM4100, data, 5);
}
bool LfrfidSceneEmulateEMMarine::on_event(LfrfidApp* app, LfrfidEvent* event) {

View File

@@ -9,4 +9,5 @@ public:
void on_exit(LfrfidApp* app) final;
private:
const uint8_t data[5] = {0x53, 0x00, 0x5F, 0xB3, 0xC2};
};

View File

@@ -14,7 +14,7 @@ void LfrfidSceneEmulateHID::on_enter(LfrfidApp* app) {
popup_set_text(popup, app->get_text_store(), 64, 22, AlignCenter, AlignTop);
view_manager->switch_to(LfrfidAppViewManager::ViewType::Popup);
app->get_emulator()->start(RfidTimerEmulator::Type::HID_H10301);
app->get_emulator()->start(LfrfidKeyType::KeyH10301, data, 3);
}
bool LfrfidSceneEmulateHID::on_event(LfrfidApp* app, LfrfidEvent* event) {

View File

@@ -9,4 +9,5 @@ public:
void on_exit(LfrfidApp* app) final;
private:
const uint8_t data[3] = {0xED, 0x87, 0x70};
};

View File

@@ -14,7 +14,7 @@ void LfrfidSceneEmulateIndala::on_enter(LfrfidApp* app) {
popup_set_text(popup, app->get_text_store(), 64, 22, AlignCenter, AlignTop);
view_manager->switch_to(LfrfidAppViewManager::ViewType::Popup);
app->get_emulator()->start(RfidTimerEmulator::Type::Indala_40134);
app->get_emulator()->start(LfrfidKeyType::KeyI40134, data, 3);
}
bool LfrfidSceneEmulateIndala::on_event(LfrfidApp* app, LfrfidEvent* event) {

View File

@@ -9,4 +9,5 @@ public:
void on_exit(LfrfidApp* app) final;
private:
const uint8_t data[3] = {0x1F, 0x2E, 0x3D};
};

View File

@@ -35,7 +35,7 @@ bool LfrfidSceneReadNormal::on_event(LfrfidApp* app, LfrfidEvent* event) {
}
switch(type) {
case LfrfidKeyType::KeyEmarine:
case LfrfidKeyType::KeyEM4100:
app->set_text_store(
"[EM] %02X %02X %02X %02X %02X\n"
"count: %u",
@@ -46,7 +46,7 @@ bool LfrfidSceneReadNormal::on_event(LfrfidApp* app, LfrfidEvent* event) {
data[4],
success_reads);
break;
case LfrfidKeyType::KeyHID:
case LfrfidKeyType::KeyH10301:
app->set_text_store(
"[HID26] %02X %02X %02X\n"
"count: %u",
@@ -55,7 +55,7 @@ bool LfrfidSceneReadNormal::on_event(LfrfidApp* app, LfrfidEvent* event) {
data[2],
success_reads);
break;
case LfrfidKeyType::KeyIndala:
case LfrfidKeyType::KeyI40134:
app->set_text_store(
"[IND] %02X %02X %02X\n"
"count: %u",

View File

@@ -38,7 +38,7 @@ bool LfrfidSceneWrite::on_event(LfrfidApp* app, LfrfidEvent* event) {
LfrfidKeyType type;
app->get_reader()->read(&type, data, LFRFID_KEY_SIZE);
if(type == LfrfidKeyType::KeyEmarine) {
if(type == LfrfidKeyType::KeyEM4100) {
if(memcmp(em_data, data, 5) == 0) {
readed = true;
}