fix too early mode render (#249)

iButton app, bugfix
This commit is contained in:
DrZlo13 2020-11-18 15:51:23 +03:00 committed by GitHub
parent f0bda07742
commit 9bbc8fafe5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View File

@ -25,9 +25,7 @@ void AppiButton::run() {
AppiButtonEvent event;
while(1) {
osStatus_t event_status = osMessageQueueGet(event_queue, &event, NULL, 100);
if(event_status == osOK) {
if(get_event(&event, 100)) {
if(event.type == AppiButtonEvent::EventTypeKey) {
// press events
if(event.value.input.state && event.value.input.input == InputBack) {
@ -63,8 +61,10 @@ void AppiButton::render(CanvasApi* canvas) {
canvas->set_font(canvas, FontPrimary);
canvas->draw_str(canvas, 2, 12, "iButton");
if(mode[state.mode_index] != NULL) {
mode[state.mode_index]->render(canvas, &state);
}
}
void AppiButton::blink_red() {
gpio_write(red_led_record, 0);

View File

@ -42,7 +42,7 @@ public:
GpioPin* green_led_record;
static const uint8_t modes_count = 2;
AppTemplateMode<AppiButtonState, AppiButtonEvent>* mode[modes_count];
AppTemplateMode<AppiButtonState, AppiButtonEvent>* mode[modes_count] = {NULL, NULL};
void run();
void render(CanvasApi* canvas);