gpt4 book ai didi

ios - 如何设置单元测试来测试自定义 DJI 任务?

转载 作者:行者123 更新时间:2023-11-29 11:32:40 25 4
gpt4 key购买 nike

Here ,它指出我们可以使用 DJISimulator 对象来帮助促进持续集成(即单元/集成测试)。但我似乎无法弄清楚那是怎么可能的。 DJISimulatorDJIFlightController 不符合相同的基本协议(protocol),也没有相似的委托(delegate)。

我希望能够在我的单元测试中做的是模拟(无需连接无人机硬件或运行 DJIAssistant 2)无人机起飞和飞行我们构建和上传的航点任务,并在完成后,回家并着陆;如果我们使用真正的无人机和集成了 DJISDK 的自定义 iOS 应用程序飞行,则遵循相同的代码流执行。

这可能吗?

最佳答案

目前,在没有硬件(无人机 + RC)物理地处于循环中的情况下运行模拟器是不可能的。这是因为实际的模拟是在无人机上进行的,并且不同无人机的每个不同飞行 Controller 模型都有自己的小怪癖,这使得很难在软件中完全准确地模拟整个事情。

但是,您可以通过在测试循环中连接并打开无人机来模拟航点任务,而无需实际驾驶无人机。

要开始模拟,获取 DJISimulator来自飞机的物体 flightController , 然后调用 start simulation方法与您想要的位置、频率等。启动模拟器后,您可以收听模拟器的委托(delegate)方法以获取模拟世界中无人机的状态。


编辑:

要添加更多关于如何编写单元测试的信息,下面是一系列粗略的步骤,例如测试这样的任务 [起飞,向北偏航,航路点任务,回家并着陆] :

  1. 确保打开模拟器,或者如果模拟器已经打开,则重新启动它以清除无人机的状态。
  2. 在您的单元测试方法中,创建所有时间线操作并将它们添加到时间线。
  3. 添加时间线进度监听器。每当任何时间轴元素更新时,此监听器都会触发。您的大部分单元测试逻辑都将放在这个 block 中。例如,如果时间线监听器元素是索引 1 处的 Aircraft Yaw 元素,则您知道这是您的“向北偏航”步骤。因此,每当该元素的状态出现时,您就可以探测无人机以询问它的姿态,并断言它的偏航正像您预期的那样指向北方。同样,在航路点期间,到达每个航路点后,您可以检查无人机的 gps 坐标是否在您预期的位置(+几米的误差阈值)。如果时间线在任何时候出现错误,您就会认为测试失败。
  4. 开始你的时间表。
  5. 由于一切都是异步的,您需要添加一段合理的等待超时时间,如果您的时间线在此之前未成功完成,则认为测试失败。

附言如果您想要更精细地更新任务(航路点、热点等),您还可以订阅以收听 MissionOperator 监听器(WaypointMissionOperator、HotpointMissionOperator 等)。那些有可能感兴趣的上传/下载监听器。

此外,在测试的任何时候,您根本不需要监听模拟器的状态监听器,因为您只需探测无人机的状态(位置、电机是否开启)等),它会给出模拟值,您可以根据预期值检查这些值。

关于ios - 如何设置单元测试来测试自定义 DJI 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51971407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com