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
static SocketAddress sa;
40
42
41
43
EventQueue queue (32 * EVENTS_EVENT_SIZE);
@@ -99,6 +101,14 @@ void client_unregistered(void)
99
101
cloud_client_running = false ;
100
102
}
101
103
104
+ void factory_reset (void *)
105
+ {
106
+ printf (" POST factory reset executed\n " );
107
+ m2m_factory_reset_res->send_delayed_post_response ();
108
+
109
+ kcm_factory_reset ();
110
+ }
111
+
102
112
void client_error (int err)
103
113
{
104
114
printf (" client_error(%d) -> %s\n " , err, cloud_client->error_description ());
@@ -207,6 +217,12 @@ int main(void)
207
217
return -1 ;
208
218
}
209
219
220
+ // optional Device resource for running factory reset for the device. Path of this resource will be: 3/0/6.
221
+ m2m_factory_reset_res = M2MInterfaceFactory::create_device ()->create_resource (M2MDevice::FactoryReset);
222
+ if (m2m_factory_reset_res) {
223
+ m2m_factory_reset_res->set_execute_function (factory_reset);
224
+ }
225
+
210
226
printf (" Register Pelion Device Management Client\n\n " );
211
227
212
228
#ifdef MBED_CLOUD_CLIENT_SUPPORT_UPDATE
0 commit comments