124 lines
3.5 KiB
C
124 lines
3.5 KiB
C
![]() |
/*
|
|||
|
* 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__ */
|
|||
|
|