فهرست منبع

NFC: screens for not implemented features

Aleksandr Kutuzov 5 سال پیش
والد
کامیت
92f6e124ba
1فایلهای تغییر یافته به همراه35 افزوده شده و 23 حذف شده
  1. 35 23
      applications/nfc/nfc.c

+ 35 - 23
applications/nfc/nfc.c

@@ -33,12 +33,15 @@ struct Nfc {
     FuriRecordSubscriber* gui_record;
     FuriRecordSubscriber* gui_record;
     FuriRecordSubscriber* menu_record;
     FuriRecordSubscriber* menu_record;
     rfalNfcDiscoverParam* disParams;
     rfalNfcDiscoverParam* disParams;
-    uint32_t ret;
-
+    
     osThreadAttr_t worker_attr;
     osThreadAttr_t worker_attr;
     osThreadId_t worker;
     osThreadId_t worker;
+    
+    uint8_t screen;
+    uint8_t ret;
     uint8_t devCnt;
     uint8_t devCnt;
     uint8_t ticker;
     uint8_t ticker;
+    
     char* current;
     char* current;
 };
 };
 
 
@@ -144,24 +147,29 @@ void nfc_draw_callback(CanvasApi* canvas, void* context) {
     canvas->set_color(canvas, ColorBlack);
     canvas->set_color(canvas, ColorBlack);
     canvas->set_font(canvas, FontPrimary);
     canvas->set_font(canvas, FontPrimary);
 
 
-    char status[128 / 8];
-    if(nfc->ret == ERR_WRONG_STATE)
-        canvas->draw_str(canvas, 2, 16, "NFC Wrong State");
-    else if(nfc->ret == ERR_PARAM)
-        canvas->draw_str(canvas, 2, 16, "NFC Wrong Param");
-    else if(nfc->ret == ERR_IO)
-        canvas->draw_str(canvas, 2, 16, "NFC IO Error");
-    else if(nfc->ret == ERR_NONE)
-        canvas->draw_str(canvas, 2, 16, "NFC Device Found");
-    else if(nfc->ret == ERR_TIMEOUT)
-        canvas->draw_str(canvas, 2, 16, "NFC Timeout");
-    else
-        canvas->draw_str(canvas, 2, 16, "NFC error");
-
-    snprintf(status, sizeof(status), "Tck:%d Cnt:%d", nfc->ticker, nfc->devCnt);
-
-    canvas->draw_str(canvas, 2, 32, status);
-    canvas->draw_str(canvas, 2, 46, nfc->current);
+    if (nfc->screen == 0) {
+        char status[128 / 8];
+        if(nfc->ret == ERR_WRONG_STATE)
+            canvas->draw_str(canvas, 2, 16, "NFC Wrong State");
+        else if(nfc->ret == ERR_PARAM)
+            canvas->draw_str(canvas, 2, 16, "NFC Wrong Param");
+        else if(nfc->ret == ERR_IO)
+            canvas->draw_str(canvas, 2, 16, "NFC IO Error");
+        else if(nfc->ret == ERR_NONE)
+            canvas->draw_str(canvas, 2, 16, "NFC Device Found");
+        else if(nfc->ret == ERR_TIMEOUT)
+            canvas->draw_str(canvas, 2, 16, "NFC Timeout");
+        else
+            canvas->draw_str(canvas, 2, 16, "NFC error");
+
+        snprintf(status, sizeof(status), "Tck:%d Cnt:%d", nfc->ticker, nfc->devCnt);
+
+        canvas->draw_str(canvas, 2, 32, status);
+        canvas->draw_str(canvas, 2, 46, nfc->current);
+    } else {
+        canvas->draw_str(canvas, 2, 16, "Not implemented");
+    }
+
 
 
     dispatcher_unlock(nfc->dispatcher);
     dispatcher_unlock(nfc->dispatcher);
 }
 }
@@ -182,6 +190,7 @@ void nfc_test_callback(void* context) {
     dispatcher_lock(nfc->dispatcher);
     dispatcher_lock(nfc->dispatcher);
 
 
     if(nfc->ret == ERR_NONE && !nfc->worker) {
     if(nfc->ret == ERR_NONE && !nfc->worker) {
+        nfc->screen = 0;
         widget_enabled_set(nfc->widget, true);
         widget_enabled_set(nfc->widget, true);
         nfc->worker = osThreadNew(nfc_worker_task, nfc, &nfc->worker_attr);
         nfc->worker = osThreadNew(nfc_worker_task, nfc, &nfc->worker_attr);
     }
     }
@@ -192,19 +201,22 @@ void nfc_test_callback(void* context) {
 void nfc_read_callback(void* context) {
 void nfc_read_callback(void* context) {
     assert(context);
     assert(context);
     Nfc* nfc = context;
     Nfc* nfc = context;
-    (void)nfc;
+    nfc->screen = 1;
+    widget_enabled_set(nfc->widget, true);
 }
 }
 
 
 void nfc_write_callback(void* context) {
 void nfc_write_callback(void* context) {
     assert(context);
     assert(context);
     Nfc* nfc = context;
     Nfc* nfc = context;
-    (void)nfc;
+    nfc->screen = 1;
+    widget_enabled_set(nfc->widget, true);
 }
 }
 
 
 void nfc_bridge_callback(void* context) {
 void nfc_bridge_callback(void* context) {
     assert(context);
     assert(context);
     Nfc* nfc = context;
     Nfc* nfc = context;
-    (void)nfc;
+    nfc->screen = 1;
+    widget_enabled_set(nfc->widget, true);
 }
 }
 
 
 Nfc* nfc_alloc() {
 Nfc* nfc_alloc() {