Backing up an unused program in case of future need

Dependencies:   mbed

Revision:
6:be97d38e0b01
Parent:
5:6226f3c566ef
Child:
7:024ace6d943c
--- a/server.cpp	Wed May 11 16:42:35 2016 +0000
+++ b/server.cpp	Tue May 31 07:35:28 2016 +0000
@@ -5,8 +5,9 @@
 #include    "time.h"
 #include    "wifi.h"
 #include "ds18b20.h"
-#define RECV_BUFFER_SIZE 1024
-#define SEND_BUFFER_SIZE  256
+#include     "cfg.h"
+#define RECV_BUFFER_SIZE 128
+#define SEND_BUFFER_SIZE 256
 #define SERVER_PORT 80
 
 static char recvbuffer[RECV_BUFFER_SIZE];
@@ -115,6 +116,9 @@
             "<head>\r\n"
             "<title>IoT mbed</title>\r\n"
             "</head>\r\n"
+            "<style>\r\n"
+            "* { font-family: Tahoma, Geneva, sans-serif; }\r\n"
+            "</style>\r\n"
             "<body>\r\n";
 
 static int fillLog(int id)
@@ -135,7 +139,18 @@
     }
     return len;
 }
-
+static int addTemperature(int len, int16_t value)
+{
+    switch (value)
+    {
+        case DS18B20_ERROR_CRC:                     return addChunk (len, "CRC error"                     );
+        case DS18B20_ERROR_NOT_FOUND:               return addChunk (len, "ROM not found"                 );
+        case DS18B20_ERROR_TIMED_OUT:               return addChunk (len, "Timed out"                     );
+        case DS18B20_ERROR_NO_DEVICE_PRESENT:       return addChunk (len, "No device detected after reset");
+        case DS18B20_ERROR_NO_DEVICE_PARTICIPATING: return addChunk (len, "Device removed during search"  );
+        default:                                    return addChunkF(len, "%1.1f", value / 16.0           );
+    }
+}
 static int fillLed(int id)
 {
     int len;
@@ -147,23 +162,53 @@
             break;
         case 2:
             len = 0;
-            len = addChunkF(len, "Version: %s<br/>\r\n", AtEspVersion);
-            len = addChunkF(len, "Temperature: %1.1f\r\n", DS18B20Value / 16.0);
+            len = addChunkF(len, "Scan us: %d<br/><br/>\r\n", TimeScanUs);
             lineToSendToId[id] += 1;
             break;
         case 3:
+            len = 0;
+            len = addChunk (len, "Devices:<br/>\r\n");
+            for (int j = 0; j < DS18B20DeviceCount; j++)
+            {
+                len = addChunkF(len, "%d - ", j);
+                for (int i = 0; i < 8; i++) len = addChunkF(len, " %02X", DS18B20DeviceList[j*8 + i]);
+                len = addChunk(len, " - ");
+                len = addTemperature(len, DS18B20Value[j]);
+                len = addChunk (len, "<br/>\r\n");
+            }
+            len = addChunk (len, "<br/>\r\n");
+            lineToSendToId[id] += 1;
+            break;
+        case 4:
+            len = 0;
+            int16_t temp;
+            
+            temp = DS18B20ValueFromRom(CfgTankRom);
+            len = addChunk (len, "Tank  temperature: ");
+            len = addTemperature(len, temp);
+            len = addChunk (len, "<br/>\r\n");
+            
+            temp = DS18B20ValueFromRom(CfgInletRom);
+            len = addChunk (len, "Inlet temperature: ");
+            len = addTemperature(len, temp);
+            len = addChunk (len, "<br/><br/>\r\n");
+            
+            lineToSendToId[id] += 1;
+            break;
+        case 5:
             len = fillChunk(
+            "<br/>"
             "<form action='/' method='get'>\r\n"
             "<input type='hidden' name='ledonoff'>\r\n");
             lineToSendToId[id] += 1;
             break;
-        case 4:
+        case 6:
             len = fillChunk("Led <input type='checkbox' name='led' value='on'");
             if (Led1) len = addChunk(len, " checked='checked'");
             len = addChunk(len, ">\r\n");
             lineToSendToId[id] +=  1;
             break;
-        case 5:
+        case 7:
             len = fillChunk(
             "<input type='submit' value='Set'><br/>\r\n"
             "</form>\r\n"
@@ -258,8 +303,8 @@
 }
 static int recvMain()
 {
-    //Wait for data to be available oneshot
-    if (EspDataAvailable != ESP_AVAILABLE) return 0;
+    //Wait for data to be available oneshot. Buffer will normally hit limit.
+    if (!EspDataAvailable) return 0;
     
     //Ignore ids that have been reserved elsewhere (ie NTP)
     if (EspIpdReserved[EspIpdId]) return 0;