DisplayAPP_ticker

Revision:
1:fdcf2c6a1167
Parent:
0:13c1f522bbef
Child:
2:b7ffe5216cd7
--- a/DisplayApp.cpp	Thu Sep 15 02:58:33 2016 +0000
+++ b/DisplayApp.cpp	Fri Sep 16 08:04:52 2016 +0000
@@ -11,69 +11,73 @@
 
     displayThread.set_priority(osPriorityNormal);
     while (1) {
-        data = pPcApp->getc();
-        if (data == '{') {
-            pos_seq = POS_SEQ_START;
-        } else if (data == 'X') {
-            if (pos_seq == POS_SEQ_START) {
-                pos_seq = POS_SEQ_X;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if (data == 'Y') {
-            if (pos_seq == POS_SEQ_C) {
-                pos_seq = POS_SEQ_Y;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if (data == '=') {
-            if (pos_seq == POS_SEQ_X) {
-                pos_seq = POS_SEQ_X_POS;
-                pos_wk = 0;
-            } else if (pos_seq == POS_SEQ_Y) {
-                pos_seq = POS_SEQ_Y_POS;
-                pos_wk = 0;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if (data == '-') {
-            if (pos_seq == POS_SEQ_X_POS) {
-                pos_seq = POS_SEQ_X_M;
-            } else if (pos_seq == POS_SEQ_Y_POS) {
-                pos_seq = POS_SEQ_Y_M;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if ((data >= '0') && (data <= '9')) {
-            if ((pos_seq == POS_SEQ_X_POS) || (pos_seq == POS_SEQ_Y_POS)) {
-                pos_wk = (pos_wk * 10) + (data - '0');
-            } else if ((pos_seq == POS_SEQ_X_M) && (data == '1')) {
-                pos_wk = -1;
-            } else if ((pos_seq == POS_SEQ_Y_M) && (data == '1')) {
-                pos_wk = -1;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if (data == ',') {
-            if ((pos_seq == POS_SEQ_X_POS) || (pos_seq == POS_SEQ_X_M)) {
-                pos_x_wk = pos_wk;
-                pos_seq = POS_SEQ_C;
-            } else {
-                pos_seq = POS_SEQ_INIT;
-            }
-        } else if (data == '}') {
-            if ((pos_seq == POS_SEQ_Y_POS) || (pos_seq == POS_SEQ_Y_M)) {
-                pos_seq = POS_SEQ_END;
-                if ((pos_x != pos_x_wk) || (pos_y != pos_wk)) {
-                    pos_x = pos_x_wk;
-                    pos_y = pos_wk;
-                    event.call();
+        if (pPcApp->readable()) {
+            data = pPcApp->getc();
+            if (data == '{') {
+                pos_seq = POS_SEQ_START;
+            } else if (data == 'X') {
+                if (pos_seq == POS_SEQ_START) {
+                    pos_seq = POS_SEQ_X;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if (data == 'Y') {
+                if (pos_seq == POS_SEQ_C) {
+                    pos_seq = POS_SEQ_Y;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if (data == '=') {
+                if (pos_seq == POS_SEQ_X) {
+                    pos_seq = POS_SEQ_X_POS;
+                    pos_wk = 0;
+                } else if (pos_seq == POS_SEQ_Y) {
+                    pos_seq = POS_SEQ_Y_POS;
+                    pos_wk = 0;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if (data == '-') {
+                if (pos_seq == POS_SEQ_X_POS) {
+                    pos_seq = POS_SEQ_X_M;
+                } else if (pos_seq == POS_SEQ_Y_POS) {
+                    pos_seq = POS_SEQ_Y_M;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if ((data >= '0') && (data <= '9')) {
+                if ((pos_seq == POS_SEQ_X_POS) || (pos_seq == POS_SEQ_Y_POS)) {
+                    pos_wk = (pos_wk * 10) + (data - '0');
+                } else if ((pos_seq == POS_SEQ_X_M) && (data == '1')) {
+                    pos_wk = -1;
+                } else if ((pos_seq == POS_SEQ_Y_M) && (data == '1')) {
+                    pos_wk = -1;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if (data == ',') {
+                if ((pos_seq == POS_SEQ_X_POS) || (pos_seq == POS_SEQ_X_M)) {
+                    pos_x_wk = pos_wk;
+                    pos_seq = POS_SEQ_C;
+                } else {
+                    pos_seq = POS_SEQ_INIT;
+                }
+            } else if (data == '}') {
+                if ((pos_seq == POS_SEQ_Y_POS) || (pos_seq == POS_SEQ_Y_M)) {
+                    pos_seq = POS_SEQ_END;
+                    if ((pos_x != pos_x_wk) || (pos_y != pos_wk)) {
+                        pos_x = pos_x_wk;
+                        pos_y = pos_wk;
+                        event.call();
+                    }
+                } else {
+                    pos_seq = POS_SEQ_INIT;
                 }
             } else {
                 pos_seq = POS_SEQ_INIT;
             }
         } else {
-            pos_seq = POS_SEQ_INIT;
+            Thread::wait(10);
         }
     }
 }