123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /*
- * 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__ */
|