Astarte device API for Zephyr 0.7.2
Astarte device SDK for Zephyr RTOS
Loading...
Searching...
No Matches
Device management

Functions for device management. More...

Data Structures

struct  astarte_device_connection_event_t
 Context for a single connection event. More...
 
struct  astarte_device_disconnection_event_t
 Context for a single disconnection event. More...
 
struct  astarte_device_data_event_t
 Common context for all data events. More...
 
struct  astarte_device_datastream_individual_event_t
 Context for a single datastream individual event. More...
 
struct  astarte_device_datastream_object_event_t
 Context for a single datastream object event. More...
 
struct  astarte_device_property_set_event_t
 Context for a single property set event. More...
 
struct  astarte_device_config_t
 Configuration struct for an Astarte device. More...
 

Typedefs

typedef struct astarte_device * astarte_device_handle_t
 Handle for an instance of an Astarte device.
 
typedef void(* astarte_device_connection_cbk_t) (astarte_device_connection_event_t event)
 Function pointer for connection events.
 
typedef void(* astarte_device_disconnection_cbk_t) (astarte_device_disconnection_event_t event)
 Function pointer for disconnection events.
 
typedef void(* astarte_device_datastream_individual_cbk_t) (astarte_device_datastream_individual_event_t event)
 Function pointer for datastream individual events.
 
typedef void(* astarte_device_datastream_object_cbk_t) (astarte_device_datastream_object_event_t event)
 Function pointer for datastream object events.
 
typedef void(* astarte_device_property_set_cbk_t) (astarte_device_property_set_event_t event)
 Function pointer for property set events.
 
typedef void(* astarte_device_property_unset_cbk_t) (astarte_device_data_event_t event)
 Function pointer for property unset events.
 

Functions

astarte_result_t astarte_device_new (astarte_device_config_t *cfg, astarte_device_handle_t *device)
 Allocate a new instance of an Astarte device.
 
astarte_result_t astarte_device_destroy (astarte_device_handle_t device)
 Destroy the Astarte device instance.
 
astarte_result_t astarte_device_add_interface (astarte_device_handle_t device, const astarte_interface_t *interface)
 add an interface to the device.
 
astarte_result_t astarte_device_connect (astarte_device_handle_t device)
 Connect a device to Astarte.
 
astarte_result_t astarte_device_disconnect (astarte_device_handle_t device, k_timeout_t timeout)
 Disconnect the Astarte device instance.
 
astarte_result_t astarte_device_force_disconnect (astarte_device_handle_t device)
 Force a disconnection for the Astarte device instance.
 
astarte_result_t astarte_device_poll (astarte_device_handle_t device)
 Poll data from Astarte.
 
astarte_result_t astarte_device_stream_individual (astarte_device_handle_t device, const char *interface_name, const char *path, astarte_individual_t individual, const int64_t *timestamp)
 Send an individual value through the device connection.
 
astarte_result_t astarte_device_stream_aggregated (astarte_device_handle_t device, const char *interface_name, const char *path, astarte_object_entry_t *entries, size_t entries_len, const int64_t *timestamp)
 Send an aggregated object through the device connection.
 
astarte_result_t astarte_device_set_property (astarte_device_handle_t device, const char *interface_name, const char *path, astarte_individual_t individual)
 Set a device property to the provided individual value.
 
astarte_result_t astarte_device_unset_property (astarte_device_handle_t device, const char *interface_name, const char *path)
 Unset a device property.
 

Detailed Description

Functions for device management.

Typedef Documentation

◆ astarte_device_connection_cbk_t

typedef void(* astarte_device_connection_cbk_t) (astarte_device_connection_event_t event)

Function pointer for connection events.

◆ astarte_device_datastream_individual_cbk_t

typedef void(* astarte_device_datastream_individual_cbk_t) (astarte_device_datastream_individual_event_t event)

Function pointer for datastream individual events.

◆ astarte_device_datastream_object_cbk_t

typedef void(* astarte_device_datastream_object_cbk_t) (astarte_device_datastream_object_event_t event)

Function pointer for datastream object events.

◆ astarte_device_disconnection_cbk_t

typedef void(* astarte_device_disconnection_cbk_t) (astarte_device_disconnection_event_t event)

Function pointer for disconnection events.

◆ astarte_device_handle_t

typedef struct astarte_device* astarte_device_handle_t

Handle for an instance of an Astarte device.

Each handle is a pointer to an opaque internally allocated data struct containing all the data for the Astarte device.

◆ astarte_device_property_set_cbk_t

typedef void(* astarte_device_property_set_cbk_t) (astarte_device_property_set_event_t event)

Function pointer for property set events.

◆ astarte_device_property_unset_cbk_t

typedef void(* astarte_device_property_unset_cbk_t) (astarte_device_data_event_t event)

Function pointer for property unset events.

Function Documentation

◆ astarte_device_add_interface()

astarte_result_t astarte_device_add_interface ( astarte_device_handle_t device,
const astarte_interface_t * interface )

add an interface to the device.

Warning
This function has to be called while the device is in the disconnected state, before a call to astarte_device_connect or after a call to astarte_device_disconnect.
Note
The user is responsible for making sure the interface struct remains valid for the lifetime of the device. It is recommended to declare interface structs as static constants.
Parameters
deviceA valid Astarte device handle.
interfaceThe interface to add to the device.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_connect()

astarte_result_t astarte_device_connect ( astarte_device_handle_t device)

Connect a device to Astarte.

Parameters
[in]deviceDevice instance to connect to Astarte.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_destroy()

astarte_result_t astarte_device_destroy ( astarte_device_handle_t device)

Destroy the Astarte device instance.

Note
The device handle will become invalid after this operation.
If the device is connected when calling this function it will be forcefully disconnected.
Parameters
[in]deviceDevice instance to be destroyed.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_disconnect()

astarte_result_t astarte_device_disconnect ( astarte_device_handle_t device,
k_timeout_t timeout )

Disconnect the Astarte device instance.

This function will block until all QoS 1/2 pending messages have been successfully transmitted for a timeout hass been reached.

Note
It will be possible to re-connect the device after disconnection.
Parameters
[in]deviceDevice instance to be disconnected.
[in]timeoutTimeout for the disconnection.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_force_disconnect()

astarte_result_t astarte_device_force_disconnect ( astarte_device_handle_t device)

Force a disconnection for the Astarte device instance.

This function will disconnect the device from the Astarte device, ignoring any pending messages if present. The function will be non blocking and the disconnection immediate.

Note
It will be possible to re-connect the device after disconnection.
Parameters
[in]deviceDevice instance to be disconnected.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_new()

astarte_result_t astarte_device_new ( astarte_device_config_t * cfg,
astarte_device_handle_t * device )

Allocate a new instance of an Astarte device.

This function has to be called to initialize the device SDK before doing anything else. If an error code is returned the astarte_device_free function must not be called.

Note
A device can be instantiated and connected to Astarte only if it has been previously registered on Astarte.
Parameters
[in]cfgConfiguration struct.
[out]deviceDevice instance initialized.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_poll()

astarte_result_t astarte_device_poll ( astarte_device_handle_t device)

Poll data from Astarte.

Parameters
[in]deviceDevice instance to poll data from Astarte.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_set_property()

astarte_result_t astarte_device_set_property ( astarte_device_handle_t device,
const char * interface_name,
const char * path,
astarte_individual_t individual )

Set a device property to the provided individual value.

Parameters
[in]deviceHandle to the device instance.
[in]interface_nameInterface of the property.
[in]pathPath of the property.
[in]individualNew individual value for the property.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_stream_aggregated()

astarte_result_t astarte_device_stream_aggregated ( astarte_device_handle_t device,
const char * interface_name,
const char * path,
astarte_object_entry_t * entries,
size_t entries_len,
const int64_t * timestamp )

Send an aggregated object through the device connection.

Parameters
[in]deviceHandle to the device instance.
[in]interface_nameInterface where to publish data.
[in]pathPath where to publish data.
[in]entriesThe object entries to stream, organized as an array.
[in]entries_lenThe number of element in the entries array.
[in]timestampTimestamp of the message, ignored if set to NULL.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_stream_individual()

astarte_result_t astarte_device_stream_individual ( astarte_device_handle_t device,
const char * interface_name,
const char * path,
astarte_individual_t individual,
const int64_t * timestamp )

Send an individual value through the device connection.

Parameters
[in]deviceHandle to the device instance.
[in]interface_nameInterface where to publish data.
[in]pathPath where to publish data.
[in]individualAstarte individual value to stream.
[in]timestampTimestamp of the message, ignored if set to NULL.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.

◆ astarte_device_unset_property()

astarte_result_t astarte_device_unset_property ( astarte_device_handle_t device,
const char * interface_name,
const char * path )

Unset a device property.

Parameters
[in]deviceHandle to the device instance.
[in]interface_nameInterface of the property.
[in]pathPath of the property.
Returns
ASTARTE_RESULT_OK if successful, otherwise an error code.