Link Kit C-SDK  4.0.0
| 宏定义 | 类型定义 | 枚举 | 函数
aiot_logpost_api.h 文件参考

logpost模块头文件, 提供设备端日志上云的能力 更多...

#include <stdint.h>
aiot_logpost_api.h 的引用(Include)关系图:

浏览源代码.

struct  aiot_logpost_msg_t
 日志数据结构体定义 更多...
 
struct  aiot_logpost_event_t
 logpost模块内部发生值得用户关注的状态变化时, 通知用户的事件内容 更多...
 

宏定义

#define STATE_LOGPOST_BASE   (-0x1500)
 -0x1500~-0x15FF表达SDK在logpost模块内的状态码 更多...
 
#define STATE_LOGPOST_MQTT_HANDLE_IS_NULL   (-0x1501)
 用户未调用aiot_logpost_setopt 配置MQTT句柄 更多...
 
#define STATE_LOGPOST_POST_TURN_OFF   (-0x1502)
 日志上报被云端配置为关闭状态 更多...
 
#define STATE_LOGPOST_LOGLEVEL_ERROR   (-0x1503)
 日志消息的日志级别有误 更多...
 
#define STATE_LOGPOST_LOG_MODULE_NAME_IS_NULL   (-0x1504)
 日志消息的模块名称字段为NULL 更多...
 
#define STATE_LOGPOST_LOG_CONTENT_IS_NULL   (-0x1505)
 日志消息的日志内容字段为NULL 更多...
 
#define STATE_LOGPOST_LOG_CONTENT_TOO_LONG   (-0x1506)
 日志消息的日志内容字段字符串长度大于4096个字节 更多...
 
#define STATE_LOGPOST_LOG_RECV   (-0x1507)
 接收到服务器下行消息时的内部日志状态码 更多...
 
#define SATAE_LOGPOST_LOG_PARSE_MSG_FAILED   (-0x1508)
 解析服务器下行消息失败时的内部日志状态码 更多...
 

类型定义

typedef void(* aiot_logpost_event_handler_t) (void *handle, const aiot_logpost_event_t *event, void *userdata)
 logpost模块内部发生值得用户关注的状态变化时, 通知用户所调用的事件回调函数 更多...
 

枚举

enum  aiot_logpost_option_t {
  AIOT_LOGPOSTOPT_MQTT_HANDLE, AIOT_LOGPOSTOPT_EVENT_HANDLER, AIOT_LOGPOSTOPT_USERDATA, AIOT_LOGPOSTOPT_SYS_LOG,
  AIOT_LOGPOSTOPT_MAX
}
 aiot_logpost_setopt 接口的option参数可选值. 更多...
 
enum  aiot_logpost_level_t {
  AIOT_LOGPOST_LEVEL_FATAL, AIOT_LOGPOST_LEVEL_ERR, AIOT_LOGPOST_LEVEL_WARN, AIOT_LOGPOST_LEVEL_INFO,
  AIOT_LOGPOST_LEVEL_DEBUG
}
 日志级别枚举类型定义 更多...
 
enum  aiot_logpost_event_type_t { AIOT_LOGPOSTEVT_CONFIG_DATA }
 logpost模块内部发生值得用户关注的状态变化时, 通知用户的事件类型 更多...
 

函数

void * aiot_logpost_init (void)
 创建logpost会话实例, 并以默认值配置会话参数 更多...
 
int32_t aiot_logpost_setopt (void *handle, aiot_logpost_option_t option, void *data)
 配置logpost会话 更多...
 
int32_t aiot_logpost_send (void *handle, aiot_logpost_msg_t *msg)
 向服务器发送日志消息 更多...
 
int32_t aiot_logpost_deinit (void **handle)
 结束logpost会话, 销毁实例并回收资源 更多...
 

详细描述

logpost模块头文件, 提供设备端日志上云的能力

  1. 在使用日志上云模块前, 用户应首先创建好一个MQTT实例
  2. 调用aiot_logpost_init创建一个日志上云实例, 保存实例句柄
  3. 调用aiot_logpost_setopt配置AIOT_LOGPOSTOPT_MQTT_HANDLE选项以设置MQTT句柄, 此选项为强制配置选项
  4. 调用aiot_logpost_setopt配置AIOT_LOGPOSTOPT_EVENT_HANDLERAIOT_LOGPOSTOPT_USER_DATA选项以注册事件接收回调函数和用户上下文数据指针
  5. 在使用aiot_logpost_send发送日志消息前, 应先完成MQTT实例的建连

宏定义说明

◆ STATE_LOGPOST_BASE

#define STATE_LOGPOST_BASE   (-0x1500)

-0x1500~-0x15FF表达SDK在logpost模块内的状态码

◆ STATE_LOGPOST_MQTT_HANDLE_IS_NULL

#define STATE_LOGPOST_MQTT_HANDLE_IS_NULL   (-0x1501)

用户未调用aiot_logpost_setopt 配置MQTT句柄

◆ STATE_LOGPOST_POST_TURN_OFF

#define STATE_LOGPOST_POST_TURN_OFF   (-0x1502)

日志上报被云端配置为关闭状态

◆ STATE_LOGPOST_LOGLEVEL_ERROR

#define STATE_LOGPOST_LOGLEVEL_ERROR   (-0x1503)

日志消息的日志级别有误

◆ STATE_LOGPOST_LOG_MODULE_NAME_IS_NULL

#define STATE_LOGPOST_LOG_MODULE_NAME_IS_NULL   (-0x1504)

日志消息的模块名称字段为NULL

◆ STATE_LOGPOST_LOG_CONTENT_IS_NULL

#define STATE_LOGPOST_LOG_CONTENT_IS_NULL   (-0x1505)

日志消息的日志内容字段为NULL

◆ STATE_LOGPOST_LOG_CONTENT_TOO_LONG

#define STATE_LOGPOST_LOG_CONTENT_TOO_LONG   (-0x1506)

日志消息的日志内容字段字符串长度大于4096个字节

◆ STATE_LOGPOST_LOG_RECV

#define STATE_LOGPOST_LOG_RECV   (-0x1507)

接收到服务器下行消息时的内部日志状态码

◆ SATAE_LOGPOST_LOG_PARSE_MSG_FAILED

#define SATAE_LOGPOST_LOG_PARSE_MSG_FAILED   (-0x1508)

解析服务器下行消息失败时的内部日志状态码

类型定义说明

◆ aiot_logpost_event_handler_t

typedef void(* aiot_logpost_event_handler_t) (void *handle, const aiot_logpost_event_t *event, void *userdata)

logpost模块内部发生值得用户关注的状态变化时, 通知用户所调用的事件回调函数

参数
[in]handlelogpost会话句柄
[in]eventlogpost模块中发生的事件的内容
[in]userdata指向用户上下文数据的指针, 这个指针由用户通过调用aiot_logpost_setopt 配置AIOT_LOGPOSTOPT_USERDATA 选项设置
返回
void

枚举类型说明

◆ aiot_logpost_option_t

aiot_logpost_setopt 接口的option参数可选值.

下文每个选项中的数据类型, 指的是aiot_logpost_setopt 中, data参数的数据类型

枚举值
AIOT_LOGPOSTOPT_MQTT_HANDLE 

模块依赖的MQTT句柄

LOGPOST模块依赖底层的MQTT模块, 用户必需配置正确的MQTT句柄, 否则无法正常工作, 数据类型为(void *)

AIOT_LOGPOSTOPT_EVENT_HANDLER 

设置回调, 它在SDK收到网络报文的时候被调用, 告知用户, 数据类型为(aiot_logpost_recv_handler_t)

AIOT_LOGPOSTOPT_USERDATA 

用户需要SDK暂存的上下文, 数据类型为(void *)

这个上下文指针会在 AIOT_LOGPOSTOPT_RECV_HANDLER 设置的回调被调用时, 由SDK传给用户

AIOT_LOGPOSTOPT_SYS_LOG 

系统日志的开关.

设置为1表示要上报系统日志, 设置为0表示不上报系统日志. 这里的系统日志是指建连耗时和网络延时

AIOT_LOGPOSTOPT_MAX 

配置选项数量最大值, 不可用作配置参数

◆ aiot_logpost_level_t

日志级别枚举类型定义

枚举值
AIOT_LOGPOST_LEVEL_FATAL 
AIOT_LOGPOST_LEVEL_ERR 
AIOT_LOGPOST_LEVEL_WARN 
AIOT_LOGPOST_LEVEL_INFO 
AIOT_LOGPOST_LEVEL_DEBUG 

◆ aiot_logpost_event_type_t

logpost模块内部发生值得用户关注的状态变化时, 通知用户的事件类型

枚举值
AIOT_LOGPOSTEVT_CONFIG_DATA 

接受到云端下发的日志配置数据

函数说明

◆ aiot_logpost_init()

void* aiot_logpost_init ( void  )

创建logpost会话实例, 并以默认值配置会话参数

返回
void *
返回值
非NULLlogpost实例的句柄
NULL初始化失败, 一般是内存分配失败导致
函数调用图:

◆ aiot_logpost_setopt()

int32_t aiot_logpost_setopt ( void *  handle,
aiot_logpost_option_t  option,
void *  data 
)

配置logpost会话

参数
[in]handlelogpost会话句柄
[in]option配置选项, 更多信息请参考aiot_logpost_option_t
[in]data配置选项数据, 更多信息请参考aiot_logpost_option_t
返回
int32_t
返回值
<STATE_SUCCESS参数配置失败
STATE_SUCCESS参数配置成功
STATE_USER_INPUT_NULL_POINTER入参handle或data为NULL
STATE_USER_INPUT_OUT_RANGE入参optioin的枚举值>=AIOT_LOGPOSTOPT_MAX
others参考aiot_state_api.h
函数调用图:

◆ aiot_logpost_send()

int32_t aiot_logpost_send ( void *  handle,
aiot_logpost_msg_t msg 
)

向服务器发送日志消息

参数
[in]handlelogpost会话句柄
[in]msg消息结构体, 可指定日志对应模块, 日志级别等, 更多信息请参考aiot_logpost_msg_t
返回
int32_t
返回值
STATE_SUCCESS请求发送成功
STATE_USER_INPUT_NULL_POINTER入参handlemsg为NULL
STATE_SYS_DEPEND_MALLOC_FAILED内存分配失败
STATE_LOGPOST_MQTT_HANDLE_IS_NULL用户未调用aiot_logpost_setopt 配置MQTT句柄
others参考aiot_state_api.hSTATE_SHADOW_BASE 中对应的错误码说明
函数调用图:

◆ aiot_logpost_deinit()

int32_t aiot_logpost_deinit ( void **  handle)

结束logpost会话, 销毁实例并回收资源

参数
[in]handle指向logpost会话句柄的指针
返回
int32_t
返回值
<STATE_SUCCESS执行失败
>=STATE_SUCCESS执行成功
函数调用图: