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 
43 #ifdef MBED_EDGE_SUBDEVICE_FOTA
44 #include "pt-client-2/pt_firmware_download_api_internal.h"
45 #endif // MBED_EDGE_SUBDEVICE_FOTA
46 
182 typedef pt_status_t (*pt_resource_callback)(const connection_id_t connection_id,
183  const char *device_id,
184  const uint16_t object_id,
185  const uint16_t object_instance_id,
186  const uint16_t resource_id,
187  const uint8_t operation,
188  const uint8_t *value,
189  const uint32_t size,
190  void *userdata);
191 
197 typedef void (*pt_resource_value_free_callback)(void *value);
198 
211 typedef void (*pt_device_response_handler)(const connection_id_t connection_id, const char *device_id, void *userdata);
212 
229 pt_status_t pt_device_create_with_userdata(const connection_id_t connection_id,
230  const char *device_id,
231  const uint32_t lifetime,
232  const queuemode_t queuemode,
233  pt_userdata_t *userdata);
234 
235 #ifdef MBED_EDGE_SUBDEVICE_FOTA
236 
237 pt_status_t pt_device_add_manifest_callback(const connection_id_t connection_id,
238  manifest_class_and_vendor_handler cb);
239 
240 pt_status_t pt_download_asset(const connection_id_t connection_id,
241  const char *device_id,
242  const char *url,
243  const char *hash,
244  uint32_t size,
245  pt_download_cb success_handler,
246  pt_download_cb failure_handler,
247  void *userdata);
248 
249 #endif // MBED_EDGE_SUBDEVICE_FOTA
250 
269 pt_status_t pt_device_create_with_feature_flags(const connection_id_t connection_id,
270  const char *device_id,
271  const uint32_t lifetime,
272  const queuemode_t queuemode,
273  const uint32_t features,
274  pt_userdata_t *userdata);
275 
288 pt_status_t pt_device_create(const connection_id_t connection_id,
289  const char *device_id,
290  const uint32_t lifetime,
291  const queuemode_t queuemode);
292 
304 pt_status_t pt_device_get_feature_flags(const connection_id_t connection_id,
305  const char *device_id,
306  uint32_t *features);
307 
323 pt_status_t pt_device_register(const connection_id_t connection_id,
324  const char *device_id,
325  pt_device_response_handler success_handler,
326  pt_device_response_handler failure_handler,
327  void *userdata);
328 
344 pt_status_t pt_device_unregister(const connection_id_t connection_id,
345  const char *device_id,
346  pt_device_response_handler success_handler,
347  pt_device_response_handler failure_handler,
348  void *userdata);
349 
365 pt_status_t pt_device_write_values(const connection_id_t connection_id,
366  const char *device_id,
367  pt_device_response_handler success_handler,
368  pt_device_response_handler failure_handler,
369  void *userdata);
370 
390 pt_status_t pt_device_set_resource_value(const connection_id_t connection_id,
391  const char *device_id,
392  const uint16_t object_id,
393  const uint16_t object_instance_id,
394  const uint16_t resource_id,
395  const uint8_t *value,
396  uint32_t value_len,
397  pt_resource_value_free_callback value_free_cb);
398 
407 bool pt_device_exists(const connection_id_t connection_id, const char *device_id);
408 
420 bool pt_device_resource_exists(const connection_id_t connection_id,
421  const char *device_id,
422  const uint16_t object_id,
423  const uint16_t object_instance_id,
424  const uint16_t resource_id);
425 
466 pt_status_t pt_device_add_resource(const connection_id_t connection_id,
467  const char *device_id,
468  const uint16_t object_id,
469  const uint16_t object_instance_id,
470  const uint16_t resource_id,
471  const char *resource_name,
472  const Lwm2mResourceType type,
473  uint8_t *value,
474  uint32_t value_size,
475  pt_resource_value_free_callback value_free_cb);
476 
528 pt_status_t pt_device_add_resource_with_callback(const connection_id_t connection_id,
529  const char *device_id,
530  const uint16_t object_id,
531  const uint16_t object_instance_id,
532  const uint16_t resource_id,
533  const char *resource_name,
534  const Lwm2mResourceType type,
535  const uint8_t operations,
536  uint8_t *value,
537  uint32_t value_size,
538  pt_resource_value_free_callback value_free_cb,
539  pt_resource_callback callback);
540 
554 pt_status_t pt_device_get_resource_value(connection_id_t connection_id,
555  const char *device_id,
556  const uint16_t object_id,
557  const uint16_t object_instance_id,
558  const uint16_t resource_id,
559  uint8_t **value_out,
560  uint32_t *value_len_out);
561 
573 int32_t pt_device_get_next_free_object_instance_id(connection_id_t connection_id,
574  const char *device_id,
575  uint16_t object_id);
576 
586 pt_userdata_t *pt_device_get_userdata(connection_id_t connection_id, const char *device_id);
587 
600 pt_userdata_t *pt_resource_get_userdata(connection_id_t connection_id,
601  const char *device_id,
602  const uint16_t object_id,
603  const uint16_t object_instance_id,
604  const uint16_t resource_id);
605 
617 pt_status_t pt_device_set_userdata(connection_id_t connection_id, const char *device_id, pt_userdata_t *userdata);
618 
634 pt_status_t pt_resource_set_userdata(connection_id_t connection_id,
635  const char *device_id,
636  const uint16_t object_id,
637  const uint16_t object_instance_id,
638  const uint16_t resource_id,
639  pt_userdata_t *userdata);
640 
646 #endif /* PT_API_H_ */
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_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 char *resource_name, 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.
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.
pt_status_t pt_device_get_feature_flags(const connection_id_t connection_id, const char *device_id, uint32_t *features)
Retrieves the feature flags of a device.
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:197
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:211
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:182
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.
pt_status_t pt_device_create_with_feature_flags(const connection_id_t connection_id, const char *device_id, const uint32_t lifetime, const queuemode_t queuemode, const uint32_t features, pt_userdata_t *userdata)
Creates the device structure and enables additional features.
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
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 char *resource_name, 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.
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...