10.1 Kombiniert die Übung 6.4 Wenn sich jemand nähert, Lauflicht einschalten mit dem Yahoo Weather Dienst, dass bei Unterwarnungen das Lauflicht eingeschaltet wird.

Dependencies:   EthernetInterface mbed-rtos mbed spxml

Fork of YahooWeather by smd.iotkit2.ch

Committer:
stefan1691
Date:
Wed May 27 17:23:55 2015 +0000
Revision:
6:735d5412de0d
Parent:
1:2e29a33cd918
10.1 Kombiniert die ?bung 6.4 Wenn sich jemand n?hert, Lauflicht einschalten mit dem Yahoo Weather Dienst, dass bei Unterwarnungen das Lauflicht eingeschaltet wird.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 1:2e29a33cd918 1 #include "HTTPFile.h"
marcel1691 1:2e29a33cd918 2
marcel1691 1:2e29a33cd918 3 //#define DEBUG "HTfi"
marcel1691 1:2e29a33cd918 4 #include <cstdio>
marcel1691 1:2e29a33cd918 5 #if (defined(DEBUG) && !defined(TARGET_LPC11U24))
marcel1691 1:2e29a33cd918 6 #define DBG(x, ...) std::printf("[DBG %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
marcel1691 1:2e29a33cd918 7 #define WARN(x, ...) std::printf("[WRN %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
marcel1691 1:2e29a33cd918 8 #define ERR(x, ...) std::printf("[ERR %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
marcel1691 1:2e29a33cd918 9 #define INFO(x, ...) std::printf("[INF %s %3d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
marcel1691 1:2e29a33cd918 10 #else
marcel1691 1:2e29a33cd918 11 #define DBG(x, ...)
marcel1691 1:2e29a33cd918 12 #define WARN(x, ...)
marcel1691 1:2e29a33cd918 13 #define ERR(x, ...)
marcel1691 1:2e29a33cd918 14 #define INFO(x, ...)
marcel1691 1:2e29a33cd918 15 #endif
marcel1691 1:2e29a33cd918 16
marcel1691 1:2e29a33cd918 17 HTTPFile::HTTPFile(char* filename) {
marcel1691 1:2e29a33cd918 18 INFO("HTTPFile %s", filename);
marcel1691 1:2e29a33cd918 19 file = fopen(filename, "w");
marcel1691 1:2e29a33cd918 20 m_chunked = false;
marcel1691 1:2e29a33cd918 21 }
marcel1691 1:2e29a33cd918 22
marcel1691 1:2e29a33cd918 23 void HTTPFile::close() {
marcel1691 1:2e29a33cd918 24 INFO("close()");
marcel1691 1:2e29a33cd918 25 if (file) {
marcel1691 1:2e29a33cd918 26 fclose(file);
marcel1691 1:2e29a33cd918 27 file = NULL;
marcel1691 1:2e29a33cd918 28 }
marcel1691 1:2e29a33cd918 29 }
marcel1691 1:2e29a33cd918 30
marcel1691 1:2e29a33cd918 31 void HTTPFile::writeReset() {
marcel1691 1:2e29a33cd918 32 INFO("writeReset()");
marcel1691 1:2e29a33cd918 33 if (file) {
marcel1691 1:2e29a33cd918 34 rewind(file);
marcel1691 1:2e29a33cd918 35 }
marcel1691 1:2e29a33cd918 36 }
marcel1691 1:2e29a33cd918 37
marcel1691 1:2e29a33cd918 38 int HTTPFile::write(const char* buf, size_t len) {
marcel1691 1:2e29a33cd918 39 size_t written;
marcel1691 1:2e29a33cd918 40 INFO("write(%d,%s) m_len(%d), chunk %d", len, buf, m_len, m_chunked);
marcel1691 1:2e29a33cd918 41 if (file) {
marcel1691 1:2e29a33cd918 42 written = fwrite(buf, 1, len, file);
marcel1691 1:2e29a33cd918 43 INFO(" writ:%d, ftell: %d", written, ftell(file));
marcel1691 1:2e29a33cd918 44 if ((!m_chunked && (ftell(file) >= m_len)) || (m_chunked && !written)) {
marcel1691 1:2e29a33cd918 45 INFO("closing");
marcel1691 1:2e29a33cd918 46 close();
marcel1691 1:2e29a33cd918 47 }
marcel1691 1:2e29a33cd918 48 }
marcel1691 1:2e29a33cd918 49 return len;
marcel1691 1:2e29a33cd918 50 }
marcel1691 1:2e29a33cd918 51
marcel1691 1:2e29a33cd918 52 void HTTPFile::setDataType(const char* type) {
marcel1691 1:2e29a33cd918 53 INFO("setDataType(%s)", type);
marcel1691 1:2e29a33cd918 54 }
marcel1691 1:2e29a33cd918 55
marcel1691 1:2e29a33cd918 56 //void HTTPFile::setLocation(const char * location) {
marcel1691 1:2e29a33cd918 57 //
marcel1691 1:2e29a33cd918 58 //}
marcel1691 1:2e29a33cd918 59
marcel1691 1:2e29a33cd918 60 void HTTPFile::setIsChunked(bool chunked) {
marcel1691 1:2e29a33cd918 61 INFO("setIsChunked(%d)", chunked);
marcel1691 1:2e29a33cd918 62 m_chunked = chunked;
marcel1691 1:2e29a33cd918 63 }
marcel1691 1:2e29a33cd918 64
marcel1691 1:2e29a33cd918 65 void HTTPFile::setDataLen(size_t len) {
marcel1691 1:2e29a33cd918 66 INFO("setDataLen(%d)", len);
marcel1691 1:2e29a33cd918 67 m_len = len;
marcel1691 1:2e29a33cd918 68 }