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
GhmInterface.cpp@29:b6af04b77a56, 2014-10-27 (annotated)
- Committer:
- dan_ackme
- Date:
- Mon Oct 27 13:42:26 2014 -0700
- Revision:
- 29:b6af04b77a56
refactored library layout
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 | |
dan_ackme | 29:b6af04b77a56 | 30 | #include "Wiconnect.h" |
dan_ackme | 29:b6af04b77a56 | 31 | #include "internal/common.h" |
dan_ackme | 29:b6af04b77a56 | 32 | #include "api/StringUtil.h" |
dan_ackme | 29:b6af04b77a56 | 33 | |
dan_ackme | 29:b6af04b77a56 | 34 | |
dan_ackme | 29:b6af04b77a56 | 35 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 36 | GhmInterface::GhmInterface(Wiconnect *wiconnect_) |
dan_ackme | 29:b6af04b77a56 | 37 | { |
dan_ackme | 29:b6af04b77a56 | 38 | wiconnect = wiconnect_; |
dan_ackme | 29:b6af04b77a56 | 39 | } |
dan_ackme | 29:b6af04b77a56 | 40 | |
dan_ackme | 29:b6af04b77a56 | 41 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 42 | WiconnectResult GhmInterface::ghmDownloadCapabilities(const char *capsNameOrCustomUrl, uint32_t version) |
dan_ackme | 29:b6af04b77a56 | 43 | { |
dan_ackme | 29:b6af04b77a56 | 44 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 45 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 46 | |
dan_ackme | 29:b6af04b77a56 | 47 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 48 | { |
dan_ackme | 29:b6af04b77a56 | 49 | strcpy(cmdBuffer, "gca download "); |
dan_ackme | 29:b6af04b77a56 | 50 | if(capsNameOrCustomUrl != NULL) |
dan_ackme | 29:b6af04b77a56 | 51 | { |
dan_ackme | 29:b6af04b77a56 | 52 | strcat(cmdBuffer, capsNameOrCustomUrl); |
dan_ackme | 29:b6af04b77a56 | 53 | if(version > 0) |
dan_ackme | 29:b6af04b77a56 | 54 | { |
dan_ackme | 29:b6af04b77a56 | 55 | char temp[16]; |
dan_ackme | 29:b6af04b77a56 | 56 | char *ptr = cmdBuffer + strlen(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 57 | *ptr++ = ' '; |
dan_ackme | 29:b6af04b77a56 | 58 | sprintf(ptr, "%s", Wiconnect::fileVersionIntToStr(version, true, temp)); |
dan_ackme | 29:b6af04b77a56 | 59 | } |
dan_ackme | 29:b6af04b77a56 | 60 | } |
dan_ackme | 29:b6af04b77a56 | 61 | } |
dan_ackme | 29:b6af04b77a56 | 62 | |
dan_ackme | 29:b6af04b77a56 | 63 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 64 | |
dan_ackme | 29:b6af04b77a56 | 65 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 66 | |
dan_ackme | 29:b6af04b77a56 | 67 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 68 | |
dan_ackme | 29:b6af04b77a56 | 69 | return result; |
dan_ackme | 29:b6af04b77a56 | 70 | } |
dan_ackme | 29:b6af04b77a56 | 71 | |
dan_ackme | 29:b6af04b77a56 | 72 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 73 | WiconnectResult GhmInterface::ghmActivate(const char *userName, const char *password, const char *capsFilename) |
dan_ackme | 29:b6af04b77a56 | 74 | { |
dan_ackme | 29:b6af04b77a56 | 75 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 76 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 77 | |
dan_ackme | 29:b6af04b77a56 | 78 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 79 | { |
dan_ackme | 29:b6af04b77a56 | 80 | sprintf(cmdBuffer, "gac %s %s %s", userName, password, (capsFilename == NULL) ? "" : capsFilename); |
dan_ackme | 29:b6af04b77a56 | 81 | } |
dan_ackme | 29:b6af04b77a56 | 82 | |
dan_ackme | 29:b6af04b77a56 | 83 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 84 | |
dan_ackme | 29:b6af04b77a56 | 85 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 86 | |
dan_ackme | 29:b6af04b77a56 | 87 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 88 | |
dan_ackme | 29:b6af04b77a56 | 89 | return result; |
dan_ackme | 29:b6af04b77a56 | 90 | } |
dan_ackme | 29:b6af04b77a56 | 91 | |
dan_ackme | 29:b6af04b77a56 | 92 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 93 | WiconnectResult GhmInterface::ghmDeactivate(const char *userName, const char *password) |
dan_ackme | 29:b6af04b77a56 | 94 | { |
dan_ackme | 29:b6af04b77a56 | 95 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 96 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 97 | |
dan_ackme | 29:b6af04b77a56 | 98 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 99 | { |
dan_ackme | 29:b6af04b77a56 | 100 | sprintf(cmdBuffer, "gac %s %s", userName, password); |
dan_ackme | 29:b6af04b77a56 | 101 | } |
dan_ackme | 29:b6af04b77a56 | 102 | |
dan_ackme | 29:b6af04b77a56 | 103 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 104 | |
dan_ackme | 29:b6af04b77a56 | 105 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 106 | |
dan_ackme | 29:b6af04b77a56 | 107 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 108 | |
dan_ackme | 29:b6af04b77a56 | 109 | return result; |
dan_ackme | 29:b6af04b77a56 | 110 | } |
dan_ackme | 29:b6af04b77a56 | 111 | |
dan_ackme | 29:b6af04b77a56 | 112 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 113 | WiconnectResult GhmInterface::ghmIsActivated(bool *statusPtr) |
dan_ackme | 29:b6af04b77a56 | 114 | { |
dan_ackme | 29:b6af04b77a56 | 115 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 116 | uint32_t status; |
dan_ackme | 29:b6af04b77a56 | 117 | |
dan_ackme | 29:b6af04b77a56 | 118 | if(WICONNECT_SUCCEEDED(result, wiconnect->getSetting("ghm.status", &status))) |
dan_ackme | 29:b6af04b77a56 | 119 | { |
dan_ackme | 29:b6af04b77a56 | 120 | *statusPtr = (bool)status; |
dan_ackme | 29:b6af04b77a56 | 121 | } |
dan_ackme | 29:b6af04b77a56 | 122 | |
dan_ackme | 29:b6af04b77a56 | 123 | return result; |
dan_ackme | 29:b6af04b77a56 | 124 | } |
dan_ackme | 29:b6af04b77a56 | 125 | |
dan_ackme | 29:b6af04b77a56 | 126 | |
dan_ackme | 29:b6af04b77a56 | 127 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 128 | WiconnectResult GhmInterface::ghmRead(const char *controlName, const char **valueStrPtr) |
dan_ackme | 29:b6af04b77a56 | 129 | { |
dan_ackme | 29:b6af04b77a56 | 130 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 131 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 132 | |
dan_ackme | 29:b6af04b77a56 | 133 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 134 | { |
dan_ackme | 29:b6af04b77a56 | 135 | sprintf(cmdBuffer, "gre %s", controlName); |
dan_ackme | 29:b6af04b77a56 | 136 | } |
dan_ackme | 29:b6af04b77a56 | 137 | |
dan_ackme | 29:b6af04b77a56 | 138 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 139 | |
dan_ackme | 29:b6af04b77a56 | 140 | if(WICONNECT_SUCCEEDED(result, wiconnect->sendCommand(cmdBuffer))) |
dan_ackme | 29:b6af04b77a56 | 141 | { |
dan_ackme | 29:b6af04b77a56 | 142 | *valueStrPtr = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 143 | } |
dan_ackme | 29:b6af04b77a56 | 144 | |
dan_ackme | 29:b6af04b77a56 | 145 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 146 | |
dan_ackme | 29:b6af04b77a56 | 147 | return result; |
dan_ackme | 29:b6af04b77a56 | 148 | } |
dan_ackme | 29:b6af04b77a56 | 149 | |
dan_ackme | 29:b6af04b77a56 | 150 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 151 | WiconnectResult GhmInterface::ghmRead(const char *controlName, uint32_t *valueIntPtr) |
dan_ackme | 29:b6af04b77a56 | 152 | { |
dan_ackme | 29:b6af04b77a56 | 153 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 154 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 155 | |
dan_ackme | 29:b6af04b77a56 | 156 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 157 | { |
dan_ackme | 29:b6af04b77a56 | 158 | sprintf(cmdBuffer, "gre %s", controlName); |
dan_ackme | 29:b6af04b77a56 | 159 | } |
dan_ackme | 29:b6af04b77a56 | 160 | |
dan_ackme | 29:b6af04b77a56 | 161 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 162 | |
dan_ackme | 29:b6af04b77a56 | 163 | if(WICONNECT_SUCCEEDED(result, wiconnect->sendCommand(cmdBuffer))) |
dan_ackme | 29:b6af04b77a56 | 164 | { |
dan_ackme | 29:b6af04b77a56 | 165 | result = wiconnect->responseToUint32(valueIntPtr); |
dan_ackme | 29:b6af04b77a56 | 166 | } |
dan_ackme | 29:b6af04b77a56 | 167 | |
dan_ackme | 29:b6af04b77a56 | 168 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 169 | |
dan_ackme | 29:b6af04b77a56 | 170 | return result; |
dan_ackme | 29:b6af04b77a56 | 171 | } |
dan_ackme | 29:b6af04b77a56 | 172 | |
dan_ackme | 29:b6af04b77a56 | 173 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 174 | WiconnectResult GhmInterface::ghmRead(const char *controlName, char *valueBuffer, uint16_t valueBufferLen) |
dan_ackme | 29:b6af04b77a56 | 175 | { |
dan_ackme | 29:b6af04b77a56 | 176 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 177 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 178 | |
dan_ackme | 29:b6af04b77a56 | 179 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 180 | { |
dan_ackme | 29:b6af04b77a56 | 181 | sprintf(cmdBuffer, "gre %s", controlName); |
dan_ackme | 29:b6af04b77a56 | 182 | } |
dan_ackme | 29:b6af04b77a56 | 183 | |
dan_ackme | 29:b6af04b77a56 | 184 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 185 | |
dan_ackme | 29:b6af04b77a56 | 186 | result = wiconnect->sendCommand(valueBuffer, valueBufferLen, cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 187 | |
dan_ackme | 29:b6af04b77a56 | 188 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 189 | |
dan_ackme | 29:b6af04b77a56 | 190 | return result; |
dan_ackme | 29:b6af04b77a56 | 191 | } |
dan_ackme | 29:b6af04b77a56 | 192 | |
dan_ackme | 29:b6af04b77a56 | 193 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 194 | WiconnectResult GhmInterface::ghmWrite(const char *elementName, const char *strValue) |
dan_ackme | 29:b6af04b77a56 | 195 | { |
dan_ackme | 29:b6af04b77a56 | 196 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 197 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 198 | |
dan_ackme | 29:b6af04b77a56 | 199 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 200 | { |
dan_ackme | 29:b6af04b77a56 | 201 | sprintf(cmdBuffer, "gwr %s %s", elementName, strValue); |
dan_ackme | 29:b6af04b77a56 | 202 | } |
dan_ackme | 29:b6af04b77a56 | 203 | |
dan_ackme | 29:b6af04b77a56 | 204 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 205 | |
dan_ackme | 29:b6af04b77a56 | 206 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 207 | |
dan_ackme | 29:b6af04b77a56 | 208 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 209 | |
dan_ackme | 29:b6af04b77a56 | 210 | return result; |
dan_ackme | 29:b6af04b77a56 | 211 | } |
dan_ackme | 29:b6af04b77a56 | 212 | |
dan_ackme | 29:b6af04b77a56 | 213 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 214 | WiconnectResult GhmInterface::ghmWrite(const char *elementName, uint32_t uintValue) |
dan_ackme | 29:b6af04b77a56 | 215 | { |
dan_ackme | 29:b6af04b77a56 | 216 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 217 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 218 | |
dan_ackme | 29:b6af04b77a56 | 219 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 220 | { |
dan_ackme | 29:b6af04b77a56 | 221 | sprintf(cmdBuffer, "gwr %s %lu", elementName, uintValue); |
dan_ackme | 29:b6af04b77a56 | 222 | } |
dan_ackme | 29:b6af04b77a56 | 223 | |
dan_ackme | 29:b6af04b77a56 | 224 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 225 | |
dan_ackme | 29:b6af04b77a56 | 226 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 227 | |
dan_ackme | 29:b6af04b77a56 | 228 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 229 | |
dan_ackme | 29:b6af04b77a56 | 230 | return result; |
dan_ackme | 29:b6af04b77a56 | 231 | } |
dan_ackme | 29:b6af04b77a56 | 232 | |
dan_ackme | 29:b6af04b77a56 | 233 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 234 | WiconnectResult GhmInterface::ghmWrite(const char *elementName, int32_t intValue) |
dan_ackme | 29:b6af04b77a56 | 235 | { |
dan_ackme | 29:b6af04b77a56 | 236 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 237 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 238 | |
dan_ackme | 29:b6af04b77a56 | 239 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 240 | { |
dan_ackme | 29:b6af04b77a56 | 241 | sprintf(cmdBuffer, "gwr %s %ld", elementName, intValue); |
dan_ackme | 29:b6af04b77a56 | 242 | } |
dan_ackme | 29:b6af04b77a56 | 243 | |
dan_ackme | 29:b6af04b77a56 | 244 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 245 | |
dan_ackme | 29:b6af04b77a56 | 246 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 247 | |
dan_ackme | 29:b6af04b77a56 | 248 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 249 | |
dan_ackme | 29:b6af04b77a56 | 250 | return result; |
dan_ackme | 29:b6af04b77a56 | 251 | } |
dan_ackme | 29:b6af04b77a56 | 252 | |
dan_ackme | 29:b6af04b77a56 | 253 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 254 | WiconnectResult GhmInterface::ghmWrite(const GhmElementArray *elementArray) |
dan_ackme | 29:b6af04b77a56 | 255 | { |
dan_ackme | 29:b6af04b77a56 | 256 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 257 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 258 | |
dan_ackme | 29:b6af04b77a56 | 259 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 260 | { |
dan_ackme | 29:b6af04b77a56 | 261 | char *ptr = &cmdBuffer[4]; |
dan_ackme | 29:b6af04b77a56 | 262 | sprintf(cmdBuffer, "gwr "); |
dan_ackme | 29:b6af04b77a56 | 263 | |
dan_ackme | 29:b6af04b77a56 | 264 | const GhmElement *elEnd = &elementArray->elements[elementArray->count]; |
dan_ackme | 29:b6af04b77a56 | 265 | for(const GhmElement *el = &elementArray->elements[0]; el < elEnd; ++el) |
dan_ackme | 29:b6af04b77a56 | 266 | { |
dan_ackme | 29:b6af04b77a56 | 267 | if(el-> type == GHM_VALUE_INT) |
dan_ackme | 29:b6af04b77a56 | 268 | { |
dan_ackme | 29:b6af04b77a56 | 269 | ptr += sprintf(ptr, "%s,%lu|", el->elementName, el->u.intValue); |
dan_ackme | 29:b6af04b77a56 | 270 | } |
dan_ackme | 29:b6af04b77a56 | 271 | else |
dan_ackme | 29:b6af04b77a56 | 272 | { |
dan_ackme | 29:b6af04b77a56 | 273 | ptr += sprintf(ptr, "%s,%s|", el->elementName, el->u.strValue); |
dan_ackme | 29:b6af04b77a56 | 274 | } |
dan_ackme | 29:b6af04b77a56 | 275 | } |
dan_ackme | 29:b6af04b77a56 | 276 | *(ptr-1) = 0; |
dan_ackme | 29:b6af04b77a56 | 277 | } |
dan_ackme | 29:b6af04b77a56 | 278 | |
dan_ackme | 29:b6af04b77a56 | 279 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 280 | |
dan_ackme | 29:b6af04b77a56 | 281 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 282 | |
dan_ackme | 29:b6af04b77a56 | 283 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 284 | |
dan_ackme | 29:b6af04b77a56 | 285 | return result; |
dan_ackme | 29:b6af04b77a56 | 286 | } |
dan_ackme | 29:b6af04b77a56 | 287 | |
dan_ackme | 29:b6af04b77a56 | 288 | /*************************************************************************************************/ |
dan_ackme | 29:b6af04b77a56 | 289 | WiconnectResult GhmInterface::ghmSynchronize(GhmSyncType type) |
dan_ackme | 29:b6af04b77a56 | 290 | { |
dan_ackme | 29:b6af04b77a56 | 291 | WiconnectResult result; |
dan_ackme | 29:b6af04b77a56 | 292 | char *cmdBuffer = wiconnect->internalBuffer; |
dan_ackme | 29:b6af04b77a56 | 293 | |
dan_ackme | 29:b6af04b77a56 | 294 | if(WICONNECT_IS_IDLE()) |
dan_ackme | 29:b6af04b77a56 | 295 | { |
dan_ackme | 29:b6af04b77a56 | 296 | sprintf(cmdBuffer, "gsy %s", (type == GHM_SYNC_PUSH_ONLY) ? "push" : |
dan_ackme | 29:b6af04b77a56 | 297 | (type == GHM_SYNC_PULL_ONLY) ? "pull" : ""); |
dan_ackme | 29:b6af04b77a56 | 298 | } |
dan_ackme | 29:b6af04b77a56 | 299 | |
dan_ackme | 29:b6af04b77a56 | 300 | CHECK_OTHER_COMMAND_EXECUTING(); |
dan_ackme | 29:b6af04b77a56 | 301 | |
dan_ackme | 29:b6af04b77a56 | 302 | result = wiconnect->sendCommand(cmdBuffer); |
dan_ackme | 29:b6af04b77a56 | 303 | |
dan_ackme | 29:b6af04b77a56 | 304 | CHECK_CLEANUP_COMMAND(); |
dan_ackme | 29:b6af04b77a56 | 305 | |
dan_ackme | 29:b6af04b77a56 | 306 | return result; |
dan_ackme | 29:b6af04b77a56 | 307 | } |