فهرست منبع

Add AutoReset-checker to the uartdriver

Jordy Sipkema 9 سال پیش
والد
کامیت
de142d9d88
1فایلهای تغییر یافته به همراه33 افزوده شده و 0 حذف شده
  1. 33 0
      uart0driver.c

+ 33 - 0
uart0driver.c

@@ -56,8 +56,10 @@
 
 //#pragma text:appcode
 
+#include "log.h"
 #include "system.h"
 #include "uart0driver.h"
+#include "watchdog.h"
 
 
 //----------------------------------------------------------
@@ -84,6 +86,37 @@ static FILE *stream=NULL;
     // }
 // }
 
+THREAD(Uart0KeyEvents, arg)
+{
+    //LogMsg_P(LOG_INFO, PSTR("UART-Thread Start"));
+
+    NutThreadSetPriority(200);  // low prio
+    for (;;)
+    {
+        char *result = "";
+        char rst[] = "reset\n";
+
+        if (stream==NULL)
+        {
+            //LogMsg_P(LOG_INFO, PSTR("Stream is NULL!"));
+            NutSleep(2000);           //Mhe
+            continue;
+        }
+
+        result = fgets(result, 16, stream);
+        short _reset_received = strcmp(rst, result);
+
+        *rst = "abcde\n";
+        *result = "";
+
+        if (_reset_received == 0){
+            LogMsg_P(LOG_INFO, PSTR(">>>>>> RESET COMMAND RECEIVED"));
+            //RESET SIR!
+            WatchDogStart(0);
+        }
+    }
+}
+
 //----------------------------------------------------------
 
 /*!