Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
api/GhmInterface.h@42:8ffb253b09e7, 2015-09-28 (annotated)
- Committer:
- aymangrais
- Date:
- Mon Sep 28 03:38:43 2015 +0000
- Revision:
- 42:8ffb253b09e7
- Parent:
- 34:2616445d0823
increase ota timeout to be 5 seconds (instead of 1.5 sec)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dan_ackme | 29:b6af04b77a56 | 1 | /** |
dan_ackme | 29:b6af04b77a56 | 2 | * ACKme WiConnect Host Library is licensed under the BSD licence: |
dan_ackme | 29:b6af04b77a56 | 3 | * |
dan_ackme | 29:b6af04b77a56 | 4 | * Copyright (c)2014 ACKme Networks. |
dan_ackme | 29:b6af04b77a56 | 5 | * All rights reserved. |
dan_ackme | 29:b6af04b77a56 | 6 | * |
dan_ackme | 29:b6af04b77a56 | 7 | * Redistribution and use in source and binary forms, with or without modification, |
dan_ackme | 29:b6af04b77a56 | 8 | * are permitted provided that the following conditions are met: |
dan_ackme | 29:b6af04b77a56 | 9 | * |
dan_ackme | 29:b6af04b77a56 | 10 | * 1. Redistributions of source code must retain the above copyright notice, |
dan_ackme | 29:b6af04b77a56 | 11 | * this list of conditions and the following disclaimer. |
dan_ackme | 29:b6af04b77a56 | 12 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
dan_ackme | 29:b6af04b77a56 | 13 | * this list of conditions and the following disclaimer in the documentation |
dan_ackme | 29:b6af04b77a56 | 14 | * and/or other materials provided with the distribution. |
dan_ackme | 29:b6af04b77a56 | 15 | * 3. The name of the author may not be used to endorse or promote products |
dan_ackme | 29:b6af04b77a56 | 16 | * derived from this software without specific prior written permission. |
dan_ackme | 29:b6af04b77a56 | 17 | * |
dan_ackme | 29:b6af04b77a56 | 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIED |
dan_ackme | 29:b6af04b77a56 | 19 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
dan_ackme | 29:b6af04b77a56 | 20 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT |
dan_ackme | 29:b6af04b77a56 | 21 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
dan_ackme | 29:b6af04b77a56 | 22 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT |
dan_ackme | 29:b6af04b77a56 | 23 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
dan_ackme | 29:b6af04b77a56 | 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
dan_ackme | 29:b6af04b77a56 | 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
dan_ackme | 29:b6af04b77a56 | 26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
dan_ackme | 29:b6af04b77a56 | 27 | * OF SUCH DAMAGE. |
dan_ackme | 29:b6af04b77a56 | 28 | */ |
dan_ackme | 29:b6af04b77a56 | 29 | #pragma once |
dan_ackme | 29:b6af04b77a56 | 30 | |
dan_ackme | 29:b6af04b77a56 | 31 | #include "Wiconnect.h" |
dan_ackme | 29:b6af04b77a56 | 32 | |
dan_ackme | 29:b6af04b77a56 | 33 | #include "api/types/WiconnectSocket.h" |
dan_ackme | 29:b6af04b77a56 | 34 | #include "api/types/GhmMessageList.h" |
dan_ackme | 29:b6af04b77a56 | 35 | |
dan_ackme | 29:b6af04b77a56 | 36 | /** |
dan_ackme | 29:b6af04b77a56 | 37 | * @namespace wiconnect |
dan_ackme | 29:b6af04b77a56 | 38 | */ |
dan_ackme | 29:b6af04b77a56 | 39 | namespace wiconnect { |
dan_ackme | 29:b6af04b77a56 | 40 | |
dan_ackme | 29:b6af04b77a56 | 41 | /** |
dan_ackme | 34:2616445d0823 | 42 | * @ingroup api_ghm_macro |
dan_ackme | 29:b6af04b77a56 | 43 | * @brief Helper macro for adding an integer value to a @ref GhmElementArray |
dan_ackme | 29:b6af04b77a56 | 44 | */ |
dan_ackme | 29:b6af04b77a56 | 45 | #define GHM_ADD_INT(array, name, integerVal) \ |
dan_ackme | 29:b6af04b77a56 | 46 | { \ |
dan_ackme | 29:b6af04b77a56 | 47 | array.elementName = name; \ |
dan_ackme | 29:b6af04b77a56 | 48 | array.type = GHM_VALUE_INT; \ |
dan_ackme | 29:b6af04b77a56 | 49 | array.u.intValue = (uint32_t)integerVal; \ |
dan_ackme | 29:b6af04b77a56 | 50 | } |
dan_ackme | 29:b6af04b77a56 | 51 | |
dan_ackme | 29:b6af04b77a56 | 52 | |
dan_ackme | 29:b6af04b77a56 | 53 | /** |
dan_ackme | 34:2616445d0823 | 54 | * @ingroup api_ghm_macro |
dan_ackme | 29:b6af04b77a56 | 55 | * @brief Helper macro for adding a string value to a @ref GhmElementArray |
dan_ackme | 29:b6af04b77a56 | 56 | */ |
dan_ackme | 29:b6af04b77a56 | 57 | #define GHM_ADD_STR(array, name, stringVal) \ |
dan_ackme | 29:b6af04b77a56 | 58 | { \ |
dan_ackme | 29:b6af04b77a56 | 59 | array.elementName = name; \ |
dan_ackme | 29:b6af04b77a56 | 60 | array.type = GHM_VALUE_STR; \ |
dan_ackme | 29:b6af04b77a56 | 61 | array.u.strValue = (const char*)stringVal; \ |
dan_ackme | 29:b6af04b77a56 | 62 | } |
dan_ackme | 29:b6af04b77a56 | 63 | |
dan_ackme | 29:b6af04b77a56 | 64 | |
dan_ackme | 29:b6af04b77a56 | 65 | |
dan_ackme | 29:b6af04b77a56 | 66 | |
dan_ackme | 29:b6af04b77a56 | 67 | /** |
dan_ackme | 29:b6af04b77a56 | 68 | * @ingroup api_ghm_types |
dan_ackme | 29:b6af04b77a56 | 69 | * |
dan_ackme | 29:b6af04b77a56 | 70 | * @brief The provides an interface for http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 71 | * |
dan_ackme | 29:b6af04b77a56 | 72 | * The goHACK.me API provided by WiConnect enables monitoring and control of your ACKme device. |
dan_ackme | 29:b6af04b77a56 | 73 | * You can set up a goHACK.me account, then using goHACK.me commands and goHACK.me variables, |
dan_ackme | 29:b6af04b77a56 | 74 | * you can activate your device and synchronize data, control and messages with the goHACK.me cloud service. |
dan_ackme | 29:b6af04b77a56 | 75 | * |
dan_ackme | 29:b6af04b77a56 | 76 | * More information here: http://wiconnect.ack.me/2.0/gohackme |
dan_ackme | 29:b6af04b77a56 | 77 | * |
dan_ackme | 29:b6af04b77a56 | 78 | * @note This class is an interface to the Wiconnect class. It should never be |
dan_ackme | 29:b6af04b77a56 | 79 | * independently instantiated or the parent of another class. |
dan_ackme | 29:b6af04b77a56 | 80 | */ |
dan_ackme | 29:b6af04b77a56 | 81 | class GhmInterface |
dan_ackme | 29:b6af04b77a56 | 82 | { |
dan_ackme | 29:b6af04b77a56 | 83 | public: |
dan_ackme | 29:b6af04b77a56 | 84 | |
dan_ackme | 29:b6af04b77a56 | 85 | /** |
dan_ackme | 29:b6af04b77a56 | 86 | * @ingroup api_ghm_activate |
dan_ackme | 29:b6af04b77a56 | 87 | * |
dan_ackme | 29:b6af04b77a56 | 88 | * @brief Download a device capabilities file to WiFi module's internal |
dan_ackme | 29:b6af04b77a56 | 89 | * file system. |
dan_ackme | 29:b6af04b77a56 | 90 | * |
dan_ackme | 29:b6af04b77a56 | 91 | * @param[in] capsNameOrCustomUrl Optional, specify the caps file name or URL to caps file |
dan_ackme | 29:b6af04b77a56 | 92 | * @param[in] version Optional, version to set downloaded caps file as |
dan_ackme | 29:b6af04b77a56 | 93 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 94 | */ |
dan_ackme | 29:b6af04b77a56 | 95 | WiconnectResult ghmDownloadCapabilities(const char *capsNameOrCustomUrl = NULL, uint32_t version = 0); |
dan_ackme | 29:b6af04b77a56 | 96 | |
dan_ackme | 29:b6af04b77a56 | 97 | /** |
dan_ackme | 29:b6af04b77a56 | 98 | * @ingroup api_ghm_activate |
dan_ackme | 29:b6af04b77a56 | 99 | * |
dan_ackme | 29:b6af04b77a56 | 100 | * @brief Activate WiFi module with http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 101 | * |
dan_ackme | 29:b6af04b77a56 | 102 | * @note You must first sign-up with http://goHACK.me before you can |
dan_ackme | 29:b6af04b77a56 | 103 | * activate the device. Go to http://goHACK.me to sign-up. |
dan_ackme | 29:b6af04b77a56 | 104 | * |
dan_ackme | 29:b6af04b77a56 | 105 | * @param[in] userName Your username |
dan_ackme | 29:b6af04b77a56 | 106 | * @param[in] password Your password |
dan_ackme | 29:b6af04b77a56 | 107 | * @param[in] capsFilename Optional, filename of existing capabilities file on module's internal file system. |
dan_ackme | 29:b6af04b77a56 | 108 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 109 | */ |
dan_ackme | 29:b6af04b77a56 | 110 | WiconnectResult ghmActivate(const char *userName, const char *password, const char *capsFilename = NULL); |
dan_ackme | 29:b6af04b77a56 | 111 | |
dan_ackme | 29:b6af04b77a56 | 112 | /** |
dan_ackme | 29:b6af04b77a56 | 113 | * @ingroup api_ghm_activate |
dan_ackme | 29:b6af04b77a56 | 114 | * |
dan_ackme | 29:b6af04b77a56 | 115 | * @brief Deactivate WiFi module with http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 116 | * |
dan_ackme | 29:b6af04b77a56 | 117 | * @note You must first sign-up with http://goHACK.me before you can |
dan_ackme | 29:b6af04b77a56 | 118 | * deactivate the device. Go to http://goHACK.me to sign-up. |
dan_ackme | 29:b6af04b77a56 | 119 | * |
dan_ackme | 29:b6af04b77a56 | 120 | * @param[in] userName Your username |
dan_ackme | 29:b6af04b77a56 | 121 | * @param[in] password Your password |
dan_ackme | 29:b6af04b77a56 | 122 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 123 | */ |
dan_ackme | 29:b6af04b77a56 | 124 | WiconnectResult ghmDeactivate(const char *userName, const char *password); |
dan_ackme | 29:b6af04b77a56 | 125 | |
dan_ackme | 29:b6af04b77a56 | 126 | /** |
dan_ackme | 29:b6af04b77a56 | 127 | * @ingroup api_ghm_activate |
dan_ackme | 29:b6af04b77a56 | 128 | * |
dan_ackme | 29:b6af04b77a56 | 129 | * @brief Return if WiFi module is activated with http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 130 | * |
dan_ackme | 29:b6af04b77a56 | 131 | * @param[out] statusPtr Pointer to hold activation status. |
dan_ackme | 29:b6af04b77a56 | 132 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 133 | */ |
dan_ackme | 29:b6af04b77a56 | 134 | WiconnectResult ghmIsActivated(bool *statusPtr); |
dan_ackme | 29:b6af04b77a56 | 135 | |
dan_ackme | 29:b6af04b77a56 | 136 | |
dan_ackme | 29:b6af04b77a56 | 137 | // ------------------------------------------------------------------------ |
dan_ackme | 29:b6af04b77a56 | 138 | |
dan_ackme | 29:b6af04b77a56 | 139 | |
dan_ackme | 29:b6af04b77a56 | 140 | /** |
dan_ackme | 29:b6af04b77a56 | 141 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 142 | * |
dan_ackme | 29:b6af04b77a56 | 143 | * @brief Read control data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 144 | * |
dan_ackme | 29:b6af04b77a56 | 145 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 146 | * |
dan_ackme | 29:b6af04b77a56 | 147 | * @param[in] controlName The name of the control in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 148 | * @param[in] valueStrPtr Pointer to pointer to hold control's string value |
dan_ackme | 29:b6af04b77a56 | 149 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 150 | */ |
dan_ackme | 29:b6af04b77a56 | 151 | WiconnectResult ghmRead(const char *controlName, const char **valueStrPtr); |
dan_ackme | 29:b6af04b77a56 | 152 | |
dan_ackme | 29:b6af04b77a56 | 153 | /** |
dan_ackme | 29:b6af04b77a56 | 154 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 155 | * |
dan_ackme | 29:b6af04b77a56 | 156 | * @brief Read control data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 157 | * |
dan_ackme | 29:b6af04b77a56 | 158 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 159 | * |
dan_ackme | 29:b6af04b77a56 | 160 | * @param[in] controlName The name of the control in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 161 | * @param[in] valueIntPtr Pointer hold control's integer value |
dan_ackme | 29:b6af04b77a56 | 162 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 163 | */ |
dan_ackme | 29:b6af04b77a56 | 164 | WiconnectResult ghmRead(const char *controlName, uint32_t *valueIntPtr); |
dan_ackme | 29:b6af04b77a56 | 165 | |
dan_ackme | 29:b6af04b77a56 | 166 | /** |
dan_ackme | 29:b6af04b77a56 | 167 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 168 | * |
dan_ackme | 29:b6af04b77a56 | 169 | * @brief Read control data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 170 | * |
dan_ackme | 29:b6af04b77a56 | 171 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 172 | * |
dan_ackme | 29:b6af04b77a56 | 173 | * @param[in] controlName The name of the control in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 174 | * @param[in] valueBuffer Buffer to hold control's string value |
dan_ackme | 29:b6af04b77a56 | 175 | * @param[in] valueBufferLen Length of valueBuffer |
dan_ackme | 29:b6af04b77a56 | 176 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 177 | */ |
dan_ackme | 29:b6af04b77a56 | 178 | WiconnectResult ghmRead(const char *controlName, char *valueBuffer, uint16_t valueBufferLen); |
dan_ackme | 29:b6af04b77a56 | 179 | |
dan_ackme | 29:b6af04b77a56 | 180 | /** |
dan_ackme | 29:b6af04b77a56 | 181 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 182 | * |
dan_ackme | 29:b6af04b77a56 | 183 | * @brief Write stream or control data to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 184 | * |
dan_ackme | 29:b6af04b77a56 | 185 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 186 | * |
dan_ackme | 29:b6af04b77a56 | 187 | * @param[in] elementName The name of the control or stream in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 188 | * @param[in] strValue String value of control or stream |
dan_ackme | 29:b6af04b77a56 | 189 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 190 | */ |
dan_ackme | 29:b6af04b77a56 | 191 | WiconnectResult ghmWrite(const char *elementName, const char *strValue); |
dan_ackme | 29:b6af04b77a56 | 192 | |
dan_ackme | 29:b6af04b77a56 | 193 | /** |
dan_ackme | 29:b6af04b77a56 | 194 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 195 | * |
dan_ackme | 29:b6af04b77a56 | 196 | * @brief Write stream or control data to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 197 | * |
dan_ackme | 29:b6af04b77a56 | 198 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 199 | * |
dan_ackme | 29:b6af04b77a56 | 200 | * @param[in] elementName The name of the control or stream in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 201 | * @param[in] uintValue Unsigned integer value of control or stream |
dan_ackme | 29:b6af04b77a56 | 202 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 203 | */ |
dan_ackme | 29:b6af04b77a56 | 204 | WiconnectResult ghmWrite(const char *elementName, uint32_t uintValue); |
dan_ackme | 29:b6af04b77a56 | 205 | |
dan_ackme | 29:b6af04b77a56 | 206 | /** |
dan_ackme | 29:b6af04b77a56 | 207 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 208 | * |
dan_ackme | 29:b6af04b77a56 | 209 | * @brief Write stream or control data to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 210 | * |
dan_ackme | 29:b6af04b77a56 | 211 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 212 | * |
dan_ackme | 29:b6af04b77a56 | 213 | * @param[in] elementName The name of the control or stream in the activated capabilities file. |
dan_ackme | 29:b6af04b77a56 | 214 | * @param[in] intValue signed integer value of control or stream |
dan_ackme | 29:b6af04b77a56 | 215 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 216 | */ |
dan_ackme | 29:b6af04b77a56 | 217 | WiconnectResult ghmWrite(const char *elementName, int32_t intValue); |
dan_ackme | 29:b6af04b77a56 | 218 | |
dan_ackme | 29:b6af04b77a56 | 219 | /** |
dan_ackme | 29:b6af04b77a56 | 220 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 221 | * |
dan_ackme | 29:b6af04b77a56 | 222 | * @brief Write stream or control data to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 223 | * |
dan_ackme | 29:b6af04b77a56 | 224 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 225 | * |
dan_ackme | 29:b6af04b77a56 | 226 | * @param[in] elementArray Array of stream and/or control values to send to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 227 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 228 | */ |
dan_ackme | 29:b6af04b77a56 | 229 | WiconnectResult ghmWrite(const GhmElementArray *elementArray); |
dan_ackme | 29:b6af04b77a56 | 230 | |
dan_ackme | 29:b6af04b77a56 | 231 | /** |
dan_ackme | 29:b6af04b77a56 | 232 | * @ingroup api_ghm_com |
dan_ackme | 29:b6af04b77a56 | 233 | * |
dan_ackme | 29:b6af04b77a56 | 234 | * @brief Synchronize WiFi module with http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 235 | * |
dan_ackme | 29:b6af04b77a56 | 236 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 237 | * |
dan_ackme | 29:b6af04b77a56 | 238 | * @param[in] type Type of synchronization. See @ref GhmSyncType |
dan_ackme | 29:b6af04b77a56 | 239 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 240 | */ |
dan_ackme | 29:b6af04b77a56 | 241 | WiconnectResult ghmSynchronize(GhmSyncType type = GHM_SYNC_ALL); |
dan_ackme | 29:b6af04b77a56 | 242 | |
dan_ackme | 29:b6af04b77a56 | 243 | |
dan_ackme | 29:b6af04b77a56 | 244 | // ------------------------------------------------------------------------ |
dan_ackme | 29:b6af04b77a56 | 245 | |
dan_ackme | 29:b6af04b77a56 | 246 | |
dan_ackme | 29:b6af04b77a56 | 247 | /** |
dan_ackme | 29:b6af04b77a56 | 248 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 249 | * |
dan_ackme | 29:b6af04b77a56 | 250 | * @brief POST message to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 251 | * |
dan_ackme | 29:b6af04b77a56 | 252 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 253 | * |
dan_ackme | 29:b6af04b77a56 | 254 | * @param[out] socket @ref WiconnectSocket used to send message data to http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 255 | * @param[in] jsonFormatted If true, the input message data should be JSON formatted, else the message data should be ASCII formatted. |
dan_ackme | 29:b6af04b77a56 | 256 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 257 | */ |
dan_ackme | 29:b6af04b77a56 | 258 | WiconnectResult ghmPostMessage(WiconnectSocket &socket, bool jsonFormatted=false); |
dan_ackme | 29:b6af04b77a56 | 259 | |
dan_ackme | 29:b6af04b77a56 | 260 | /** |
dan_ackme | 29:b6af04b77a56 | 261 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 262 | * |
dan_ackme | 29:b6af04b77a56 | 263 | * @brief GET message from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 264 | * |
dan_ackme | 29:b6af04b77a56 | 265 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 266 | * |
dan_ackme | 29:b6af04b77a56 | 267 | * @param[out] socket @ref WiconnectSocket used to receive message data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 268 | * @param[in] getType The additional message data to receive. See @ref GhmMessageGetType |
dan_ackme | 29:b6af04b77a56 | 269 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 270 | */ |
dan_ackme | 29:b6af04b77a56 | 271 | WiconnectResult ghmGetMessage(WiconnectSocket &socket, GhmMessageGetType getType = GHM_MSG_GET_DATA_ONLY); |
dan_ackme | 29:b6af04b77a56 | 272 | |
dan_ackme | 29:b6af04b77a56 | 273 | /** |
dan_ackme | 29:b6af04b77a56 | 274 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 275 | * |
dan_ackme | 29:b6af04b77a56 | 276 | * @brief GET message from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 277 | * |
dan_ackme | 29:b6af04b77a56 | 278 | * @note @ref ghmListMessages() must be called first before using this method. |
dan_ackme | 29:b6af04b77a56 | 279 | * |
dan_ackme | 29:b6af04b77a56 | 280 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 281 | * |
dan_ackme | 29:b6af04b77a56 | 282 | * @param[out] socket @ref WiconnectSocket used to receive message data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 283 | * @param[in] listIndex The index of the message returned from ghmListMessages() |
dan_ackme | 29:b6af04b77a56 | 284 | * @param[in] getType The additional message data to receive. See @ref GhmMessageGetType |
dan_ackme | 29:b6af04b77a56 | 285 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 286 | */ |
dan_ackme | 29:b6af04b77a56 | 287 | WiconnectResult ghmGetMessage(WiconnectSocket &socket, uint8_t listIndex, GhmMessageGetType getType = GHM_MSG_GET_DATA_ONLY); |
dan_ackme | 29:b6af04b77a56 | 288 | |
dan_ackme | 29:b6af04b77a56 | 289 | /** |
dan_ackme | 29:b6af04b77a56 | 290 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 291 | * |
dan_ackme | 29:b6af04b77a56 | 292 | * @brief GET message from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 293 | * |
dan_ackme | 29:b6af04b77a56 | 294 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 295 | * |
dan_ackme | 29:b6af04b77a56 | 296 | * @param[out] socket @ref WiconnectSocket used to receive message data from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 297 | * @param[in] msgId The http://goHACK.me message ID. |
dan_ackme | 29:b6af04b77a56 | 298 | * @param[in] getType The additional message data to receive. See @ref GhmMessageGetType |
dan_ackme | 29:b6af04b77a56 | 299 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 300 | */ |
dan_ackme | 29:b6af04b77a56 | 301 | WiconnectResult ghmGetMessage(WiconnectSocket &socket, const char *msgId, GhmMessageGetType getType = GHM_MSG_GET_DATA_ONLY); |
dan_ackme | 29:b6af04b77a56 | 302 | |
dan_ackme | 29:b6af04b77a56 | 303 | /** |
dan_ackme | 29:b6af04b77a56 | 304 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 305 | * |
dan_ackme | 29:b6af04b77a56 | 306 | * @brief Delete message from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 307 | * |
dan_ackme | 29:b6af04b77a56 | 308 | * @note @ref ghmListMessages() must be called first before using this method. |
dan_ackme | 29:b6af04b77a56 | 309 | * |
dan_ackme | 29:b6af04b77a56 | 310 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 311 | * |
dan_ackme | 29:b6af04b77a56 | 312 | * @param[in] listIndex The index of the message returned from ghmListMessages() |
dan_ackme | 29:b6af04b77a56 | 313 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 314 | */ |
dan_ackme | 29:b6af04b77a56 | 315 | WiconnectResult ghmDeleteMessage(uint8_t listIndex); |
dan_ackme | 29:b6af04b77a56 | 316 | |
dan_ackme | 29:b6af04b77a56 | 317 | /** |
dan_ackme | 29:b6af04b77a56 | 318 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 319 | * |
dan_ackme | 29:b6af04b77a56 | 320 | * @brief Delete message from http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 321 | * |
dan_ackme | 29:b6af04b77a56 | 322 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 323 | * |
dan_ackme | 29:b6af04b77a56 | 324 | * @param[in] msgId The http://goHACK.me message ID. |
dan_ackme | 29:b6af04b77a56 | 325 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 326 | */ |
dan_ackme | 29:b6af04b77a56 | 327 | WiconnectResult ghmDeleteMessage(const char *msgId); |
dan_ackme | 29:b6af04b77a56 | 328 | |
dan_ackme | 29:b6af04b77a56 | 329 | /** |
dan_ackme | 29:b6af04b77a56 | 330 | * @ingroup api_ghm_msg |
dan_ackme | 29:b6af04b77a56 | 331 | * |
dan_ackme | 29:b6af04b77a56 | 332 | * @brief List available messages for device on http://goHACK.me |
dan_ackme | 29:b6af04b77a56 | 333 | * |
dan_ackme | 29:b6af04b77a56 | 334 | * @note The WiFi module must first be activated. See @ref ghmActivate() |
dan_ackme | 29:b6af04b77a56 | 335 | * |
dan_ackme | 29:b6af04b77a56 | 336 | * @param[out] msgList @ref GhmMessageList to hold received messages. |
dan_ackme | 29:b6af04b77a56 | 337 | * @param[in] maxCount Optional, the maximum number of messages to receive. If 0, |
dan_ackme | 29:b6af04b77a56 | 338 | * receive all messages (max of 25). |
dan_ackme | 29:b6af04b77a56 | 339 | * @return Result of method. See @ref WiconnectResult |
dan_ackme | 29:b6af04b77a56 | 340 | */ |
dan_ackme | 29:b6af04b77a56 | 341 | WiconnectResult ghmListMessages(GhmMessageList &msgList, uint8_t maxCount = 0); |
dan_ackme | 29:b6af04b77a56 | 342 | |
dan_ackme | 29:b6af04b77a56 | 343 | |
dan_ackme | 29:b6af04b77a56 | 344 | protected: |
dan_ackme | 29:b6af04b77a56 | 345 | GhmInterface(Wiconnect *wiconnect); |
dan_ackme | 29:b6af04b77a56 | 346 | |
dan_ackme | 29:b6af04b77a56 | 347 | WiconnectResult ghmGetMessage(WiconnectSocket &socket, uint8_t listIndex, const char *msgId, GhmMessageGetType getType); |
dan_ackme | 29:b6af04b77a56 | 348 | WiconnectResult processMessageList(char *resultStr, GhmMessageList &resultList); |
dan_ackme | 29:b6af04b77a56 | 349 | |
dan_ackme | 29:b6af04b77a56 | 350 | private: |
dan_ackme | 29:b6af04b77a56 | 351 | Wiconnect *wiconnect; |
dan_ackme | 29:b6af04b77a56 | 352 | |
dan_ackme | 29:b6af04b77a56 | 353 | }; |
dan_ackme | 29:b6af04b77a56 | 354 | |
dan_ackme | 29:b6af04b77a56 | 355 | |
dan_ackme | 29:b6af04b77a56 | 356 | } |