3

当我启用虚拟摇杆控制并尝试使用虚拟摇杆控制更新控制值时,它会更新值但遥控器被禁用(在未启用虚拟摇杆模式的情况下无法发送数据)。虚拟摇杆和遥控器命令都不会被传输。

4

4 回答 4

2

如上所述,启用虚拟摇杆将禁用直接摇杆控制,但您可以使用硬件状态“模拟”摇杆控制。HardwareStatus 会在用户移动时返回每个摇杆的位置,并将信息报告给应用程序。

使用上述方法,您可以协调应用程序对虚拟摇杆的使用与用户对物理摇杆的移动,并发送包含用户控件的虚拟摇杆命令。

于 2017-05-07T06:18:05.443 回答
1

这是预期的行为。它们是相互排斥的。当您想通过虚拟摇杆控制飞行器时,遥控器摇杆被禁用。但是如果你想控制飞机改变遥控器的模式

于 2017-01-03T14:36:49.980 回答
0

这是 DJI 的设计决定(我认为这是一个非常危险的决定)。

请注意,这并不意味着用户将始终能够使用 RC 摇杆来控制飞行器;例如,在 F 模式(A3/N3 FW > 1.5.0.0 的 P 模式)下,SDK 执行移动控制时摇杆不可用。断言 RC 控制优先级的正确方法是确保不满足上述 API 控制条件 - 通常最简单的方法是将 RC 从 F 模式切换到 P 或 A 模式。对于 A3/N3 FW > 1.5.0.0,请参阅模式开关更改。

http://developer.dji.com/onboard-sdk/documentation/introduction/things-to-know.html

于 2017-05-24T18:50:10.503 回答
0

我解决了发送 FlightControlData 时打开/关闭虚拟摇杆的问题:

    private void toggleVirtualStick(boolean b, String s) {
    getAircraftInstance().getFlightController().setVirtualStickModeEnabled(b, new CommonCallbacks.CompletionCallback() {
        @Override
        public void onResult(DJIError djiError) {
            if (djiError == null) {
                ((Switch)findViewById(R.id.virtualStick)).setChecked(b);
            } else {
                showToast(djiError.getErrorCode() + " - " + djiError.getDescription());
            }
        }
    })
于 2021-09-17T02:24:04.293 回答