2017-03-17 7 views
1

mbed 클라이언트가 장치 서버에 연결된 동안 객체와 해당 인스턴스를 삭제하려면 어떻게해야합니까?mbed-os에서 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 Client를 등록 취소하셨습니까? –

+0

아니요, 클라이언트가 아직 등록되어 있습니다. 나의 의도는 클라이언트가 여전히 연결되어있는 동안 동적으로 객체를 생성하고 삭제하는 것이다. – araad

+0

OMA LwM2M 사양에 따라 허용되지 않았 음을 확신합니다. –

답변

0

필자의 관찰에 따르면 먼저 등록을 취소하고 인터페이스/리소스를 삭제해야합니다.

그러나 mbed 클라이언트 인터페이스가 연속적인 파괴 이후 6 회 이상 생성 될 수 없다는 것을 알았습니다. 7 번째 클라이언트가 서버에 연결할 수없고 'M2MIvaildParametersError'를 반환합니다. 누군가가 이것에 대해 논평 할 수 있다면 고맙겠습니다.