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
HTTPClient/data/HTTPFile.cpp@6:735d5412de0d, 2015-05-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |