Ai-Thinker-Open_RTL8710BX_A.../Living_SDK/include/aos/alink.h
2020-06-18 22:04:32 +08:00

170 lines
4.4 KiB
C

/*
* Copyright (C) 2015-2017 Alibaba Group Holding Limited
*/
#ifndef AOS_ALINK_H
#define AOS_ALINK_H
#ifdef __cplusplus
extern "C"
{
#endif
enum ALINK_LOG_LEVEL {
ALINK_LL_NONE, /* disable log */
ALINK_LL_FATAL, /* fatal error log will output */
ALINK_LL_ERROR, /* error + fatal log will output */
ALINK_LL_WARN, /* warn + error + fatal log will output(default level) */
ALINK_LL_INFO, /* info + warn + error + fatal log will output */
ALINK_LL_DEBUG, /* debug + info + warn + error + fatal log will output */
ALINK_LL_TRACE, /* trace + debug + info + warn + error + fatal will output */
};
/**
* Log level control
*
* @param[in] loglevel ALINK_LOG_LEVEL
*/
void alink_set_loglevel(enum ALINK_LOG_LEVEL loglevel);
/**
* Enable sandbox mode, for debug
*
* @return 0 on success, otherwise -1 will return
*/
int alink_enable_sandbox_mode(void);
/**
* Enable daily mode, for debug
*
* @param[in] server_ip IP Addr
* @param[in] port server port
*
* @return 0 on success, otherwise -1 will return
*/
int alink_enable_daily_mode(const char *server_ip, int port);
/**
* Entry function. start alink gateway service.
*
* @return 0 on success, otherwise -1 will return
*/
int alink_start(void);
#define ALINK_WAIT_FOREVER (0)
/**
* Waiting alink connect to aliyun server
*
* @param[in] timeout_ms time in milliseconds, use ALINK_WAIT_FOREVER to wait until server is connected
*
* @return 0 when connect to server successfully, otherwise -1 will return
*/
int alink_wait_connect(int timeout_ms);
/**
* Destroy alink service and free resources
*
* @note this func will block at most 15 seconds to stop all alink related process(thread)
*
* @return 0 on success, otherwise -1 will return
*/
int alink_end(void);
/**
* Reset user account binding.
*
* @return 0 on success, -1 when params invalid
*/
int alink_factory_reset(void);
/**
* Report alink message, it is a fundamental func.
*
* @note when connection with server is unstable, this func will block until got response from server or timeout.
*
* @param[in] method alink protocol method, i.e. "postDeviceRawData", "retrieveDeviceData".
* @param[in] json_buffer json format buffer, like {"OnOff":"1", "Light":"80"}.
*
* @return 0 when successfully got response from cloud,
* otherwise this func will block until timeout and -1 will return
*/
int alink_report(const char *method, const char *json_buffer);
int alink_report_async(const char *method, const char *json_buffer,
void *(*cb)(void *), void *arg);
int alink_report_rawdata(const char *rawdata, int len);
enum ALINK_WIFI_CALLBACK {
/*
* void callback_cloud_connected(void)
* @n@n called each time when gateway successfully connect(or reconnect)
* to aliyun server
*/
ALINK_CLOUD_CONNECTED = 0,
/*
* void callback_cloud_disconnected(void)
* @n@n called each time when gateway lose connection with aliyun server
*/
ALINK_CLOUD_DISCONNECTED,
/*
* int callback_read_device_status(const char *params)
* @n@nuccessfully
*/
ALINK_GET_DEVICE_STATUS,
/*
* void callback_write_device_status(const char *params)
*/
ALINK_SET_DEVICE_STATUS,
/*
* int callback_read_device_rawdata(const char *params)
* @n@nuccessfully
*/
ALINK_GET_DEVICE_RAWDATA,
/*
* void callback_write_device_rawdata(const char *params)
*/
ALINK_SET_DEVICE_RAWDATA,
};
int awss_register_callback(unsigned char cb_type, void *cb_func);
/**
* Register misc callback
*
* @param[in] cb_type callback type.
* @param[in] cb_func callback func pointer, func declaration see related comments.
*
* @return 0 on success, otherwise -1 will return
*/
int alink_register_callback(unsigned char cb_type, void *cb_func);
/**
* Start awss service, block method, block until awss succeed, or timeout(see Note).
*
* @note platform_awss_get_timeout_interval_ms() return monitor timeout interval,
* AP connection timeout is 30s.
*
* @return 0 on success, otherwise non-zero value will return
* = 0: connect AP & DHCP success
* = -1: get ssid & passwd fail
* = -2: connect AP / DHCP fail
*/
int awss_start(void);
/**
* Calling this func force awss_start exit.
*
* @return 0 on success, otherwise -1 will return
*/
int awss_stop(void);
#ifdef __cplusplus
}
#endif
#endif /* AOS_ALINK_H */