![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Backing up an unused program in case of future need
Diff: server.cpp
- 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;