Beispiel Abfrage Cloud Dienst Sunrise / Sunset

Dependencies:   EthernetInterface MbedJSONValue mbed-rtos mbed

Fork of HTTP_GET by smd.iotkit2.ch

Sunrise Sunset stellt ein API zur Verfügung, mittels dem die Sonnen Auf- und Untergangszeiten für einen bestimmten Ort abgefragt werden können.

Links

Beispiel: Abfrage für Zürich

http://api.sunrise-sunset.org/json?lat=47.3686498&lng=8.5391825

{"results":
   { "sunrise":"5:38:12 AM",
     "sunset":"5:31:12 PM",
     "solar_noon":"11:34:42 AM",
     "day_length":"11:53:00",
     "civil_twilight_begin":"5:07:47 AM",
     "civil_twilight_end":"6:01:38 PM",
     "nautical_twilight_begin":"4:32:04 AM",
     "nautical_twilight_end":"6:37:21 PM",
     "astronomical_twilight_begin":"3:55:32 AM",
     "astronomical_twilight_end":"7:13:52 PM"
   },
   "status":"OK"}
Revision:
1:2e29a33cd918
diff -r fb5060c39dd1 -r 2e29a33cd918 HTTPClient/data/HTTPFile.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPClient/data/HTTPFile.h	Sat Jan 17 14:11:01 2015 +0000
@@ -0,0 +1,55 @@
+#ifndef HTTPFILE_H
+#define HTTPFILE_H
+#if 1
+#include <mbed.h>
+#include "../IHTTPData.h"
+
+
+class HTTPFile : public IHTTPDataIn {
+    
+    public:
+        HTTPFile(char* filename);
+        
+        /** Closes the file, should be called once the http connection is closed.
+         */
+        void close();
+        
+    protected:     
+       
+        friend class HTTPClient;
+    
+        /** Reset stream to its beginning 
+        * Called by the HTTPClient on each new request
+        */
+        virtual void writeReset();
+        
+        /** Write a piece of data transmitted by the server
+        * @param[in] buf Pointer to the buffer from which to copy the data
+        * @param[in] len Length of the buffer
+        * @returns number of bytes written.
+        */
+        virtual int write(const char* buf, size_t len);
+        
+        /** Set MIME type
+        * @param[in] type Internet media type from Content-Type header
+        */
+        virtual void setDataType(const char* type);
+        
+        /** Determine whether the data is chunked
+        *  Recovered from Transfer-Encoding header
+        * @param[in] chunked indicates the transfer is chunked.
+        */
+        virtual void setIsChunked(bool chunked);
+        
+        /** If the data is not chunked, set its size
+        * From Content-Length header
+        * @param[in] len defines the size of the non-chunked transfer.
+        */
+        virtual void setDataLen(size_t len);
+    private:
+        FILE *file;
+        size_t m_len;
+        bool m_chunked;
+};
+#endif
+#endif  // HTTPFILE_H
\ No newline at end of file