https://github.com/ucloud/uiotedge-driver-sdk-c
https://github.com/ucloud/uiotedge-driver-sdk-c
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ucloud/uiotedge-driver-sdk-c
- Owner: ucloud
- Created: 2020-04-28T06:20:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-16T10:21:11.000Z (over 4 years ago)
- Last Synced: 2025-01-31T04:09:15.208Z (about 1 year ago)
- Language: C
- Size: 1.79 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 编译
编译依赖: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)).
*
* @retval : 成功则返回句柄,失败返回NULL
*/
subdev_client * edge_subdev_construct(const char *product_sn, const char *device_sn, edge_normal_msg_handler normal_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 获取网关在线状态
*
* @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,...)