代码之家  ›  专栏  ›  技术社区  ›  Bryan

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

  •  1
  • Bryan  · 技术社区  · 8 年前

    Here ,它说明我们可以使用 DJISimulator 对象来帮助促进连续集成(即单元/集成测试)。但我似乎不明白这是怎么可能的。 调节器 DJIFlightController 不符合相同的基本协议,也没有类似的委托。

    我想做的是在我的单元测试中,模拟(不附加无人机硬件或运行DJIAssistant 2)无人机起飞和飞行我们建立和上传的航路点任务,完成后,回家着陆;遵循相同的代码流,如果我们是一个真正的无人机和我们的定制iOS应用程序,其中集成了DJISDK。

    1 回复  |  直到 6 年前
        1
  •  1
  •   aksh1t    8 年前

    现在,运行模拟器 没有 硬件(drone+RC)物理上是 不可能 . 这是因为实际的模拟是在无人机上进行的,不同无人机的每个不同的飞行控制器模型都有自己的小怪癖,这使得很难在软件中完全准确地模拟整个过程。

    可以 模拟航路点任务,而不实际飞行无人机,让它在你的测试回路中连接和供电。

    要启动模拟,请获取 DJISimulator 飞机上的物体 flightController ,然后调用 start simulation


    编辑

    为了进一步说明如何编写单元测试,下面是一系列粗略的测试步骤,例如这样的任务[起飞,偏航到北方,航路点任务,回家和着陆]:

    1. 确保打开模拟器,或重新启动它,以清除无人机的状态,如果模拟器已经打开。
    2. 在单元测试方法中,创建所有时间轴操作并将它们添加到时间轴中。
    3. 开始你的时间表。
    4. 由于所有操作都是异步的,因此您需要添加一个等待直到超时的时间段,并且如果您的时间线在此之前没有成功完成,则认为测试失败。

    P、 如果你想对任务(航路点、热点等)进行更精确的更新,你也可以订阅监听任务操作员侦听器(WaypointMissionOperator、HotpointMissionOperator等)。它们有可能感兴趣的上传/下载侦听器。

    需要 听模拟器的状态监听器,因为你只需探测无人机的状态(位置、电机是否开启等),它会给出模拟值,你可以用期望值来检查。

    推荐文章