Go to file
ethan.du f2cd9aa300 support pub&sub nats subject 2021-05-11 14:05:52 +08:00
deps sync uiot bugfix 2021-04-25 13:57:06 +08:00
edge support pub&sub nats subject 2021-05-11 14:05:52 +08:00
samples support pub&sub nats subject 2021-05-11 14:05:52 +08:00
utils first commit 2021-01-22 16:33:01 +08:00
README.md support pub&sub nats subject 2021-05-11 14:05:52 +08:00
make.settings first commit 2021-01-22 16:33:01 +08:00
makefile first commit 2021-01-22 16:33:01 +08:00

README.md

编译

编译依赖cmake 2.8依赖的nats库仅支持cmake编译

sudo apt-get install cmake

编译方式GNU Make

make

打包方式

将uiot_edge_test改名为main和依赖的动态链接库如果有一起打成zip的压缩包,将压缩包上传到子设备驱动

cd samples
cp uiot_edge_test main
zip -r abc.zip main

API参考文档

/**

  • @brief 子设备驱动初始化
  • @param void:
  • @retval : 成功则返回EDGE_OK */

edge_status edge_common_init(void)

/**

  • @brief 初始化一个子设备
  • @param product_sn: 指定产品序列号
  • @param device_sn: 指定设备序列号
  • @param normal_msg_handle: 消息回调处理接口(void (*edge_normal_msg_handler)(char *topic, char *payload, int payloadLen)).
  • @param edge_rrpc_msg_handler: RRPC消息回调处理接口(void (*edge_rrpc_msg_handler)(char *topic, char *payload, int payloadLen)).
  • @retval : 成功则返回句柄失败返回NULL */

subdev_client * edge_subdev_construct(const char *product_sn, const char *device_sn, edge_normal_msg_handler normal_msg_handle, edge_rrpc_msg_handler rrpc_msg_handle)

/**

  • @brief 向指定topic发送一条消息,可以发送二进制消息
  • @param topic: topic名称
  • @param data: 发送消息内容
  • @param dataLen: 发送消息内容长度
  • @retval : 成功则返回EDGE_OK */

edge_status edge_publish(const char *topic, const char *data, int dataLen)

/**

  • @brief 向指定topic发送一条字符串消息
  • @param topic: topic名称
  • @param str: 发送字符串内容
  • @retval : 成功则返回EDGE_OK */

edge_status edge_publishString(const char *topic, const char *str)

/**

  • @brief 动态注册一个子设备
  • @param pst_subdev_client: 子设备句柄
  • @param product_secret: 指定的产品密钥.
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

edge_status edge_subdev_dynamic_auth(subdev_client *pst_subdev_client, const char *product_secret, uint32_t time_out_ms)

/**

  • @brief 子设备登录(同步接口,等待响应消息)
  • @param pst_subdev_client: 子设备句柄
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

edge_status edge_subdev_login_sync(subdev_client *pst_subdev_client, uint32_t time_out_ms)

/**

  • @brief 子设备退出登录(同步接口,等待响应消息)
  • @param pst_subdev_client: 子设备句柄
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

edge_status edge_subdev_logout_sync(subdev_client *pst_subdev_client, uint32_t time_out_ms)

/**

  • @brief 子设备登录(异步接口,不等待响应消息)
  • @param pst_subdev_client: 子设备句柄
  • @retval : 成功则返回EDGE_OK */

edge_status edge_subdev_login_async(subdev_client *pst_subdev_client)

/**

  • @brief 子设备退出登录(异步接口,不等待响应消息)
  • @param pst_subdev_client: 子设备句柄
  • @retval : 成功则返回EDGE_OK */

edge_status edge_subdev_logout_async(subdev_client *pst_subdev_client)

/**

  • @brief 获取驱动信息
  • @param void:
  • @retval : 成功则返回驱动信息 */

char * edge_get_driver_info(void)

/**

  • @brief 获取设备列表
  • @param void:
  • @retval : 成功则返回设备列表 */

char * edge_get_device_list(void)

/**

  • @brief 设置拓扑变化回调接口(控制台增加删减拓扑)
  • @param topo_notify_handle: 拓扑变化回调接口(void (*edge_topo_notify_handler)(topo_operation opera, char *payload)).
  • @retval : void */

void edge_set_topo_notify_handle(edge_topo_notify_handler topo_notify_handle)

/**

  • @brief 设置子设备状态变化回调接口(控制台启动禁用设备)
  • @param subdev_status_handle: 子设备状态变化回调接口(void (*edge_subdev_status_handler)(subdev_able opera,char *payload)).
  • @retval : void */

void edge_set_subdev_status_handle(edge_subdev_status_handler subdev_status_handle)

/**

  • @brief 设置nats消息回调接口
  • @param nats_msg_handle: nats 消息回调接口(void (*edge_nats_msg_handler)(char *topic, char *payload, int payloadLen)).
  • @retval : void */

void edge_set_nats_msg_handle(edge_nats_msg_handler nats_msg_handle)

/**

  • @brief 获取网关在线状态
  • @param void
  • @retval : bool true:在线 flase离线 */

bool edge_get_online_status(void)

/**

  • @brief 获取子设备拓扑
  • @param pst_subdev_client: 子设备句柄
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

char *edge_get_topo(uint32_t time_out_ms)

/**

  • @brief 增加子设备拓扑
  • @param pst_subdev_client: 子设备句柄
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

edge_status edge_add_topo(subdev_client *pst_subdev_client, uint32_t time_out_ms)

/**

  • @brief 删除子设备拓扑
  • @param pst_subdev_client: 子设备句柄
  • @param time_out_ms: 超时时间单位ms
  • @retval : 成功则返回EDGE_OK */

edge_status edge_delete_topo(subdev_client *pst_subdev_client, uint32_t time_out_ms)

/**

  • @brief 记录日志
  • @param level: 日志等级分为DEBUG、INFO、WARNING、ERROR、CRITICAL
  • @param format: 日志记录格式
  • @retval : 成功则返回EDGE_OK */

void log_write(log_level level, const char *format,...)

/**

  • @brief 向指定 nats subject,可以发送二进制消息
  • @param subject: subject名称
  • @param data: 发送消息内容
  • @param dataLen: 发送消息内容长度
  • @retval : 成功则返回EDGE_OK */

edge_status nats_publish(const char *subject, const char *data, int dataLen)

/**

  • @brief 订阅nats subject
  • @param subject: nats subject名称
  • @retval : 成功则返回EDGE_OK */ edge_status nats_subscribe(const char *subject)