Public Types | |
enum | FirmwareResource { Package, PackageUri, Update, State, UpdateSupportedObjects, UpdateResult, PackageName, PackageVersion } |
An enum defining all the resources associated with a Firmware Object in the LWM2M framework. | |
enum | UpdateState { Idle = 0, Downloading, Downloaded, Updating } |
An enum defining the state of the firmware update. | |
enum | ResultOfUpdate { Default = 0, SuccessfullyUpdated, NotEnoughSpace, OutOfMemory, ConnectionLost, CRCCheckFailure, UnsupportedPackageType, InvalidURI } |
An enum defining the result of the firmware update. | |
Public Types inherited from M2MBase | |
enum | BaseType { Object = 0x0, Resource = 0x1, ObjectInstance = 0x2, ResourceInstance = 0x3 } |
Enum to define the type of object. | |
enum | Observation { None = 0x0, R_Attribute = 0x01, OI_Attribute = 0x02, OIR_Attribute = 0x03, O_Attribute = 0x04, OR_Attribute = 0x05, OOI_Attribute = 0x06, OOIR_Attribute = 0x07 } |
Enum to define observation level. | |
enum | Mode { Static, Dynamic, Directory } |
Enum defining a resource type. | |
enum | DataType { STRING, INTEGER, FLOAT, BOOLEAN, OPAQUE, TIME, OBJLINK } |
Enum defining a resource data type. | |
enum | Operation { NOT_ALLOWED = 0x00, GET_ALLOWED = 0x01, PUT_ALLOWED = 0x02, GET_PUT_ALLOWED = 0x03, POST_ALLOWED = 0x04, GET_POST_ALLOWED = 0x05, PUT_POST_ALLOWED = 0x06, GET_PUT_POST_ALLOWED = 0x07, DELETE_ALLOWED = 0x08, GET_DELETE_ALLOWED = 0x09, PUT_DELETE_ALLOWED = 0x0A, GET_PUT_DELETE_ALLOWED = 0x0B, POST_DELETE_ALLOWED = 0x0C, GET_POST_DELETE_ALLOWED = 0x0D, PUT_POST_DELETE_ALLOWED = 0x0E, GET_PUT_POST_DELETE_ALLOWED = 0x0F } |
Enum defining an operation that can be supported by a given resource. | |
enum | MessageDeliveryStatus { MESSAGE_STATUS_INIT = 0, MESSAGE_STATUS_BUILD_ERROR, MESSAGE_STATUS_RESEND_QUEUE_FULL, MESSAGE_STATUS_SENT, MESSAGE_STATUS_DELIVERED, MESSAGE_STATUS_SEND_FAILED, MESSAGE_STATUS_SUBSCRIBED, MESSAGE_STATUS_UNSUBSCRIBED, MESSAGE_STATUS_REJECTED } |
Enum defining an status codes that can happen when sending confirmable message. | |
enum | MessageType { NOTIFICATION = 0, DELAYED_POST_RESPONSE, BLOCK_SUBSCRIBE, PING } |
enum | MaxPathSize { MAX_NAME_SIZE = 64, MAX_INSTANCE_SIZE = 5, MAX_PATH_SIZE = ((MAX_NAME_SIZE * 2) + (MAX_INSTANCE_SIZE * 2) + 3 + 1), MAX_PATH_SIZE_2 = ((MAX_NAME_SIZE * 2) + MAX_INSTANCE_SIZE + 2 + 1), MAX_PATH_SIZE_3 = (MAX_NAME_SIZE + (MAX_INSTANCE_SIZE * 2) + 2 + 1), MAX_PATH_SIZE_4 = (MAX_NAME_SIZE + MAX_INSTANCE_SIZE + 1 + 1) } |
typedef void(* | notification_delivery_status_cb) (const M2MBase &base, const NotificationDeliveryStatus status, void *client_args) |
typedef void(* | message_delivery_status_cb) (const M2MBase &base, const MessageDeliveryStatus status, const MessageType type, void *client_args) |
typedef struct M2MBase::lwm2m_parameters | lwm2m_parameters_s |
LwM2M parameters. | |
Public Member Functions | |
M2MResource * | create_resource (FirmwareResource resource, const String &value) m2m_deprecated |
Creates a new resource for a given resource enum. More... | |
M2MResource * | create_resource (FirmwareResource resource, int64_t value) m2m_deprecated |
Creates a new resource for a given resource enum. More... | |
bool | delete_resource (FirmwareResource resource) m2m_deprecated |
Deletes a resource with a given resource enum. Mandatory resources cannot be deleted. More... | |
bool | set_resource_value (FirmwareResource resource, const String &value) m2m_deprecated |
Sets a value of a given resource enum. More... | |
bool | set_resource_value (FirmwareResource resource, int64_t value) m2m_deprecated |
Sets a value of a given resource enum. More... | |
bool | set_resource_value (FirmwareResource resource, const uint8_t *value, const uint32_t length) m2m_deprecated |
Sets a value of a given resource enum. More... | |
String | resource_value_string (FirmwareResource resource) const m2m_deprecated |
Returns a value of a given resource enum, in string format. More... | |
int64_t | resource_value_int (FirmwareResource resource) const m2m_deprecated |
Returns a value of a given resource key name, in integer format. More... | |
uint32_t | resource_value_buffer (FirmwareResource resource, uint8_t *&data) const m2m_deprecated |
Populates the data buffer and returns the size of the buffer. More... | |
bool | is_resource_present (FirmwareResource resource) const m2m_deprecated |
Returns whether a resource instance with a given resource enum exists or not. More... | |
uint16_t | total_resource_count () const m2m_deprecated |
Returns the number of resources for a whole firmware object. More... | |
uint16_t | per_resource_count (FirmwareResource resource) const m2m_deprecated |
Returns the number of resources for a given resource enum. More... | |
bool | set_update_execute_callback (execute_callback callback) |
Set update resource execute callback function. This is called when update resource receives POST command. More... | |
bool | set_resource_value_update_callback (FirmwareResource resource, value_updated_callback callback) |
Set resource value update callback function. This is called when resource value is updated. More... | |
bool | set_resource_notification_sent_callback (FirmwareResource resource, notification_sent_callback_2 callback) m2m_deprecated |
Sets the callback function that is executed when this object receives response(Empty ACK) for notification message. More... | |
bool | set_resource_notification_sent_callback (FirmwareResource resource, notification_delivery_status_cb callback) m2m_deprecated |
Sets the callback function that is executed when notification message state changes. More... | |
bool | set_resource_notification_sent_callback (FirmwareResource resource, message_delivery_status_cb callback) |
Sets the callback function that is executed when notification message state changes. More... | |
bool | set_package_block_message_callback (incoming_block_message_callback callback) |
Set incoming_block_message_callback for the package resource. The callback will be called when a block of the package has been received. More... | |
Public Member Functions inherited from M2MObject | |
virtual | ~M2MObject () |
Destructor. | |
M2MObjectInstance * | create_object_instance (uint16_t instance_id=0) |
Creates a new object instance for a given mbed Client Interface object. With this, the client can respond to server's GET methods with the provided value. More... | |
M2MObjectInstance * | create_object_instance (const lwm2m_parameters_s *s) |
Creates a new object instance for a given mbed Client Interface object. With this, the client can respond to server's GET methods with the provided value. More... | |
bool | remove_object_instance (uint16_t instance_id=0) |
Removes the object instance resource with the given instance id. More... | |
M2MObjectInstance * | object_instance (uint16_t instance_id=0) const |
Returns the object instance with the the given instance ID. More... | |
const M2MObjectInstanceList & | instances () const |
Returns a list of object instances. More... | |
uint16_t | instance_count () const |
Returns the total number of object instances-. More... | |
virtual M2MObservationHandler * | observation_handler () const |
Returns the Observation Handler object. More... | |
virtual void | set_observation_handler (M2MObservationHandler *handler) |
Sets the observation handler. More... | |
virtual void | add_observation_level (M2MBase::Observation observation_level) |
Adds the observation level for the object. More... | |
virtual void | remove_observation_level (M2MBase::Observation observation_level) |
Removes the observation level from the object. More... | |
virtual sn_coap_hdr_s * | handle_get_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler=NULL) |
Handles GET request for the registered objects. More... | |
virtual sn_coap_hdr_s * | handle_put_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler, bool &execute_value_updated) |
Handles PUT request for the registered objects. More... | |
virtual sn_coap_hdr_s * | handle_post_request (nsdl_s *nsdl, sn_coap_hdr_s *received_coap_header, M2MObservationHandler *observation_handler, bool &execute_value_updated, sn_nsdl_addr_s *address=NULL) |
Handles GET request for the registered objects. More... | |
void | notification_update (uint16_t obj_instance_id) |
Public Member Functions inherited from M2MBase | |
virtual | ~M2MBase () |
Destructor. | |
void | set_operation (M2MBase::Operation operation) |
Sets the operation type for an object. More... | |
void | set_interface_description (const String &description) |
Sets the interface description of the object. More... | |
void | set_interface_description (const char *description) |
Sets the interface description of the object. More... | |
const char * | interface_description () const |
Returns the interface description of the object. More... | |
virtual void | set_resource_type (const String &resource_type) |
Sets the resource type of the object. More... | |
virtual void | set_resource_type (const char *resource_type) |
Sets the resource type of the object. More... | |
const char * | resource_type () const |
Returns the resource type of the object. More... | |
void | set_coap_content_type (const uint16_t content_type) |
Sets the CoAP content type of the object. More... | |
void | set_observable (bool observable) |
Sets the observable mode for the object. More... | |
void | set_auto_observable (bool auto_observable) |
Sets the object to be auto-observable. More... | |
void | set_under_observation (bool observed, M2MObservationHandler *handler) |
Sets the object under observation. More... | |
void | set_instance_id (const uint16_t instance_id) |
Sets the instance ID of the object. More... | |
void | set_max_age (const uint32_t max_age) |
Sets the max age for the resource value to be cached. More... | |
M2MBase::BaseType | base_type () const |
Returns the object type. More... | |
M2MBase::Operation | operation () const |
Returns the operation type of the object. More... | |
const char * | name () const |
Returns the object name. More... | |
int32_t | name_id () const |
Returns the object name in integer. More... | |
uint16_t | instance_id () const |
Returns the object's instance ID. More... | |
const char * | uri_path () const |
Returns the path of the object. More... | |
uint16_t | coap_content_type () const |
Returns the CoAP content type of the object. More... | |
bool | is_observable () const |
Returns the observation status of the object. More... | |
bool | is_auto_observable () const |
Returns the auto observation status of the object. More... | |
M2MBase::Observation | observation_level () const |
Returns the observation level of the object. More... | |
Mode | mode () const |
Returns the mode of the resource. More... | |
uint16_t | observation_number () const |
Returns the observation number. More... | |
uint32_t | max_age () const |
Returns the max age for the resource value to be cached. More... | |
void | send_notification_delivery_status (const M2MBase &object, const NotificationDeliveryStatus status) |
Executes the function that is set in "set_notification_delivery_status_cb". Note: the setter for this callback is marked as m2m_deprecated, but there is no point having it here, as then the code will always give warnings. This simply must be there until the set_notification_delivery_status_cb() is removed. | |
void | send_message_delivery_status (const M2MBase &object, const MessageDeliveryStatus status, const MessageType type) |
Executes the function that is set in "set_message_delivery_status_cb". | |
void | set_register_uri (bool register_uri) |
Sets whether this resource is published to server or not. More... | |
bool | register_uri () |
Returns whether this resource is published to server or not. More... | |
bool | is_under_observation () const |
Returns whether this resource is under observation or not. More... | |
bool | set_value_updated_function (value_updated_callback callback) |
Sets the function that is executed when this object receives a PUT or POST command. More... | |
bool | set_value_updated_function (value_updated_callback2 callback) |
Sets the function that is executed when this object receives a PUT or POST command. More... | |
bool | is_value_updated_function_set () const |
Returns whether a callback function is set or not. More... | |
void | execute_value_updated (const String &name) |
Calls the function that is set in the "set_value_updated_function". More... | |
size_t | resource_name_length () const |
Returns length of the object name. More... | |
sn_nsdl_dynamic_resource_parameters_s * | get_nsdl_resource () const |
Returns the resource information. More... | |
M2MBase::lwm2m_parameters_s * | get_lwm2m_parameters () const |
Returns the resource structure. More... | |
uint16_t | get_notification_msgid () const m2m_deprecated |
Returns the notification message id. More... | |
void | set_notification_msgid (uint16_t msgid) m2m_deprecated |
Sets the notification message id. This is used to map RESET and EMPTY ACK messages. More... | |
bool | set_notification_delivery_status_cb (notification_delivery_status_cb callback, void *client_args) m2m_deprecated |
Sets the function that is executed when notification message state changes. More... | |
bool | set_message_delivery_status_cb (message_delivery_status_cb callback, void *client_args) |
Sets the function that is executed when message state changes. Currently this is used to track notifications and delayed response delivery statuses. More... | |
Static Public Member Functions | |
static void | delete_instance () m2m_deprecated |
Deletes a M2MFirmware instance. | |
Static Public Member Functions inherited from M2MBase | |
static char * | create_path (const M2MObject &parent, const char *name) |
static char * | create_path (const M2MObject &parent, uint16_t object_instance) |
static char * | create_path (const M2MResource &parent, uint16_t resource_instance) |
static char * | create_path (const M2MResource &parent, const char *name) |
static char * | create_path (const M2MObjectInstance &parent, const char *name) |
Static Protected Attributes | |
static M2MFirmware * | _instance |
Friends | |
class | M2MInterfaceFactory |
class | Test_M2MFirmware |
class | Test_M2MInterfaceFactory |
Additional Inherited Members | |
Protected Member Functions inherited from M2MObject | |
M2MObject (const String &object_name, char *path, bool external_blockwise_store=false) | |
Constructor. More... | |
M2MObject & | operator= (const M2MObject &) |
M2MObject (const M2MObject &) | |
M2MObject (const M2MBase::lwm2m_parameters_s *static_res) | |
Constructor. More... | |
virtual M2MBase * | get_parent () const |
Returns the owner object. Can return NULL if the object has no parent. | |
Protected Member Functions inherited from M2MBase | |
M2MBase & | operator= (const M2MBase &) |
M2MBase (const M2MBase &) | |
M2MBase (const String &name, M2MBase::Mode mode, const String &resource_type, char *path, bool external_blockwise_store, bool multiple_instance, M2MBase::DataType type=M2MBase::OBJLINK) | |
Constructor. More... | |
M2MBase (const lwm2m_parameters_s *s) | |
virtual bool | observation_to_be_sent (const m2m::Vector< uint16_t > &changed_instance_ids, uint16_t obs_number, bool send_object=false) |
An observation callback to be sent to the server due to a change in the observed parameter. More... | |
void | set_base_type (M2MBase::BaseType type) |
Sets the base type for an object. More... | |
M2MReportHandler * | create_report_handler () |
Create Report Handler object. More... | |
M2MReportHandler * | report_handler () const |
Returns the Report Handler object. More... | |
void | free_resources () |
Delete the resource structures owned by this object. Note: this needs to be called separately from each subclass' destructor as this method uses a virtual method and the call needs to be done at same class which has the implementation of the pure virtual method. | |
NotificationDeliveryStatus | get_notification_delivery_status () const m2m_deprecated |
Returns notification send status. More... | |
void | clear_notification_delivery_status () m2m_deprecated |
Clears the notification send status to initial state. | |
void | get_observation_token (uint8_t *token, uint8_t &token_length) const |
Provides the observation token of the object. More... | |
void | set_observation_token (const uint8_t *token, const uint8_t length) |
Sets the observation token value. More... | |
virtual void | set_changed () |
The data has changed and it needs to be updated into Device Management. Current implementation maintains the changed state only in M2MEndpoint. If any of the changes in an object changes the M2M registration structure, the information is propagated to M2MEndpoint using this interface. | |
void | handle_observation (nsdl_s *nsdl, const sn_coap_hdr_s &received_coap_header, sn_coap_hdr_s &coap_response, M2MObservationHandler *observation_handler, sn_coap_msg_code_e &response_code) |
Handles subscription request. More... | |
void | start_observation (const sn_coap_hdr_s &received_coap_header, M2MObservationHandler *observation_handler) |
Start the observation. More... | |
Static Protected Member Functions inherited from M2MBase | |
static void * | memory_alloc (uint32_t size) |
Memory allocation required for libCoap. More... | |
static void | memory_free (void *ptr) |
Memory free functions required for libCoap. More... | |
static char * | alloc_string_copy (const char *source) |
Allocate and make a copy of given zero terminated string. This is functionally equivalent with strdup(). More... | |
static uint8_t * | alloc_string_copy (const uint8_t *source, uint32_t size) |
Allocate (size + 1) amount of memory, copy size bytes into it and add zero termination. More... | |
static uint8_t * | alloc_copy (const uint8_t *source, uint32_t size) |
Allocate (size) amount of memory, copy size bytes into it. More... | |
static bool | validate_string_length (const String &string, size_t min_length, size_t max_length) |
static bool | validate_string_length (const char *string, size_t min_length, size_t max_length) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE > &buffer, const char *s1, uint16_t i1, const char *s2, uint16_t i2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_2 > &buffer, const char *s1, uint16_t i1, const char *s2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_3 > &buffer, const char *s1, uint16_t i1, uint16_t i2) |
static bool | build_path (StringBuffer< MAX_PATH_SIZE_4 > &buffer, const char *s1, uint16_t i1) |
static char * | stringdup (const char *s) |
static bool | is_blockwise_needed (const nsdl_s *nsdl, uint32_t payload_len) |
Checks whether blockwise is needed to send resource value to server. More... | |
M2MResource* M2MFirmware::create_resource | ( | FirmwareResource | resource, |
const String & | value | ||
) |
Creates a new resource for a given resource enum.
resource | With this function, the following resources can be created: 'PackageUri', 'PackageName','PackageVersion'. |
value | The value to be set on the resource, in string format. |
M2MResource* M2MFirmware::create_resource | ( | FirmwareResource | resource, |
int64_t | value | ||
) |
Creates a new resource for a given resource enum.
resource | With this function, the following resources can be created: 'State','UpdateSupportedObjects','UpdateResult'. |
value | The value to be set on the resource, in integer format. |
bool M2MFirmware::delete_resource | ( | FirmwareResource | resource | ) |
Deletes a resource with a given resource enum. Mandatory resources cannot be deleted.
resource | The name of the resource to be deleted. |
bool M2MFirmware::is_resource_present | ( | FirmwareResource | resource | ) | const |
Returns whether a resource instance with a given resource enum exists or not.
resource | The resource enum. |
uint16_t M2MFirmware::per_resource_count | ( | FirmwareResource | resource | ) | const |
Returns the number of resources for a given resource enum.
resource | The resource enum. |
uint32_t M2MFirmware::resource_value_buffer | ( | FirmwareResource | resource, |
uint8_t *& | data | ||
) | const |
Populates the data buffer and returns the size of the buffer.
resource | With this function, the following resources can return a value: 'Package'. |
[OUT]data | The data buffer containing the value. Tha value of the pointer MUST be set as NULL before calling this function unless it has been allocated using malloc. In that case the data is freed when calling this function. The buffer is allocated using malloc when this function is called and MUST be passed to function free after use. |
int64_t M2MFirmware::resource_value_int | ( | FirmwareResource | resource | ) | const |
Returns a value of a given resource key name, in integer format.
resource | With this function, the following resources can return a value: 'State','UpdateSupportedObjects','UpdateResult'. |
String M2MFirmware::resource_value_string | ( | FirmwareResource | resource | ) | const |
Returns a value of a given resource enum, in string format.
resource | With this function, the following resources can return a value: 'PackageUri', 'PackageName','PackageVersion'. |
bool M2MFirmware::set_package_block_message_callback | ( | incoming_block_message_callback | callback | ) |
Set incoming_block_message_callback for the package resource. The callback will be called when a block of the package has been received.
callback | The function pointer to be called. |
bool M2MFirmware::set_resource_notification_sent_callback | ( | FirmwareResource | resource, |
notification_sent_callback_2 | callback | ||
) |
Sets the callback function that is executed when this object receives response(Empty ACK) for notification message.
resource | The resource enum. |
callback | The function pointer that is called. |
bool M2MFirmware::set_resource_notification_sent_callback | ( | FirmwareResource | resource, |
notification_delivery_status_cb | callback | ||
) |
Sets the callback function that is executed when notification message state changes.
resource | The resource enum. |
callback | The function pointer that is called. |
bool M2MFirmware::set_resource_notification_sent_callback | ( | FirmwareResource | resource, |
message_delivery_status_cb | callback | ||
) |
Sets the callback function that is executed when notification message state changes.
resource | The resource enum. |
callback | The function pointer that is called. |
bool M2MFirmware::set_resource_value | ( | FirmwareResource | resource, |
const String & | value | ||
) |
Sets a value of a given resource enum.
resource | With this function, a value can be set on the following resources: 'Package', 'PackageUri', 'PackageName','PackageVersion'. |
value | The value to be set on the resource, in string format. |
bool M2MFirmware::set_resource_value | ( | FirmwareResource | resource, |
int64_t | value | ||
) |
Sets a value of a given resource enum.
resource | With this function, a value can be set for the following resources: 'State','UpdateSupportedObjects','UpdateResult'. |
value | The value to be set on the resource, in integer format. |
bool M2MFirmware::set_resource_value | ( | FirmwareResource | resource, |
const uint8_t * | value, | ||
const uint32_t | length | ||
) |
Sets a value of a given resource enum.
resource | With this function, a value can be set for the following resources: 'Package'. |
value | The value to be set on the resource, in uint8_t format. |
size | The size of the buffer value to be set on the resource. |
bool M2MFirmware::set_resource_value_update_callback | ( | FirmwareResource | resource, |
value_updated_callback | callback | ||
) |
Set resource value update callback function. This is called when resource value is updated.
resource | The resource enum. |
callback | The function pointer that is called. |
bool M2MFirmware::set_update_execute_callback | ( | execute_callback | callback | ) |
Set update resource execute callback function. This is called when update resource receives POST command.
callback | The function pointer that is called. |
uint16_t M2MFirmware::total_resource_count | ( | ) | const |
Returns the number of resources for a whole firmware object.