21
21
#include " mbed-cloud-client/MbedCloudClient.h" // Required for new MbedCloudClient()
22
22
#include " factory_configurator_client.h" // Required for fcc_* functions and FCC_* defines
23
23
#include " m2mresource.h" // Required for M2MResource
24
+ #include " key_config_manager.h" // Required for kcm_factory_reset
24
25
25
26
#include " mbed-trace/mbed_trace.h" // Required for mbed_trace_*
26
27
@@ -36,6 +37,7 @@ static M2MResource* m2m_get_res;
36
37
static M2MResource* m2m_put_res;
37
38
static M2MResource* m2m_post_res;
38
39
static M2MResource* m2m_deregister_res;
40
+ static M2MResource* m2m_factory_reset_res;
39
41
40
42
EventQueue queue (32 * EVENTS_EVENT_SIZE);
41
43
Thread t;
@@ -98,6 +100,14 @@ void client_unregistered(void)
98
100
cloud_client_running = false ;
99
101
}
100
102
103
+ void factory_reset (void *)
104
+ {
105
+ printf (" POST factory reset executed\n " );
106
+ m2m_factory_reset_res->send_delayed_post_response ();
107
+
108
+ kcm_factory_reset ();
109
+ }
110
+
101
111
void client_error (int err)
102
112
{
103
113
printf (" client_error(%d) -> %s\n " , err, cloud_client->error_description ());
@@ -202,6 +212,12 @@ int main(void)
202
212
return -1 ;
203
213
}
204
214
215
+ // optional Device resource for running factory reset for the device. Path of this resource will be: 3/0/6.
216
+ m2m_factory_reset_res = M2MInterfaceFactory::create_device ()->create_resource (M2MDevice::FactoryReset);
217
+ if (m2m_factory_reset_res) {
218
+ m2m_factory_reset_res->set_execute_function (factory_reset);
219
+ }
220
+
205
221
printf (" Register Pelion Device Management Client\n\n " );
206
222
207
223
#ifdef MBED_CLOUD_CLIENT_SUPPORT_UPDATE
0 commit comments