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

Revision:
26:8067e3d463d3
Parent:
17:7268f365676b
Child:
27:b63f5a9cdefa
--- a/internal/wiconnect/Wiconnect.cpp	Tue Aug 26 16:53:06 2014 -0700
+++ b/internal/wiconnect/Wiconnect.cpp	Thu Oct 23 15:16:06 2014 -0700
@@ -229,13 +229,58 @@
 
 /*************************************************************************************************/
 WiconnectResult Wiconnect::getVersion(char *versionBuffer, int versionBufferSize, const Callback &completeCallback)
-{
+{
+    WiconnectResult result;
+
     if(versionBuffer != NULL && versionBufferSize == 0)
     {
         return WICONNECT_BAD_ARG;
-    }
-    return sendCommand(completeCallback, versionBuffer, versionBufferSize, CMD_GET_VERSION);
+    }
+
+    _CHECK_OTHER_COMMAND_EXECUTING();
+
+    if(versionBuffer == NULL)
+    {
+        result = sendCommand(completeCallback, CMD_GET_VERSION);
+    }
+    else
+    {
+        result = sendCommand(completeCallback, versionBuffer, versionBufferSize, CMD_GET_VERSION);
+    }
+
+    _CHECK_CLEANUP_COMMAND();
+
+    return result;
 }
+
+/*************************************************************************************************/
+WiconnectResult Wiconnect::updateFirmware(bool forced, const char *versionStr, const Callback &completeCallback)
+{
+    WiconnectResult result;
+    char cmdBuffer[WICONNECT_MAX_CMD_SIZE];
+
+    if(_WICONNECT_IS_IDLE())
+    {
+        strcpy(cmdBuffer, "ota ");
+        if(versionStr != NULL)
+        {
+            strcat(cmdBuffer, "-b wiconnect-");
+            strcat(cmdBuffer, versionStr);
+        }
+        else if(forced)
+        {
+            strcat(cmdBuffer, "-f");
+        }
+    }
+
+    _CHECK_OTHER_COMMAND_EXECUTING();
+
+    result = sendCommand(completeCallback, WICONNECT_FIRMWARE_UPDATE_TIMEOUT, cmdBuffer);
+
+    _CHECK_CLEANUP_COMMAND();
+
+    return result;
+}
 
 /*************************************************************************************************/
 const char* Wiconnect::getWiconnectResultStr(WiconnectResult wiconnectResult)