{"id":21518171,"url":"https://github.com/ucloud/uiotedge-driver-sdk-c","last_synced_at":"2025-03-17T16:41:57.944Z","repository":{"id":53749851,"uuid":"259549548","full_name":"ucloud/uiotedge-driver-sdk-c","owner":"ucloud","description":null,"archived":false,"fork":false,"pushed_at":"2021-09-16T10:21:11.000Z","size":1879,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T04:09:15.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ucloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-28T06:20:07.000Z","updated_at":"2021-09-16T10:21:14.000Z","dependencies_parsed_at":"2022-09-23T21:10:51.528Z","dependency_job_id":null,"html_url":"https://github.com/ucloud/uiotedge-driver-sdk-c","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucloud%2Fuiotedge-driver-sdk-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucloud%2Fuiotedge-driver-sdk-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucloud%2Fuiotedge-driver-sdk-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucloud%2Fuiotedge-driver-sdk-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucloud","download_url":"https://codeload.github.com/ucloud/uiotedge-driver-sdk-c/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244071095,"owners_count":20393335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T00:50:24.893Z","updated_at":"2025-03-17T16:41:57.914Z","avatar_url":"https://github.com/ucloud.png","language":"C","readme":"## 编译\n编译依赖：cmake 2.8（依赖的nats库仅支持cmake编译）\n```\nsudo apt-get install cmake\n```\n编译方式：GNU Make\n```\nmake\n```\n\n## 打包方式\n将uiot_edge_test改名为main，和依赖的动态链接库（如果有）一起打成zip的压缩包,将压缩包上传到子设备驱动\n```\ncd samples\ncp uiot_edge_test main\nzip -r abc.zip main\n```\n\n## API参考文档\n\n/**\n * @brief 子设备驱动初始化\n *\n * @param void: \n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_common_init(void)\n\n/**\n * @brief 初始化一个子设备\n *\n * @param product_sn:               指定产品序列号\n * @param device_sn:                指定设备序列号\n * @param normal_msg_handle:        消息回调处理接口(void (*edge_normal_msg_handler)(char *topic, char *payload)). \n *\n * @retval : 成功则返回句柄，失败返回NULL\n */\n \nsubdev_client * edge_subdev_construct(const char *product_sn, const char *device_sn, edge_normal_msg_handler normal_msg_handle)\n\n/**\n * @brief 向指定topic发送一条消息，可以发送二进制消息\n *\n * @param topic:                    topic名称\n * @param data:                     发送消息内容\n * @param dataLen:                  发送消息内容长度\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_publish(const char *topic, const char *data, int dataLen)\n\n/**\n * @brief 向指定topic发送一条字符串消息\n *\n * @param topic:                    topic名称\n * @param str:                      发送字符串消息内容\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_publishString(const char *topic, const char *str)\n\n\n/**\n * @brief 动态注册一个子设备\n *\n * @param pst_subdev_client:        子设备句柄\n * @param product_secret:           指定的产品密钥.\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_subdev_dynamic_auth(subdev_client *pst_subdev_client, const char *product_secret, uint32_t time_out_ms)\n\n/**\n * @brief 子设备登录（同步接口，等待响应消息）\n *\n * @param pst_subdev_client:        子设备句柄\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_subdev_login_sync(subdev_client *pst_subdev_client, uint32_t time_out_ms)\n\n/**\n * @brief 子设备退出登录（同步接口，等待响应消息）\n *\n * @param pst_subdev_client:        子设备句柄\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_subdev_logout_sync(subdev_client *pst_subdev_client, uint32_t time_out_ms)\n\n/**\n * @brief 子设备登录（异步接口，不等待响应消息）\n *\n * @param pst_subdev_client:        子设备句柄\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_subdev_login_async(subdev_client *pst_subdev_client)\n\n/**\n * @brief 子设备退出登录（异步接口，不等待响应消息）\n *\n * @param pst_subdev_client:        子设备句柄\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_subdev_logout_async(subdev_client *pst_subdev_client)\n\n/**\n * @brief 获取驱动信息\n *\n * @param void:\n *\n * @retval : 成功则返回驱动信息\n */\n \nchar * edge_get_driver_info(void)\n\n/**\n * @brief 获取设备列表\n *\n * @param void:\n *\n * @retval : 成功则返回设备列表\n */\n \nchar * edge_get_device_list(void)\n\n/**\n * @brief 设置拓扑变化回调接口（控制台增加删减拓扑）\n *\n * @param topo_notify_handle:\t拓扑变化回调接口(void (*edge_topo_notify_handler)(topo_operation opera, char *payload)).\n *\n * @retval : void\n */\n \nvoid edge_set_topo_notify_handle(edge_topo_notify_handler topo_notify_handle)\n\n/**\n * @brief 设置子设备状态变化回调接口（控制台启动禁用设备）\n *\n * @param subdev_status_handle:\t子设备状态变化回调接口(void (*edge_subdev_status_handler)(subdev_able opera,char *payload)).\n *\n * @retval : void\n */\n \nvoid edge_set_subdev_status_handle(edge_subdev_status_handler subdev_status_handle)\n\n/**\n * @brief 获取网关在线状态\n *\n * @param void\n *\n * @retval : bool\ttrue:在线 flase离线\n */\n \nbool edge_get_online_status(void)\n\n/**\n * @brief 获取子设备拓扑\n *\n * @param pst_subdev_client:        子设备句柄\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nchar *edge_get_topo(uint32_t time_out_ms)\n\n/**\n * @brief 增加子设备拓扑\n *\n * @param pst_subdev_client:        子设备句柄\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_add_topo(subdev_client *pst_subdev_client, uint32_t time_out_ms)\n\n/**\n * @brief 删除子设备拓扑\n *\n * @param pst_subdev_client:        子设备句柄\n * @param time_out_ms:              超时时间，单位ms\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nedge_status edge_delete_topo(subdev_client *pst_subdev_client, uint32_t time_out_ms)\n\n/**\n * @brief 记录日志\n *\n * @param level:        日志等级分为：DEBUG、INFO、WARNING、ERROR、CRITICAL\n * @param format:       日志记录格式\n *\n * @retval : 成功则返回EDGE_OK\n */\n \nvoid log_write(log_level level, const char *format,...)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucloud%2Fuiotedge-driver-sdk-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucloud%2Fuiotedge-driver-sdk-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucloud%2Fuiotedge-driver-sdk-c/lists"}