Mistake on this page? Email us
pt_api.h
Go to the documentation of this file.
1 /*
2  * ----------------------------------------------------------------------------
3  * Copyright 2018 ARM Ltd.
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ----------------------------------------------------------------------------
19  */
20 
21 #ifndef PT_API_VERSION
22 #define PT_API_VERSION 2
23 #endif
24 #if PT_API_VERSION != 2
25 #error "Including mixed versions of Protocol API"
26 #endif
27 
28 #ifndef PT_API_H_
29 #define PT_API_H_
30 
36 #include <stdbool.h>
37 
42 
177 typedef pt_status_t (*pt_resource_callback)(const connection_id_t connection_id,
178  const char *device_id,
179  const uint16_t object_id,
180  const uint16_t object_instance_id,
181  const uint16_t resource_id,
182  const uint8_t operation,
183  const uint8_t *value,
184  const uint32_t size,
185  void *userdata);
186 
192 typedef void (*pt_resource_value_free_callback)(void *value);
193 
206 typedef void (*pt_device_response_handler)(const connection_id_t connection_id, const char *device_id, void *userdata);
207 
224 pt_status_t pt_device_create_with_userdata(const connection_id_t connection_id,
225  const char *device_id,
226  const uint32_t lifetime,
227  const queuemode_t queuemode,
228  pt_userdata_t *userdata);
229 
242 pt_status_t pt_device_create(const connection_id_t connection_id,
243  const char *device_id,
244  const uint32_t lifetime,
245  const queuemode_t queuemode);
246 
262 pt_status_t pt_device_register(const connection_id_t connection_id,
263  const char *device_id,
264  pt_device_response_handler success_handler,
265  pt_device_response_handler failure_handler,
266  void *userdata);
267 
283 pt_status_t pt_device_unregister(const connection_id_t connection_id,
284  const char *device_id,
285  pt_device_response_handler success_handler,
286  pt_device_response_handler failure_handler,
287  void *userdata);
288 
304 pt_status_t pt_device_write_values(const connection_id_t connection_id,
305  const char *device_id,
306  pt_device_response_handler success_handler,
307  pt_device_response_handler failure_handler,
308  void *userdata);
309 
329 pt_status_t pt_device_set_resource_value(const connection_id_t connection_id,
330  const char *device_id,
331  const uint16_t object_id,
332  const uint16_t object_instance_id,
333  const uint16_t resource_id,
334  const uint8_t *value,
335  uint32_t value_len,
336  pt_resource_value_free_callback value_free_cb);
337 
346 bool pt_device_exists(const connection_id_t connection_id, const char *device_id);
347 
359 bool pt_device_resource_exists(const connection_id_t connection_id,
360  const char *device_id,
361  const uint16_t object_id,
362  const uint16_t object_instance_id,
363  const uint16_t resource_id);
364 
404 pt_status_t pt_device_add_resource(const connection_id_t connection_id,
405  const char *device_id,
406  const uint16_t object_id,
407  const uint16_t object_instance_id,
408  const uint16_t resource_id,
409  const Lwm2mResourceType type,
410  uint8_t *value,
411  uint32_t value_size,
412  pt_resource_value_free_callback value_free_cb);
413 
464 pt_status_t pt_device_add_resource_with_callback(const connection_id_t connection_id,
465  const char *device_id,
466  const uint16_t object_id,
467  const uint16_t object_instance_id,
468  const uint16_t resource_id,
469  const Lwm2mResourceType type,
470  const uint8_t operations,
471  uint8_t *value,
472  uint32_t value_size,
473  pt_resource_value_free_callback value_free_cb,
474  pt_resource_callback callback);
475 
489 pt_status_t pt_device_get_resource_value(connection_id_t connection_id,
490  const char *device_id,
491  const uint16_t object_id,
492  const uint16_t object_instance_id,
493  const uint16_t resource_id,
494  uint8_t **value_out,
495  uint32_t *value_len_out);
496 
508 int32_t pt_device_get_next_free_object_instance_id(connection_id_t connection_id,
509  const char *device_id,
510  uint16_t object_id);
511 
521 pt_userdata_t *pt_device_get_userdata(connection_id_t connection_id, const char *device_id);
522 
535 pt_userdata_t *pt_resource_get_userdata(connection_id_t connection_id,
536  const char *device_id,
537  const uint16_t object_id,
538  const uint16_t object_instance_id,
539  const uint16_t resource_id);
540 
552 pt_status_t pt_device_set_userdata(connection_id_t connection_id, const char *device_id, pt_userdata_t *userdata);
553 
569 pt_status_t pt_resource_set_userdata(connection_id_t connection_id,
570  const char *device_id,
571  const uint16_t object_id,
572  const uint16_t object_instance_id,
573  const uint16_t resource_id,
574  pt_userdata_t *userdata);
575 
581 #endif /* PT_API_H_ */
pt_status_t pt_device_add_resource(const connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, const Lwm2mResourceType type, uint8_t *value, uint32_t value_size, pt_resource_value_free_callback value_free_cb)
Adds a read-only resource to a device.
int32_t pt_device_get_next_free_object_instance_id(connection_id_t connection_id, const char *device_id, uint16_t object_id)
Get the id of first free object instance for given object.
Lwm2mResourceType
LwM2M resource type enumeration constants.
Definition: constants.h:48
pt_status_t pt_device_set_userdata(connection_id_t connection_id, const char *device_id, pt_userdata_t *userdata)
Set the set user data to the device. This may be useful if the client needs to associate some extra d...
pt_status_t pt_device_get_resource_value(connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, uint8_t **value_out, uint32_t *value_len_out)
Utility function to get the current value in a resource.
pt_status_t pt_device_write_values(const connection_id_t connection_id, const char *device_id, pt_device_response_handler success_handler, pt_device_response_handler failure_handler, void *userdata)
Writes changed values from the endpoint device to Edge Core.
pt_status_t pt_device_register(const connection_id_t connection_id, const char *device_id, pt_device_response_handler success_handler, pt_device_response_handler failure_handler, void *userdata)
Endpoint device registration function. Every endpoint device must be registered with the protocol tra...
pt_status_t pt_resource_set_userdata(connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, pt_userdata_t *userdata)
Set the set user data to the resource. This may be useful if the client needs to associate some extra...
pt_status_t pt_device_unregister(const connection_id_t connection_id, const char *device_id, pt_device_response_handler success_handler, pt_device_response_handler failure_handler, void *userdata)
Endpoint device unregistration function. If the device unregistration succeeds, the device instance d...
pt_status_t pt_device_create_with_userdata(const connection_id_t connection_id, const char *device_id, const uint32_t lifetime, const queuemode_t queuemode, pt_userdata_t *userdata)
Creates the device structure.
Contains the interface to manage multiple devices.
void(* pt_resource_value_free_callback)(void *value)
Callback function prototype for freeing the resource value.
Definition: pt_api.h:192
pt_status_t pt_device_create(const connection_id_t connection_id, const char *device_id, const uint32_t lifetime, const queuemode_t queuemode)
Creates the device structure.
Protocol translator API for client&#39;s data.
pt_userdata_t * pt_resource_get_userdata(connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id)
Retrieve the set user data in the resource. Client needs to provide the full path to the resource...
Contains common structures and definitions for the protocol translator client.
void(* pt_device_response_handler)(const connection_id_t connection_id, const char *device_id, void *userdata)
A function pointer type definition for callbacks given in the device API functions as an argument...
Definition: pt_api.h:206
pt_status_t pt_device_set_resource_value(const connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, const uint8_t *value, uint32_t value_len, pt_resource_value_free_callback value_free_cb)
Set a new value to resource in the device.
pt_status_t(* pt_resource_callback)(const connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, const uint8_t operation, const uint8_t *value, const uint32_t size, void *userdata)
Callback function prototype for the device resource specific action on OPERATION_WRITE or OPERATION_E...
Definition: pt_api.h:177
pt_status_t pt_device_add_resource_with_callback(const connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id, const Lwm2mResourceType type, const uint8_t operations, uint8_t *value, uint32_t value_size, pt_resource_value_free_callback value_free_cb, pt_resource_callback callback)
Adds a resource to a device with a callback.
bool pt_device_exists(const connection_id_t connection_id, const char *device_id)
Utility function to check if device already exists for the connection.
bool pt_device_resource_exists(const connection_id_t connection_id, const char *device_id, const uint16_t object_id, const uint16_t object_instance_id, const uint16_t resource_id)
Utility function to check if resource already exists for the connection and device.
pt_userdata_t * pt_device_get_userdata(connection_id_t connection_id, const char *device_id)
Retrieve the set user data in the device.
pt_status_t
Enumeration containing the possible return status codes for Protocol API functions.
Definition: pt_common_api.h:51
Contains fields for client user data.
Definition: pt_userdata_api.h:62
Contains the interface to create, connect, register, unregister and shut down the protocol translator...