LF-RFID debug: make it work (#2793)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
e680cf59b6
commit
92c1bb83bf
@ -6,6 +6,11 @@ static void comparator_trigger_callback(bool level, void* comp_ctx) {
|
|||||||
furi_hal_gpio_write(&gpio_ext_pa7, !level);
|
furi_hal_gpio_write(&gpio_ext_pa7, !level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lfrfid_debug_view_tune_callback(void* context) {
|
||||||
|
LfRfidDebug* app = context;
|
||||||
|
view_dispatcher_send_custom_event(app->view_dispatcher, 0xBA);
|
||||||
|
}
|
||||||
|
|
||||||
void lfrfid_debug_scene_tune_on_enter(void* context) {
|
void lfrfid_debug_scene_tune_on_enter(void* context) {
|
||||||
LfRfidDebug* app = context;
|
LfRfidDebug* app = context;
|
||||||
|
|
||||||
@ -16,6 +21,8 @@ void lfrfid_debug_scene_tune_on_enter(void* context) {
|
|||||||
|
|
||||||
furi_hal_rfid_tim_read_start(125000, 0.5);
|
furi_hal_rfid_tim_read_start(125000, 0.5);
|
||||||
|
|
||||||
|
lfrfid_debug_view_tune_set_callback(app->tune_view, lfrfid_debug_view_tune_callback, app);
|
||||||
|
|
||||||
view_dispatcher_switch_to_view(app->view_dispatcher, LfRfidDebugViewTune);
|
view_dispatcher_switch_to_view(app->view_dispatcher, LfRfidDebugViewTune);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,8 @@ typedef struct {
|
|||||||
uint32_t ARR;
|
uint32_t ARR;
|
||||||
uint32_t CCR;
|
uint32_t CCR;
|
||||||
int pos;
|
int pos;
|
||||||
|
void (*update_callback)(void* context);
|
||||||
|
void* update_context;
|
||||||
} LfRfidTuneViewModel;
|
} LfRfidTuneViewModel;
|
||||||
|
|
||||||
static void lfrfid_debug_view_tune_draw_callback(Canvas* canvas, void* _model) {
|
static void lfrfid_debug_view_tune_draw_callback(Canvas* canvas, void* _model) {
|
||||||
@ -151,6 +153,18 @@ static bool lfrfid_debug_view_tune_input_callback(InputEvent* event, void* conte
|
|||||||
consumed = false;
|
consumed = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(event->key == InputKeyLeft || event->key == InputKeyRight) {
|
||||||
|
with_view_model(
|
||||||
|
tune_view->view,
|
||||||
|
LfRfidTuneViewModel * model,
|
||||||
|
{
|
||||||
|
if(model->update_callback) {
|
||||||
|
model->update_callback(model->update_context);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return consumed;
|
return consumed;
|
||||||
@ -161,19 +175,7 @@ LfRfidTuneView* lfrfid_debug_view_tune_alloc() {
|
|||||||
tune_view->view = view_alloc();
|
tune_view->view = view_alloc();
|
||||||
view_set_context(tune_view->view, tune_view);
|
view_set_context(tune_view->view, tune_view);
|
||||||
view_allocate_model(tune_view->view, ViewModelTypeLocking, sizeof(LfRfidTuneViewModel));
|
view_allocate_model(tune_view->view, ViewModelTypeLocking, sizeof(LfRfidTuneViewModel));
|
||||||
|
lfrfid_debug_view_tune_clean(tune_view);
|
||||||
with_view_model(
|
|
||||||
tune_view->view,
|
|
||||||
LfRfidTuneViewModel * model,
|
|
||||||
{
|
|
||||||
model->dirty = true;
|
|
||||||
model->fine = false;
|
|
||||||
model->ARR = 511;
|
|
||||||
model->CCR = 255;
|
|
||||||
model->pos = 0;
|
|
||||||
},
|
|
||||||
true);
|
|
||||||
|
|
||||||
view_set_draw_callback(tune_view->view, lfrfid_debug_view_tune_draw_callback);
|
view_set_draw_callback(tune_view->view, lfrfid_debug_view_tune_draw_callback);
|
||||||
view_set_input_callback(tune_view->view, lfrfid_debug_view_tune_input_callback);
|
view_set_input_callback(tune_view->view, lfrfid_debug_view_tune_input_callback);
|
||||||
|
|
||||||
@ -199,6 +201,8 @@ void lfrfid_debug_view_tune_clean(LfRfidTuneView* tune_view) {
|
|||||||
model->ARR = 511;
|
model->ARR = 511;
|
||||||
model->CCR = 255;
|
model->CCR = 255;
|
||||||
model->pos = 0;
|
model->pos = 0;
|
||||||
|
model->update_callback = NULL;
|
||||||
|
model->update_context = NULL;
|
||||||
},
|
},
|
||||||
true);
|
true);
|
||||||
}
|
}
|
||||||
@ -232,3 +236,17 @@ uint32_t lfrfid_debug_view_tune_get_ccr(LfRfidTuneView* tune_view) {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lfrfid_debug_view_tune_set_callback(
|
||||||
|
LfRfidTuneView* tune_view,
|
||||||
|
void (*callback)(void* context),
|
||||||
|
void* context) {
|
||||||
|
with_view_model(
|
||||||
|
tune_view->view,
|
||||||
|
LfRfidTuneViewModel * model,
|
||||||
|
{
|
||||||
|
model->update_callback = callback;
|
||||||
|
model->update_context = context;
|
||||||
|
},
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
|||||||
@ -16,3 +16,8 @@ bool lfrfid_debug_view_tune_is_dirty(LfRfidTuneView* tune_view);
|
|||||||
uint32_t lfrfid_debug_view_tune_get_arr(LfRfidTuneView* tune_view);
|
uint32_t lfrfid_debug_view_tune_get_arr(LfRfidTuneView* tune_view);
|
||||||
|
|
||||||
uint32_t lfrfid_debug_view_tune_get_ccr(LfRfidTuneView* tune_view);
|
uint32_t lfrfid_debug_view_tune_get_ccr(LfRfidTuneView* tune_view);
|
||||||
|
|
||||||
|
void lfrfid_debug_view_tune_set_callback(
|
||||||
|
LfRfidTuneView* tune_view,
|
||||||
|
void (*callback)(void* context),
|
||||||
|
void* context);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user