2017-03-17 56 views
1

如何在mbed客戶端連接到設備服務器時刪除對象及其實例?使用mbed-client上的mbed-client刪除LWM2M對象時,應用程序崩潰

目前我有一個類,在構造函數中創建一個對象,我註冊它與mbed客戶端。我也想在調用析構函數時刪除這個對象。我想以下幾點:

在構造函數中:

object = M2MInterfaceFactory::create_object(name); 
instance = object->create_object_instance(); 

在析構函數:

object->remove_object_instance(instance->instance_id()); 
// delete object; 

上面的代碼工作,但該對象永遠不會從內存中刪除。

如果我取消註釋行來調用對象的析構函數,那麼我的應用程序崩潰。我用mbed-trace來查看是否有任何錯誤消息,但找不到任何東西。 Here是從調用到析構函數的日誌輸出,直到應用程序崩潰。

我正在使用mbed-os 5.4.1的Nucleo-F401RE。

+0

在刪除資源之前,您是否先註銷(使用mbed客戶端)? –

+0

不,客戶端仍在註冊。我的意圖是在客戶端連接時動態地創建和刪除對象。 – araad

+0

我敢肯定,根據OMA LwM2M規範,這是不允許的。 –

回答

0

根據我的觀察,您必須先取消註冊,然後刪除界面/資源。

但是,我已經看到,由於某種原因,mbed客戶端界面在連續銷燬後不能創建超過6次;第七個客戶端無法連接到服務器並返回'M2MIvaildParametersError'。如果有人能對此發表評論,我將不勝感激。

相關問題