Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 | 
 Ambient
            Ambient