Ambient library. It provides "set" function to set data to a packet and "send" function to send the packet to the Ambient server. It also provides "bulk_send" function to send multiple data. (Japanese: IoT用のクラウドサービス「Ambient」のデーター送信ライブラリーです。Ambientはマイコンから送られたセンサーデーターを受信し、蓄積し、可視化(グラフ化)します。http://ambidata.io)
Dependents: AmbientExampleSITB AmbientHeartRateMonitor AmbientHeartBeat AmbientExampleSITB_ws ... more
Ambient.h@4:fcbd652bbb7a, 2017-01-25 (annotated)
- Committer:
- AmbientData
- Date:
- Wed Jan 25 12:28:14 2017 +0000
- Revision:
- 4:fcbd652bbb7a
- Parent:
- 3:a724fe60de46
send()?????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AmbientData | 1:dcc2714b5bcb | 1 | #ifndef Ambient_h |
AmbientData | 1:dcc2714b5bcb | 2 | #define Ambient_h |
AmbientData | 0:7dca16f75bae | 3 | |
AmbientData | 0:7dca16f75bae | 4 | #include "mbed.h" |
AmbientData | 0:7dca16f75bae | 5 | #include "TCPSocketConnection.h" |
AmbientData | 0:7dca16f75bae | 6 | |
AmbientData | 0:7dca16f75bae | 7 | #define AMBIENT_WRITEKEY_SIZE 18 |
AmbientData | 0:7dca16f75bae | 8 | #define AMBIENT_MAX_RETRY 5 |
AmbientData | 0:7dca16f75bae | 9 | #define AMBIENT_DATA_SIZE 24 |
AmbientData | 0:7dca16f75bae | 10 | #define AMBIENT_NUM_PARAMS 11 |
AmbientData | 3:a724fe60de46 | 11 | #define AMBIENT_TIMEOUT 3000 // milliseconds |
AmbientData | 0:7dca16f75bae | 12 | |
AmbientData | 1:dcc2714b5bcb | 13 | /** Ambient class |
AmbientData | 0:7dca16f75bae | 14 | * to send data to Ambient service. |
AmbientData | 0:7dca16f75bae | 15 | * |
AmbientData | 0:7dca16f75bae | 16 | * Exsample: |
AmbientData | 0:7dca16f75bae | 17 | * @code |
AmbientData | 0:7dca16f75bae | 18 | * #include "mbed.h" |
AmbientData | 0:7dca16f75bae | 19 | * #include "EthernetInterface.h" |
AmbientData | 0:7dca16f75bae | 20 | * #include "Ambient.h" |
AmbientData | 0:7dca16f75bae | 21 | * #include "HDC1000.h" |
AmbientData | 0:7dca16f75bae | 22 | * |
AmbientData | 0:7dca16f75bae | 23 | * unsigned int channelId = 100; |
AmbientData | 0:7dca16f75bae | 24 | * const char* writeKey = "ライトキー"; |
AmbientData | 1:dcc2714b5bcb | 25 | * Ambient ambient; |
AmbientData | 0:7dca16f75bae | 26 | * |
AmbientData | 0:7dca16f75bae | 27 | * HDC1000 hdc1000(p9,p10); |
AmbientData | 0:7dca16f75bae | 28 | * |
AmbientData | 0:7dca16f75bae | 29 | * int main() { |
AmbientData | 0:7dca16f75bae | 30 | * printf("start\r\n"); |
AmbientData | 0:7dca16f75bae | 31 | * |
AmbientData | 0:7dca16f75bae | 32 | * EthernetInterface eth; |
AmbientData | 0:7dca16f75bae | 33 | * eth.init(); //Use DHCP |
AmbientData | 0:7dca16f75bae | 34 | * eth.connect(); |
AmbientData | 0:7dca16f75bae | 35 | * |
AmbientData | 0:7dca16f75bae | 36 | * TCPSocketConnection socket; |
AmbientData | 0:7dca16f75bae | 37 | * ambient.init(channelId, writeKey, &socket); |
AmbientData | 0:7dca16f75bae | 38 | * |
AmbientData | 0:7dca16f75bae | 39 | * printf("Ambient send to ch: %d\r\n", channelId); |
AmbientData | 0:7dca16f75bae | 40 | * |
AmbientData | 0:7dca16f75bae | 41 | * while (true) { |
AmbientData | 0:7dca16f75bae | 42 | * float temp, humid; |
AmbientData | 0:7dca16f75bae | 43 | * char tempbuf[12], humidbuf[12]; |
AmbientData | 0:7dca16f75bae | 44 | * |
AmbientData | 0:7dca16f75bae | 45 | * hdc1000.get(); |
AmbientData | 0:7dca16f75bae | 46 | * temp = hdc1000.temperature(); |
AmbientData | 0:7dca16f75bae | 47 | * humid = hdc1000.humidity(); |
AmbientData | 0:7dca16f75bae | 48 | * |
AmbientData | 0:7dca16f75bae | 49 | * sprintf(tempbuf, "%2.1f", temp); |
AmbientData | 0:7dca16f75bae | 50 | * ambient.set(1, tempbuf); |
AmbientData | 0:7dca16f75bae | 51 | * sprintf(humidbuf, "%2.0f", humid); |
AmbientData | 0:7dca16f75bae | 52 | * ambient.set(2, humidbuf); |
AmbientData | 0:7dca16f75bae | 53 | * printf("Temp: %s C, Humid: %s %%\r\n", tempbuf, humidbuf); |
AmbientData | 0:7dca16f75bae | 54 | * |
AmbientData | 0:7dca16f75bae | 55 | * ambient.send(); |
AmbientData | 0:7dca16f75bae | 56 | * |
AmbientData | 0:7dca16f75bae | 57 | * wait(30.0); |
AmbientData | 0:7dca16f75bae | 58 | * } |
AmbientData | 0:7dca16f75bae | 59 | * } |
AmbientData | 0:7dca16f75bae | 60 | * @endcode |
AmbientData | 0:7dca16f75bae | 61 | */ |
AmbientData | 1:dcc2714b5bcb | 62 | class Ambient |
AmbientData | 0:7dca16f75bae | 63 | { |
AmbientData | 0:7dca16f75bae | 64 | public: |
AmbientData | 1:dcc2714b5bcb | 65 | /** Create Ambient instance |
AmbientData | 0:7dca16f75bae | 66 | */ |
AmbientData | 1:dcc2714b5bcb | 67 | Ambient(void); |
AmbientData | 0:7dca16f75bae | 68 | |
AmbientData | 0:7dca16f75bae | 69 | /** Initialize the instance |
AmbientData | 0:7dca16f75bae | 70 | * @param channelId Initialize the Ambient instance with channelId. |
AmbientData | 0:7dca16f75bae | 71 | * @param writeKey and writeKey |
AmbientData | 0:7dca16f75bae | 72 | * @param s and pointer to socket |
AmbientData | 0:7dca16f75bae | 73 | * @returns |
AmbientData | 0:7dca16f75bae | 74 | * true on success, |
AmbientData | 3:a724fe60de46 | 75 | * false on failure |
AmbientData | 0:7dca16f75bae | 76 | */ |
AmbientData | 0:7dca16f75bae | 77 | bool init(unsigned int channelId, const char * writeKey, TCPSocketConnection * s, int dev = 0); |
AmbientData | 4:fcbd652bbb7a | 78 | |
AmbientData | 0:7dca16f75bae | 79 | /** Set data on field-th field of payload. |
AmbientData | 0:7dca16f75bae | 80 | * @param field index of payload (1 to 8) |
AmbientData | 0:7dca16f75bae | 81 | * @param data data |
AmbientData | 0:7dca16f75bae | 82 | * @returns |
AmbientData | 0:7dca16f75bae | 83 | * true on success, |
AmbientData | 3:a724fe60de46 | 84 | * false on failure |
AmbientData | 0:7dca16f75bae | 85 | */ |
AmbientData | 0:7dca16f75bae | 86 | bool set(int field, char * data); |
AmbientData | 4:fcbd652bbb7a | 87 | |
AmbientData | 4:fcbd652bbb7a | 88 | /** Set data on field-th field of payload. |
AmbientData | 4:fcbd652bbb7a | 89 | * @param field index of payload (1 to 8) |
AmbientData | 4:fcbd652bbb7a | 90 | * @param data data |
AmbientData | 4:fcbd652bbb7a | 91 | * @returns |
AmbientData | 4:fcbd652bbb7a | 92 | * true on success, |
AmbientData | 4:fcbd652bbb7a | 93 | * false on failure |
AmbientData | 4:fcbd652bbb7a | 94 | */ |
AmbientData | 4:fcbd652bbb7a | 95 | bool set(int field, int data); |
AmbientData | 4:fcbd652bbb7a | 96 | |
AmbientData | 4:fcbd652bbb7a | 97 | /** Set data on field-th field of payload. |
AmbientData | 4:fcbd652bbb7a | 98 | * @param field index of payload (1 to 8) |
AmbientData | 4:fcbd652bbb7a | 99 | * @param data data |
AmbientData | 4:fcbd652bbb7a | 100 | * @returns |
AmbientData | 4:fcbd652bbb7a | 101 | * true on success, |
AmbientData | 4:fcbd652bbb7a | 102 | * false on failure |
AmbientData | 4:fcbd652bbb7a | 103 | */ |
AmbientData | 4:fcbd652bbb7a | 104 | bool set(int field, double data); |
AmbientData | 4:fcbd652bbb7a | 105 | |
AmbientData | 0:7dca16f75bae | 106 | /** Clear data on field-th field of payload. |
AmbientData | 0:7dca16f75bae | 107 | * @param field index of payload (1 to 8) |
AmbientData | 0:7dca16f75bae | 108 | * @returns |
AmbientData | 0:7dca16f75bae | 109 | * true on success, |
AmbientData | 3:a724fe60de46 | 110 | * false on failure |
AmbientData | 0:7dca16f75bae | 111 | */ |
AmbientData | 0:7dca16f75bae | 112 | bool clear(int field); |
AmbientData | 0:7dca16f75bae | 113 | |
AmbientData | 0:7dca16f75bae | 114 | /** Send data to Ambient |
AmbientData | 3:a724fe60de46 | 115 | * @returns |
AmbientData | 3:a724fe60de46 | 116 | * true on success, |
AmbientData | 3:a724fe60de46 | 117 | * false on failure |
AmbientData | 0:7dca16f75bae | 118 | */ |
AmbientData | 0:7dca16f75bae | 119 | bool send(void); |
AmbientData | 0:7dca16f75bae | 120 | |
AmbientData | 3:a724fe60de46 | 121 | /** Send bulk data to Ambient |
AmbientData | 3:a724fe60de46 | 122 | * @param buf pointer to the data buffer |
AmbientData | 3:a724fe60de46 | 123 | * @returns |
AmbientData | 3:a724fe60de46 | 124 | * the number of written bytes on success (>=0) |
AmbientData | 3:a724fe60de46 | 125 | * -1 on failure |
AmbientData | 3:a724fe60de46 | 126 | */ |
AmbientData | 3:a724fe60de46 | 127 | int bulk_send(char * buf); |
AmbientData | 3:a724fe60de46 | 128 | |
AmbientData | 3:a724fe60de46 | 129 | /* Delete data stored in this channel |
AmbientData | 3:a724fe60de46 | 130 | * @param userKey userKey |
AmbientData | 3:a724fe60de46 | 131 | * @returns |
AmbientData | 3:a724fe60de46 | 132 | * true on success, |
AmbientData | 3:a724fe60de46 | 133 | * false on failure |
AmbientData | 3:a724fe60de46 | 134 | */ |
AmbientData | 3:a724fe60de46 | 135 | bool delete_data(const char * userKey); |
AmbientData | 3:a724fe60de46 | 136 | |
AmbientData | 0:7dca16f75bae | 137 | private: |
AmbientData | 0:7dca16f75bae | 138 | |
AmbientData | 0:7dca16f75bae | 139 | TCPSocketConnection * s; |
AmbientData | 0:7dca16f75bae | 140 | unsigned int channelId; |
AmbientData | 0:7dca16f75bae | 141 | char writeKey[AMBIENT_WRITEKEY_SIZE]; |
AmbientData | 0:7dca16f75bae | 142 | int dev; |
AmbientData | 0:7dca16f75bae | 143 | char host[18]; |
AmbientData | 0:7dca16f75bae | 144 | int port; |
AmbientData | 0:7dca16f75bae | 145 | |
AmbientData | 0:7dca16f75bae | 146 | struct { |
AmbientData | 0:7dca16f75bae | 147 | int set; |
AmbientData | 0:7dca16f75bae | 148 | char item[AMBIENT_DATA_SIZE]; |
AmbientData | 0:7dca16f75bae | 149 | } data[AMBIENT_NUM_PARAMS]; |
AmbientData | 0:7dca16f75bae | 150 | }; |
AmbientData | 0:7dca16f75bae | 151 | |
AmbientData | 3:a724fe60de46 | 152 | #endif // Ambient_h |