当前使用PSDK版本V2.2.1。在使用Widget功能的时候,注册了PsdkTestWidget_SetWidge...

Comments

14 comments

  • DJI Developer Support
    具体是对应到APP上哪个控件上获取显示?可以提供一个APP控件截图。
    0
    Comment actions Permalink
  • Hyacincher

    LIST控件有这个问题,我如果遥控器上不触发LIST选项的更改PSDK不会回调get函数

    0
    Comment actions Permalink
  • DJI Developer Support
    get widget启动程序后是会自动获取的,不需要操作list再更新,可以在PsdkTestWidget_GetWidgetValue添加个打印试试是否有主动触发回调。 ![](https://djisdksupport.zendesk.com/attachments/token/Z4IhMnMlo754CM37l4bIGfxmV/?name=image.png)
    0
    Comment actions Permalink
  • Hyacincher

    您好,我这次准确复位到了问题。目前PSDK版本2.2.1。

    在使用M210飞机时,PSDK没有任何问题。

    但是使用M300飞机时,PsdkTestWidget_GetWidgetValue这个函数返回给我list的index和遥控器上面显示并不能对应。且有很多时候遥控器点击某个list选项进行更改时,没有实际下发到PSDK端,未造成实际的更改。但有时候又能正确的下发并更改,这些问题在M210上面都不存在。

    假如我让飞机重新上电,我printf出来PsdkTestWidget_GetWidgetValue获取的参数如下图,参数与我挂载设备的实际参数对应,我正确给PSDK上传了index,但是这时候遥控器的所有list都是index 0的选项,没有正确刷新

    0
    Comment actions Permalink
  • Hyacincher

    负载设备使用同一台设备,没有改动任何固件。前后挂载在M210和M300飞机上进行测试。

    实测将遥控器固件版本从V04.00.0200回退到V01.00.0108版本后功能恢复正常

    0
    Comment actions Permalink
  • DJI Developer Support
    您这个现象看起来像是bug,建议您先检查确认M300固件版本、遥控器固件版本和APP版本升级至最新版本,若问题依旧存在,麻烦提供APP上版本界面截图,我们将对应实测确认。
    0
    Comment actions Permalink
  • Hyacincher

    您好,固件版本截图如下。飞机和遥控器都升级到了最新的版本,问题依然存在

    0
    Comment actions Permalink
  • DJI Developer Support
    如果不行,建议提供一下具体的json文件以及必要的设置部分代码。
    0
    Comment actions Permalink
  • Hyacincher
    static T_PsdkReturnCode PsdkTestWidget_SetWidgetValue(E_PsdkWidgetType widgetType, uint32_t index, int32_t value,
                                                          void *userData)
    {
            s_widgetValueList[index] = value;
            switch(index)
            {
                case 0:
                    psdk_set_distance_mode(value);
                    break;
                case 1: 
                    psdk_set_distance_value(value);
                    break;
                case 2:
                    psdk_set_cm_repair(value);
                    break;
                default:
                    if(set_cm_params_cmd(index, value))
                    {
                    }
                    break;
            }
        return PSDK_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }
    static T_PsdkReturnCode PsdkTestWidget_GetWidgetValue(E_PsdkWidgetType widgetType, uint32_t index, int32_t *value, void *userData)
    {
          *value = s_widgetValueList[index];
          printf("psdk get index:%d val:%d \n", index, *value);
        return PSDK_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }

    static void *PsdkTest_WidgetTask(void *arg)
    {
        char message[PSDK_WIDGET_FLOATING_WINDOW_MSG_MAX_LEN];
        uint32_t sysTimeMs = 0;
        T_PsdkReturnCode psdkStat;

        USER_UTIL_UNUSED(arg);

        while (1) {

            int32_t Value;
            for(uint16_t ii = 3 ; ii < 8 ;ii++)
            {
                get_cm_params_cmd(ii, &Value);
                s_widgetValueList[ii] = Value;
            }
            PsdkOsal_TaskSleepMs(200);
        }
    }

    当前定位到的具体现象为:当遥控器没有实际点击某一选项的时候,我通过PSDK能成功上传我的参数,但是遥控器上不会进行更新。

    这将会导致一些问题:如果我的负载设备开机各个widget初始值并不为0,这时如果不点击遥控器上选项的更改,所有选项都显示为0,但是此时get回调函数上传的值都不为0

    当前我使用PSDK版本V2.2.1,麻烦您测试一下如下场景是否有异常现象

    1、将遥控器及飞机开机

    2、不要点击任何遥控器任何选项

    3、通过其他方式(不使用遥控器,比如通过如上代码块中的task去更改)让负载设备上传不为0的widget值

    4、观察此时遥控器是否能正确跟随负载设备上传的值进行widget更新

    当前测试结果:

    1、同样的负载设备在M210任意飞机/遥控器版本可随时跟随上传值进行widget更新

    2、M300配备的带屏遥控器固件版本在03.00.0000及以下也可以跟随上传值进行动态更新,以上的版本测试不正常

    0
    Comment actions Permalink
  • Hyacincher

    这是json文件

    {
      "version":  {
          "major" :  1,
          "minor" :  0
      },
      "main_interface": {
          "floating_window": {
              "is_enable": true
          }
      },
      "config_interface": {
          "widget_list": [
              {
                  "widget_index": 0,
                  "widget_type": "switch",
                  "widget_name": "等距拍照开关"
              },
              {
                  "widget_index": 1,
                  "widget_type": "int_input_box",
                  "widget_name": "等距拍照间距",
                  "int_input_box_hint": "单位 : 厘米"
              },
              {
                  "widget_index": 2,
                  "widget_type": "button",
                  "widget_name": "相机修复"
              },
              {
                  "widget_index": 3,
                  "widget_type": "list",
                  "widget_name": "快门",
                  "list_item": [
                      {
                          "item_name": "1/100"
                      },
                      {
                          "item_name": "1/125"
                      },
                      {
                          "item_name": "1/160"
                      },
                      {
                          "item_name": "1/200"
                      },
                      {
                          "item_name": "1/250"
                      },
                      {
                          "item_name": "1/320"
                      },
                      {
                          "item_name": "1/400"
                      },
                      {
                          "item_name": "1/500"
                      },
                      {
                          "item_name": "1/640"
                      },
                      {
                          "item_name": "1/800"
                      },
                      {
                          "item_name": "1/1000"
                      },
                      {
                          "item_name": "1/1250"
                      },
                      {
                          "item_name": "1/1600"
                      },
                      {
                          "item_name": "1/2000"
                      }
                  ]
              },          
              {
                  "widget_index": 4,
                  "widget_type": "list",
                  "widget_name": "ISO",
                  "list_item": [
                      {
                          "item_name": "AUTO"
                      },
                      {
                          "item_name": "100"
                      },
                      {
                          "item_name": "125"
                      },
                      {
                          "item_name": "160"
                      },
                      {
                          "item_name": "200"
                      },
                      {
                          "item_name": "250"
                      },
                      {
                          "item_name": "320"
                        },

                        {

                            "item_name": "400"

                        },

                        {

                            "item_name": "500"

                        },

                        {

                            "item_name": "640"

                        },

                        {

                            "item_name": "800"

                        },

                        {

                            "item_name": "1000"

                        },

                        {

                            "item_name": "1250"

                        },

                        {

                            "item_name": "1600"

                        }

                    ]

                },

                {

                    "widget_index": 5,

                    "widget_type": "list",

                    "widget_name": "EV",

                    "list_item": [

                        {

                            "item_name": "-2.0"

                        },

                        {

                            "item_name": "-1.7"

                        },

                        {

                            "item_name": "-1.3"

                        },

                        {

                            "item_name": "-1.0"

                        },

                        {

                            "item_name": "-0.7"

                        },

                        {

                            "item_name": "-0.3"

                        },

                        {

                            "item_name": "0"

                        },

                        {

                            "item_name": "0.3"

                        },

                        {

                            "item_name": "0.7"

                        },

                        {

                            "item_name": "1.0"

                        },

                        {

                            "item_name": "1.3"

                        },

                        {

                            "item_name": "1.7"

                        },

                        {

                            "item_name": "2.0"

                        }

                    ]

                },

                {

                    "widget_index": 6,

                    "widget_type": "list",

                    "widget_name": "白平衡",

                    "list_item": [

                        {

                            "item_name": "自动"

                        },

                        {

                            "item_name": "日光"

                        },

                        {

                            "item_name": "阴影"

                        },

                      {
                            "item_name": "阴天"

                        }

                    ]

                },

                {

                    "widget_index": 7,

                    "widget_type": "list",

                    "widget_name": "WDR",

                    "list_item": [

                        {

                            "item_name": "OFF"

                        },

                        {

                            "item_name": "AUTO"

                        },

                      {
                          "item_name": "MED"
                      },
                      {
                          "item_name": "HIG"
                      }
                  ]
              }
          ]
      }
    }
    0
    Comment actions Permalink
  • DJI Developer Support
    在main interface中也添加一个控件试试,APP端有bug,仅添加main_interface或仅添加config_interface控件可能会存在该异常现象,这个需要APP修复,我们已经反馈给Pilot APP进行修复,当前可能要先添加一个无效控件。 ![](https://djisdksupport.zendesk.com/attachments/token/nwvfXIPXhlCDtOetZfRGXwwNJ/?name=image.png)
    0
    Comment actions Permalink
  • Hyacincher

    我试了可以的,现在能正常获取

    0
    Comment actions Permalink
  • DJI Developer Support
    那看起来就是同样的问题,暂时可以同时添加main_interface和config_interface控件来使用,后续等Pilot APP端修复这个问题。
    0
    Comment actions Permalink

Please sign in to leave a comment.