: Resource(uri, rt, itf)
{
m_currentversion = cur_ver;
- update_state == 3 ? m_state = 0 : m_state = update_state;
+ m_state = update_state;
m_result = 0;
m_packageuri = url;
m_newversion = new_ver;
//Updating
m_state = 3;
m_representation.setValue<int>("state", m_update);
+ m_representation.setValue<int>("result", 0);
propagate();
snprintf(szState, sizeof(szState), "%d", m_state);
_set_device_info("firmware_update_state", szState);
-
- //After Upgrade, state = Idle
- m_state = 0;
- m_representation.setValue<int>("state", m_state);
- m_representation.setValue<int>("result", 1);
-
- m_newversion = m_representation.getValue<string>("newversion");
- m_currentversion = m_representation.getValue<string>("currentversion");
-
- UA_LOG("*** Update completed from %s to %s ***", m_currentversion.c_str(), m_newversion.c_str());
-
- m_representation.setValue<string>("currentversion", m_newversion);
- m_representation.setValue<string>("newversion", "");
- m_representation.setValue<string>("packageuri", "");
- m_currentversion = m_newversion;
- m_newversion ="";
- m_packageuri ="";
- propagate();
-
- snprintf(szState, sizeof(szState), "%d", m_state);
- _set_device_info("firmware_update_state", szState);
-
- _set_device_info("firmware_ver", m_currentversion.c_str());
+ _set_device_info("firmware_ver", m_newversion.c_str());
_exec_update();
return NULL;
}
+ void checkFirmwareUpgraded()
+ {
+ if (m_state == 3) {
+ UA_LOG("***Firmware Upgrade Done***");
+
+ m_state = 0;
+ m_representation.setValue<int>("result", 1);
+ m_representation.setValue<int>("state", m_state);
+
+ propagate();
+
+ snprintf(szState, sizeof(szState), "%d", m_state);
+ _set_device_info("firmware_update_state", szState);
+ _set_device_info("firmware_ver", m_currentversion.c_str());
+ }
+ }
+
void setFirmwareRepresentation(OCRepresentation &rep)
{
UA_LOG("");
g_callbackLock.wait(lock);
+ firmware.checkFirmwareUpgraded();
+
OCStackResult ret = OC_STACK_OK;
ret = OC::CAManager::setNetworkMonitorHandler((OC::CAManager::AdapterChangedCallback)NSProviderAdapterStateListener,
(OC::CAManager::ConnectionChangedCallback)NSProviderConnectionStateListener);