bossay_release_out/vendor/bossay/common/inc/iot_cloud.h

124 lines
3.5 KiB
C
Raw Permalink Normal View History

2025-09-24 11:16:14 +08:00
/*
* Copyright (c) 2020  Jinan Bosai Network Technology Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __IOT_CLOUD_H__
#define __IOT_CLOUD_H__
#include <stdbool.h>
#include <iot_demo_def.h>
/**
* @brief Initialize the cloud sdk
* @return 0 success while others failed
*/
int CLOUD_Init(void);
/**
* @brief Do deinitialize the cloud sdk
* @return 0 success while others failed
*/
int CLOUD_Deinit(void);
/**
* @brief Send collected data to Cloud Platform
* @param jsonString, which means this has been formated as the profile defines
* @return Returns 0 success while others failed
*/
int CLOUD_ReportMsg(const char *jsonString);
/**
* @brief Connect to the Cloud Platform
* @param deviceID Indicats the deviceID create in the iot platform
* @param devicePwd Indicates the corresponding to the deviceID
* @param serverIP Indicates the ip of the iot platform
* @param serverPort Indicates the port correspond to the ip
* @param cmdCallBack Indicates command callback and will be called if any message comes
* @return Returns 0 success while others failed
*/
int CLOUD_Connect(const char *deviceID, const char *devicePwd, \
const char *serverIP, const char *serverPort);
/**
* @brief Disconnect from the Cloud Platform
* @return 0 success while others failed
*/
int CLOUD_Disconnect(void);
/**
* @brief use this is a call back function implemented by the demo
* @param jsonString indicated the jsonString received from the iot_cloud
* @return Returns 0 success while -1 failed
*/
int CLOUD_CommandCallBack(const char *jsonString);
/**
* @brief functions and data for the syntax format
*
*/
// enum all the data type for the oc profile
typedef enum {
IOT_PROFILE_KEY_DATATYPE_INT = 0,
IOT_PROFILE_KEY_DATATYPE_LONG,
IOT_PROFILE_KEY_DATATYPE_FLOAT,
IOT_PROFILE_KEY_DATATYPE_DOUBLE,
IOT_PROFILE_KEY_DATATYPE_STRING,
IOT_PROFILE_KEY_DATATYPE_LAST,
}IotProfileDataType;
typedef struct {
void *nxt; ///< ponit to the next key
char *key;
IotProfileDataType type;
void *value;
}IotProfileKV;
typedef struct {
void *nxt;
char *serviceID; ///< the service id in the profile, which could not be NULL
char *eventTime; ///< eventtime, which could be NULL means use the platform time
IotProfileKV *propertyLst; ///< the property in the profile, which could not be NULL
} IotProfileService;
/**
* @brief Package the profile to json string mode, and you should free it manually
* @param serviceLst, profile services
* @return Returns the formates json string or NULL if failed
*
*/
char *IoTProfilePackage(IotProfileService *serviceLst);
char *IotNotificationPackage(int type, const char *enString, const char *chString);
typedef enum {
NOTIFY_TYPE_NORMAL = 0,
NOTIFY_TYPE_SECONDARY,
NOTIFY_TYPE_URGENT,
NOTIFY_TYPE_LAST
} NOTIFY_TYPE;
int CLOUD_ReportNotification(int type, const char *enString, const char *chString);
int CLOUD_GetCloudConnectedStatus(void);
#endif /* __IOT_CLOUD_H__ */