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

Committer:
AmbientData
Date:
Wed Jan 25 12:28:14 2017 +0000
Revision:
4:fcbd652bbb7a
Parent:
3:a724fe60de46
send()?????

Who changed what in which revision?

UserRevisionLine numberNew 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