Cypress Bluetooth Mesh Gateway

Description

Defines AWS MQTT Cloud Client class - Uses Cypress' AWS IoT library.

Inheritance diagram for AWSMQTTClient:
CloudClient

Public Member Functions

 AWSMQTTClient (NetworkInterface &iface, ClientSecurity *security)
 AWS CloudClient constructor. More...
 
 AWSMQTTClient (NetworkInterface &iface, const char *name, ClientSecurity *security)
 AWS CloudClient constructor. More...
 
virtual ~AWSMQTTClient ()
 AWS IoT Client Destructor.
 
cy_rslt_t publish (const char *topic, uint8_t *data, uint32_t length)
 Publishes message to the broker at-most once. More...
 
cy_rslt_t subscribe (const char *topic, subscriber_callback cb)
 Subscribes to a topic. More...
 
cy_rslt_t yield (int timeout)
 Busy-waits for any pending message on subscribed topics. More...
 
virtual cy_rslt_t initialize (void)
 Initialize Cloud-Client.
 
virtual void shutdown (void)
 Shut-down Cloud-Client.
 
virtual cy_rslt_t connect (ClientConnectionParams *params)
 Connect to the server as specified in connection-parameters.
 
virtual cy_rslt_t disconnect (void)
 Disconnect from the server.
 
- Public Member Functions inherited from CloudClient
virtual ~CloudClient ()
 CloudClient Destructor.
 
 CloudClient (NetworkInterface &iface)
 CloudClient constructor. More...
 
 CloudClient (NetworkInterface &iface, const char *name, ClientType cli_type, ClientSecurity *security)
 CloudClient constructor. More...
 
void set_name (const char *name)
 Sets CloudClient name. More...
 
const char * get_name (void)
 Gets CloudClient name. More...
 
ClientType get_type (void)
 Returns CloudClient Object type. More...
 
int isMQTTClient (void)
 Returns 1 if CloudClient is of MQTT type, 0 otherwise.
 
NetworkInterface & get_network_instance (void)
 Returns NetworkInterface Instance in use by the client.
 

Additional Inherited Members

- Protected Attributes inherited from CloudClient
NetworkInterface & network
 Network Interface to be used by the cloud-client.
 
const char * _client_name
 user-defined name for this device/client
 
ClientSecurity_security
 Security params to be used by this cloud-client.
 
enum ClientType _type
 Client type.
 

Constructor & Destructor Documentation

◆ AWSMQTTClient() [1/2]

AWSMQTTClient::AWSMQTTClient ( NetworkInterface &  iface,
ClientSecurity security 
)

AWS CloudClient constructor.

Parameters
[in]iface: Network Interface instance to use
[in]securitySecurity Params to use

◆ AWSMQTTClient() [2/2]

AWSMQTTClient::AWSMQTTClient ( NetworkInterface &  iface,
const char *  name,
ClientSecurity security 
)

AWS CloudClient constructor.

Parameters
[in]iface: Network Interface instance to use
[in]name: AWS IoT Client Name
[in]securitySecurity Params to use

Member Function Documentation

◆ publish()

cy_rslt_t AWSMQTTClient::publish ( const char *  topic,
uint8_t *  data,
uint32_t  length 
)

Publishes message to the broker at-most once.

Parameters
[in]topicTopic Name to use while publishing
[in]data: Payload pointer
[in]lengthLength of payload
Returns
cy_rslt_t : CY_RSLT_SUCCESS - on success, CY_RESULT_MW_ERROR otherwise

◆ subscribe()

cy_rslt_t AWSMQTTClient::subscribe ( const char *  topic,
subscriber_callback  cb 
)

Subscribes to a topic.

Parameters
[in]topic: Topic Name to subscribe to
[in]cb: callback to invoke when a message is received for the given topic
Returns
cy_rslt_t : CY_RSLT_SUCCESS - on success, CY_RESULT_MW_ERROR otherwise

◆ yield()

cy_rslt_t AWSMQTTClient::yield ( int  timeout)

Busy-waits for any pending message on subscribed topics.

Parameters
[in]timeout: Busy-wait timeout period.
Returns
cy_rslt_t : CY_RSLT_SUCCESS - on success, CY_RESULT_MW_ERROR otherwise