# DroneLib **Repository Path**: wsptrdev/dronelib ## Basic Information - **Project Name**: DroneLib - **Description**: 基于MAVLink协议控制的无人机控制库( - **Primary Language**: C# - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-02 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dronelib 这是一个基于 MAVLink 协议的无人机通信库,支持多种通信方式,包括串口、TCP、UDP 和 NTRIP。该库提供了一套完整的 API 来与无人机进行交互,包括连接、参数读写、任务上传下载、飞行控制等功能。 ## 特性 - 支持多种通信协议:串口、TCP、UDP、NTRIP - 提供详细的无人机状态信息 - 支持参数读写 - 支持任务上传和下载 - 提供飞行控制功能 - 支持多种无人机类型(固定翼、多旋翼等) ## 安装 你可以通过以下方式安装此库: ```bash git clone https://gitee.com/wsptrdev/dronelib.git cd dronelib # 根据你的开发环境选择合适的构建方式 ``` ## 使用示例 ### 连接无人机 ```csharp using DroneLib.Vehicles; // 使用串口连接无人机 var (connected, vehicle, error) = await Vehicle.Connect("serial:///dev/ttyUSB0:57600"); if (connected) { Console.WriteLine("成功连接到无人机"); } else { Console.WriteLine($"连接失败: {error}"); } ``` ### 读取参数 ```csharp // 读取某个参数 var (success, value) = await vehicle.ReadParameter("PARAM_NAME"); if (success) { Console.WriteLine($"参数值: {value}"); } else { Console.WriteLine("读取参数失败"); } ``` ### 写入参数 ```csharp // 写入某个参数 bool success = await vehicle.WriteParameter("PARAM_NAME", 1.0f, MAV_PARAM_TYPE.MAV_PARAM_TYPE_FLOAT); if (success) { Console.WriteLine("参数写入成功"); } else { Console.WriteLine("参数写入失败"); } ``` ### 下载任务 ```csharp // 下载任务 var (canceled, totalCount, result) = await vehicle.DownloadMission(); if (!canceled) { Console.WriteLine($"下载了 {result.Count} 个任务项"); } else { Console.WriteLine("任务下载被取消"); } ``` ### 上传任务 ```csharp // 创建任务文件 var waypointFile = new WaypointFile(39.0, 116.0, 10.0); // 添加任务项 waypointFile.MissionItemInts.Add(new MAVLink.mavlink_mission_item_int_t { // 设置任务项内容 }); // 上传任务 var (isSuccess, err) = await vehicle.UploadMission(waypointFile); if (isSuccess) { Console.WriteLine("任务上传成功"); } else { Console.WriteLine($"任务上传失败: {err}"); } ``` ### 飞行控制 ```csharp // 设置模式为自动 await vehicle.SetMode("AUTO"); // 执行返航 await vehicle.ReturnToLaunch(); ``` ## 贡献 欢迎贡献代码和提出建议。请先 fork 项目,然后提交 pull request。 ## 许可证 该项目使用 MIT 许可证。详情请查看 LICENSE 文件。