1 /* 2 * Percepio DFM v2.0.0 3 * Copyright 2023 Percepio AB 4 * www.percepio.com 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 9 /** 10 * @file 11 * 12 * @brief DFM Cloud API 13 */ 14 15 #ifndef DFM_CLOUD_H 16 #define DFM_CLOUD_H 17 18 #include <dfmCloudPort.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 #if ((DFM_CFG_ENABLED) >= 1) 25 26 /** 27 * @defgroup dfm_cloud_apis DFM Cloud API 28 * @ingroup dfm_apis 29 * @{ 30 */ 31 32 /** 33 * @brief Cloud system data 34 */ 35 typedef struct DfmCloudData 36 { 37 uint32_t ulInitialized; 38 DfmCloudPortData_t xCloudPortData; 39 } DfmCloudData_t; 40 41 /** 42 * @internal Initializes the Cloud system 43 * 44 * @param[in] pxBuffer Cloud system buffer. 45 * 46 * @retval DFM_FAIL Failure 47 * @retval DFM_SUCCESS Success 48 */ 49 DfmResult_t xDfmCloudInitialize(DfmCloudData_t* pxBuffer); 50 51 /** 52 * @brief Send an Alert 53 * 54 * @param[in] xEntryHandle Entry handle. 55 * 56 * @retval DFM_FAIL Failure 57 * @retval DFM_SUCCESS Success 58 */ 59 DfmResult_t xDfmCloudSendAlert(DfmEntryHandle_t xEntryHandle); 60 61 /** 62 * @brief Send a Payload chunk 63 * 64 * @param[in] xEntryHandle Entry handle. 65 * 66 * @retval DFM_FAIL Failure 67 * @retval DFM_SUCCESS Success 68 */ 69 DfmResult_t xDfmCloudSendPayloadChunk(DfmEntryHandle_t xEntryHandle); 70 71 /** 72 * @brief Helper function used by MQTT Cloud ports that generates a Topic from an Entry handle 73 * 74 * @param[in] cTopicBuffer Pointer to buffer. 75 * @param[in] ulBufferSize Buffer size. 76 * @param[in] szMQTTPrefix MQTT Topic Prefix. 77 * @param[in] xEntryHandle Entry handle. 78 * 79 * @retval DFM_FAIL Failure 80 * @retval DFM_SUCCESS Success 81 */ 82 DfmResult_t xDfmCloudGenerateMQTTTopic(char* cTopicBuffer, uint32_t ulBufferSize, const char* szMQTTPrefix, DfmEntryHandle_t xEntryHandle); 83 84 /** @} */ 85 86 #else 87 88 /* Dummy defines */ 89 #define xDfmCloudSendAlert(xEntryHandle) (DFM_FAIL) 90 #define xDfmCloudSendPayloadChunk(xEntryHandle) (DFM_FAIL) 91 #define xDfmCloudGenerateMQTTTopic(cTopicBuffer, ulBufferSize, xEntryHandle) (DFM_FAIL) 92 93 #endif 94 95 #ifdef __cplusplus 96 } 97 #endif 98 99 #endif 100