# hdc_sdk **Repository Path**: Cooper0/hdc_sdk ## Basic Information - **Project Name**: hdc_sdk - **Description**: hdc 纯rust重构,不允许使用cffi - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 5 - **Created**: 2024-07-19 - **Last Updated**: 2024-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 HDC SDK rust框架。 # 描述 ![框图](image.png) ## 客户端 客户端的设计思想以一个实例完成所有的功能封装。实例初始化入参提供一个命令行参数解析后的参数,和一个输出回调函数。 将所有命令的执行回显等都通过调用回调函数将数据的所有权交给调用者。可以将整个实例打包成一个库文件,交给第三方程序进行集成。 直接调用实例完成HDC所有功能的集成 ## 服务端 核心思想是数据转发,除开和设备建联以外的所有逻辑不在sever侧实现。 - 每个客户端单独任务处理。 - 每个任务持有一个Proxy实例,Proxy持有数据的两端。屏蔽来自设备端的不同连接方式的差异 - 持有的Client侧的连接实例是唯一的 - 持有的设备侧的连接实例是通过channel进行映射的,满足多个客户端使用同一个通道同时访问设备的场景 - 设备侧断连以后,管理器会关闭相关的channel,这会让Proxy感知到链接断开 - 接收到来自客户端的消息直接转发给对端,进入USB的发送队列进行发送(队列是通过channel的特性实现的) - 接受到来自设备侧的消息,根据消息中的channel_ID进行分发到Proxy