This repository has been archived by the owner on Jul 28, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from frux-c/init_fixes
Init_fixes
- Loading branch information
Showing
15 changed files
with
298 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,8 +8,8 @@ This repository contains a UHF RFID application developed for FlipperZero, a ver | |
|
||
## Features | ||
|
||
- [ ] Read UHF RFID tags. | ||
- [x] Write UHF RFID tags. | ||
- [x] Read UHF RFID tags. | ||
- [ ] Write UHF RFID tags. | ||
- [ ] Communicate with the YRM100 module to perform UHF RFID operations. | ||
- [ ] Easy-to-use interface on FlipperZero's display. | ||
|
||
|
@@ -22,8 +22,14 @@ To run this application on FlipperZero, you will need: | |
|
||
## Installation | ||
|
||
1. Ensure you have set up your FlipperZero device with the YRM100 module properly. | ||
2. Clone this repository to your FlipperZero using (add the specific instructions or link to the tool used for this). | ||
1. Ensure you have set up your FlipperZero device with the YRM100 module properly. You can also read more about how to setup the module from the [Md5Stack Docs page](http://docs.m5stack.com/en/unit/uhf_rfid). | ||
![wiring diagram](https://static-cdn.m5stack.com/resource/docs/products/unit/uhf_rfid/uhf_rfid_sch_01.webp) | ||
2. Clone this repository to the `applications_user` folder of your flipper firmware of your choice | ||
3. If you have VSCode setup with your flipper firmware. | ||
- ### Windows | ||
1. Press `Ctrl+Shift+B` on vscode while in the uhf_app folder | ||
2. Select the `Launch App on Flipper` option. And watch as the app launches on your flipper | ||
- If you don't have vscode setup you can use the cli command `./fbt COMPACT=1 DEBUG=0 launch APPSRC=applications_user\uhf_rfid` | ||
|
||
## Usage | ||
|
||
|
@@ -45,12 +51,14 @@ This project is licensed under the [MIT License](link_to_license_file). --> | |
- Use it at your own risk. | ||
- I am not responsible for any damage or loss caused by the usage of this app. | ||
|
||
## Extra Resources | ||
|
||
- [MagicRF M100&QM100_Firmware_manual_en.pdf](assets/res/MagicRF_M100&QM100_Firmware_manual_en.pdf) | ||
|
||
## Contact | ||
|
||
For any inquiries or support, you can reach out to us at : | ||
|
||
- Personal Email : [[email protected]](mailto:[email protected]) | ||
- Discord Server: [Flipper Zero Tutorial-Unoffical by @jamisonderek](https://discord.gg/REunuAnTX9) | ||
- Discord User: [frux.c]() | ||
|
||
|
||
|
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
#include "../uhf_app_i.h" | ||
|
||
bool verify_success = false; | ||
FuriString* temp_str; | ||
|
||
void uhf_scene_verify_callback_event(UHFWorkerEvent event, void* ctx) { | ||
UNUSED(ctx); | ||
UHFApp* uhf_app = ctx; | ||
if(event == UHFWorkerEventSuccess) verify_success = true; | ||
|
||
view_dispatcher_send_custom_event(uhf_app->view_dispatcher, UHFCustomEventVerifyDone); | ||
} | ||
|
||
void uhf_scene_verify_widget_callback(GuiButtonType result, InputType type, void* ctx) { | ||
furi_assert(ctx); | ||
UHFApp* uhf_app = ctx; | ||
|
||
if(type == InputTypeShort) { | ||
view_dispatcher_send_custom_event(uhf_app->view_dispatcher, result); | ||
} | ||
} | ||
|
||
void uhf_scene_verify_on_enter(void* ctx) { | ||
UHFApp* uhf_app = ctx; | ||
uhf_worker_start( | ||
uhf_app->worker, UHFWorkerStateVerify, uhf_scene_verify_callback_event, uhf_app); | ||
temp_str = furi_string_alloc(); | ||
view_dispatcher_switch_to_view(uhf_app->view_dispatcher, UHFViewWidget); | ||
} | ||
|
||
bool uhf_scene_verify_on_event(void* ctx, SceneManagerEvent event) { | ||
UHFApp* uhf_app = ctx; | ||
bool consumed = false; | ||
if(event.event == SceneManagerEventTypeBack) { | ||
uhf_app->worker->state = UHFWorkerStateStop; | ||
} else if(event.type == SceneManagerEventTypeCustom) { | ||
if(event.event == GuiButtonTypeRight) { | ||
scene_manager_next_scene(uhf_app->scene_manager, UHFSceneStart); | ||
consumed = true; | ||
} else if(event.event == GuiButtonTypeLeft) { | ||
if(!verify_success) { | ||
widget_reset(uhf_app->widget); | ||
furi_string_reset(temp_str); | ||
uhf_worker_stop(uhf_app->worker); | ||
uhf_worker_start( | ||
uhf_app->worker, | ||
UHFWorkerStateVerify, | ||
uhf_scene_verify_callback_event, | ||
uhf_app); | ||
} | ||
} else if(event.event == UHFCustomEventVerifyDone) { | ||
if(verify_success) { | ||
widget_reset(uhf_app->widget); | ||
furi_string_reset(temp_str); | ||
UHFResponseData* uhf_response_data = uhf_app->worker->response_data; | ||
UHFData* hardware_version = uhf_response_data_get_uhf_data(uhf_response_data, 0); | ||
UHFData* software_version = uhf_response_data_get_uhf_data(uhf_response_data, 1); | ||
UHFData* manufacturer = uhf_response_data_get_uhf_data(uhf_response_data, 2); | ||
uint offset = 6; | ||
widget_add_string_element( | ||
uhf_app->widget, 64, 5, AlignCenter, AlignCenter, FontPrimary, "Module Info"); | ||
// hardware info | ||
furi_string_cat_str(temp_str, "HW Version: "); | ||
for(int i = 0; i < 10; i++) { | ||
furi_string_cat_printf(temp_str, "%c", hardware_version->data[offset + i]); | ||
} | ||
widget_add_string_element( | ||
uhf_app->widget, | ||
1, | ||
15, | ||
AlignLeft, | ||
AlignCenter, | ||
FontSecondary, | ||
furi_string_get_cstr(temp_str)); | ||
furi_string_reset(temp_str); | ||
// software info | ||
furi_string_cat_str(temp_str, "SW Version: "); | ||
for(int i = 0; i < 10; i++) { | ||
furi_string_cat_printf(temp_str, "%c", software_version->data[offset + i]); | ||
} | ||
widget_add_string_element( | ||
uhf_app->widget, | ||
1, | ||
27, | ||
AlignLeft, | ||
AlignCenter, | ||
FontSecondary, | ||
furi_string_get_cstr(temp_str)); | ||
furi_string_reset(temp_str); | ||
// manufacturer info | ||
furi_string_cat_str(temp_str, "Manufacturer: "); | ||
for(int i = 0; i < 10; i++) { | ||
furi_string_cat_printf(temp_str, "%c", manufacturer->data[offset + i]); | ||
} | ||
widget_add_string_element( | ||
uhf_app->widget, | ||
1, | ||
39, | ||
AlignLeft, | ||
AlignCenter, | ||
FontSecondary, | ||
furi_string_get_cstr(temp_str)); | ||
|
||
widget_add_button_element( | ||
uhf_app->widget, | ||
GuiButtonTypeRight, | ||
"Continue", | ||
uhf_scene_verify_widget_callback, | ||
uhf_app); | ||
} else { | ||
widget_add_string_element( | ||
uhf_app->widget, | ||
64, | ||
5, | ||
AlignCenter, | ||
AlignCenter, | ||
FontPrimary, | ||
"No UHF Module found"); | ||
widget_add_button_element( | ||
uhf_app->widget, | ||
GuiButtonTypeLeft, | ||
"Retry", | ||
uhf_scene_verify_widget_callback, | ||
uhf_app); | ||
widget_add_button_element( | ||
uhf_app->widget, | ||
GuiButtonTypeRight, | ||
"Skip", | ||
uhf_scene_verify_widget_callback, | ||
uhf_app); | ||
} | ||
} | ||
} | ||
return consumed; | ||
} | ||
|
||
void uhf_scene_verify_on_exit(void* ctx) { | ||
UHFApp* uhf_app = ctx; | ||
// Clear string | ||
furi_string_free(temp_str); | ||
// Stop worker | ||
uhf_worker_stop(uhf_app->worker); | ||
// Clear view | ||
// popup_reset(uhf_app->popup); | ||
// clear widget | ||
widget_reset(uhf_app->widget); | ||
} |
Oops, something went wrong.