Test Program for Multi Adapter

Dependencies:   mbed

Revision:
1:b97b4f4e5adb
Parent:
0:4c6961cb6ccf
Child:
2:9f4eff106f89
--- a/edge.cpp	Mon Jan 15 07:53:03 2018 +0000
+++ b/edge.cpp	Tue Jan 16 06:47:25 2018 +0000
@@ -5,31 +5,34 @@
  
 #include "mbed.h"
 
-#define PIN_AN0 PTB0
-#define PIN_AN1 PTB1
-#define PIN_AN2 PTB2
-#define PIN_AN3 PTB3 
+#define PIN_AN0     PTB0
+#define PIN_AN1     PTB1
+#define PIN_AN2     PTB2
+#define PIN_AN3     PTB3 
 
-#define PIN_LEDR PTB18
-#define PIN_LEDG PTB19
-#define PIN_LEDB PTD1
+#define PIN_LEDR    PTB18
+#define PIN_LEDG    PTB19
+#define PIN_LEDB    PTD1
 
-#define UART_TX PTE0
-#define UART_RX PTE1
-#define BAUD_RATE 9600
+#define UART_TX     PTE0
+#define UART_RX     PTE1
+#define BAUD_RATE   9600
 
-#define MODE_IDLE 0
-#define MODE_ALART 1
-#define MODE_DATA 2
-#define ACK (0x3E)
+#define MODE_IDLE   0
+#define MODE_ALART  1
+#define MODE_DATA   2
+#define ACK         (0x3E)
 // #define ACK (0x06)
-#define TILDE '~'
+#define TILDE       '~'
+#define CR          '\r'
+#define DOT         '.'
+#define SPACE       ' '
 
 // R0=5.0, float R1=4.95, float B=3324, float T0=298.15
-#define R0 5.0
-#define R1 4.95
-#define B 3324
-#define T0 298.15
+#define R0          5.0
+#define R1          4.95
+#define B           3324
+#define T0          298.15
 
 DigitalOut *led_r = 0 ;
 DigitalOut *led_g = 0 ;
@@ -56,19 +59,26 @@
 
 void knock(void)
 {
-    uint8_t c = '\r' ;
+    uint8_t c = CR ;
     printf("Knocking on the host's door\n") ;
     printf("Sending 0x%02X\n", c) ;
-//    tty->putc('A') ;
     tty->putc(c) ;
     wait(0.5) ;
 }
 
 int wait_ack(void)
 {
-    char c ;
-    printf("Waiting for ACK\n") ;
-    c = tty->getc() ;
+    char c = 0xFF ;
+    printf("Waiting for ACK ") ;
+    for (int i = 0 ; i < 10 ; i++ ) {
+        if (tty->readable()) {
+            c = tty->getc() ;
+        } else {
+            tty->putchar(DOT) ;
+        }
+        wait(1) ;
+    }
+    tty->putchar(SPACE) ;
     if (c == ACK) {
         printf("ACK received\n") ;
     } else {
@@ -83,6 +93,7 @@
     float f, raw, rr1, t ;
     if (an[n]) {
         f = an[n]->read() ;
+ // printf("AN[%d] = %.2f\n",n, f) ;
         raw = f * 3.3 ;
         rr1 = R1 * raw / (3.3 - raw) ;
         t = 1.0 / (log(rr1 / R0) / B + (1/T0)) ;
@@ -100,8 +111,8 @@
     for (i = 0 ; i < 4 ; i++ ) {
         temp[i] = getTemp(i) ; 
         printf("temp[%d] = %.2f\n", i, temp[i]) ;
-        dummy = 100 * temp[i] ;
-        data[i * 2+1] = (int8_t)(dummy / 100) ;
+        dummy = (int)(100.0 * temp[i] + 0.5)  ;
+        data[i * 2 + 1] = (int8_t)(dummy / 100) ;
         data[i * 2 + 2] = (int8_t)(dummy % 100) ;
     }
     data[9] = 0 ;