获取速度并计算加速度DJI SDK

问题描述

你好,我想实时获取VeLocity X的值,并计算加速度X: 我在MainActivity.java中使用了以下代码

public class MainActivity extends AppCompatActivity {

private static final String TAG = MainActivity.class.getName();

@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

  

    setContentView(R.layout.activity_main);

    ((Aircraft) DemoApplication.getProductInstance()).getFlightController().setStateCallback(new FlightControllerState.Callback() {
        @Override
        public void onUpdate(@NonNull FlightControllerState flightControllerState) {


            float vx1 = flightControllerState.getVeLocityX();
            Handler handler = new Handler();
            handler.postDelayed(() -> {
                //Do something after 100ms
            },100);
            float vx2 = flightControllerState.getVeLocityX();
            float accelerationVariableX = (10 * vx2) - (10 * vx1);
            TextView acc = (TextView) findViewById(R.id.acc);
            //String v1 = Float.toString(vx1);
            //String v2 = Float.toString(vx2);

            acc.setText("accX: " + accelerationVariableX + " m/s²" + "/x1   " + vx1 + "/x2  " + vx2); //  acceleration and veLocity 


        }
    });


}

}

我打开应用程序时崩溃了, 如何修复崩溃的应用程序?

注意:当我删除此行时

((Aircraft) DemoApplication.getProductInstance()).getFlightController().setStateCallback(new FlightControllerState.Callback() {
        @Override
        public void onUpdate(@NonNull FlightControllerState flightControllerState) {

` 该应用程序运行良好

解决方法

我怀疑getProductInstance()或getFlightController()这些变量之一为空。

您确定飞机已连接并且SDK已完成注册和初始化的竞争吗?在先验完成之前,这些参数将为空。