新版本PSDK3.0.0用于OSDK设备,fc_subscription等模块功能无法初始化,无论是否在dji_sd...

Completed

Comments

6 comments

  • Neil

    该部分测试代码与效果如下:

    USER_LOG_ERROR("INSIDE MAIN LOGGING13");
    returnCode = ChangeAlias();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("set alias error");
    return DJI_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR;
    }

    if (aircraftInfoBaseInfo.mountPosition == DJI_MOUNT_POSITION_EXTENSION_PORT) {
    USER_LOG_ERROR("INSIDE MAIN LOGGING14");
    returnCode = DjiTest_DataTransmissionStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("data transmission init error");
    }

    USER_LOG_ERROR("INSIDE MAIN LOGGING15");
    returnCode = DjiTest_WidgetInteractionStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("widget interaction sample init error");
    }
    } else {
    #ifdef CONFIG_MODULE_SAMPLE_POWER_MANAGEMENT_ON
    T_DjiTestApplyHighPowerHandler applyHighPowerHandler = {
    .pinInit = DjiTest_HighPowerApplyPinInit,
    .pinWrite = DjiTest_WriteHighPowerApplyPin,
    };

    USER_LOG_ERROR("INSIDE MAIN LOGGING16");
    returnCode = DjiTest_RegApplyHighPowerHandler(&applyHighPowerHandler);
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("regsiter apply high power handler error");
    }

    USER_LOG_ERROR("INSIDE MAIN LOGGING17");
    returnCode = DjiTest_PowerManagementStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("power management init error");
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_CAMERA_EMU_ON
    if(!strncmp(mega.model, "MP140", 5)){
    USER_LOG_ERROR("INSIDE MAIN LOGGING18");
    returnCode = DjiTest_CameraEmuBaseStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("camera emu common init error");
    }
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_CAMERA_MEDIA_ON
    // if(!strncmp(mega.model, "MP140", 5)){
    USER_LOG_ERROR("INSIDE MAIN LOGGING19");
    returnCode = DjiTest_CameraEmuMediaStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("camera emu media init error");
    }
    // }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_FC_SUBSCRIPTION_ON
    USER_LOG_ERROR("INSIDE MAIN LOGGING20");
    returnCode = DjiTest_FcSubscriptionStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("data subscription sample init error\n");
    USER_LOG_ERROR("INSIDE MAIN LOGGINGGGG");
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_GIMBAL_ON
    if (aircraftInfoBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_SKYPORT_V2 ||
    aircraftInfoBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_NONE) {
    if (DjiTest_GimbalStartService() != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("psdk gimbal init error");
    }
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_XPORT_ON
    if (aircraftInfoBaseInfo.djiAdapterType == DJI_SDK_ADAPTER_TYPE_XPORT) {
    if (DjiTest_XPortStartService() != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("psdk xport init error");
    }
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_WIDGET_ON
    #if DJI_USE_WIDGET_INTERACTION
    USER_LOG_ERROR("INSIDE MAIN LOGGING1");
    returnCode = DjiTest_WidgetInteractionStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("widget interaction test init error");
    }
    #else
    USER_LOG_ERROR("INSIDE MAIN LOGGING1");
    returnCode = DjiTest_WidgetStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("widget sample init error");
    }
    #endif
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_DATA_TRANSMISSION_ON
    USER_LOG_ERROR("INSIDE MAIN LOGGING21");
    returnCode = DjiTest_DataTransmissionStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("widget sample init error");
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_MOP_CHANNEL_ON
    USER_LOG_ERROR("INSIDE MAIN LOGGING22");
    returnCode = DjiTest_MopChannelStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("mop channel sample init error");
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_PAYLOAD_COLLABORATION_ON
    USER_LOG_ERROR("INSIDE MAIN LOGGING23");
    returnCode = DjiTest_PayloadCollaborationStartService();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("Payload collaboration sample init error\n");
    }
    #endif

    #ifdef CONFIG_MODULE_SAMPLE_UPGRADE_ON
    T_DjiTestUpgradePlatformOpt linuxUpgradePlatformOpt = {
    .rebootSystem = DjiUpgradePlatformLinux_RebootSystem,
    .cleanUpgradeProgramFileStoreArea = DjiUpgradePlatformLinux_CleanUpgradeProgramFileStoreArea,
    .createUpgradeProgramFile = DjiUpgradePlatformLinux_CreateUpgradeProgramFile,
    .writeUpgradeProgramFile = DjiUpgradePlatformLinux_WriteUpgradeProgramFile,
    .readUpgradeProgramFile = DjiUpgradePlatformLinux_ReadUpgradeProgramFile,
    .closeUpgradeProgramFile = DjiUpgradePlatformLinux_CloseUpgradeProgramFile,
    .replaceOldProgram = DjiUpgradePlatformLinux_ReplaceOldProgram,
    .setUpgradeRebootState = DjiUpgradePlatformLinux_SetUpgradeRebootState,
    .getUpgradeRebootState = DjiUpgradePlatformLinux_GetUpgradeRebootState,
    .cleanUpgradeRebootState = DjiUpgradePlatformLinux_CleanUpgradeRebootState,
    };
    T_DjiTestUpgradeConfig testUpgradeConfig = {
    .firmwareVersion = {1, 0, 0, 0},
    .transferType = DJI_FIRMWARE_TRANSFER_TYPE_FTP,
    .needReplaceProgramBeforeReboot = true
    };
    if (DjiTest_UpgradeStartService(&linuxUpgradePlatformOpt, testUpgradeConfig) !=
    DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("psdk upgrade init error");
    }
    #endif
    }

    USER_LOG_ERROR("INSIDE MAIN LOGGING24");
    returnCode = DjiCore_ApplicationStart();
    if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
    USER_LOG_ERROR("start sdk application error");
    }

    USER_LOG_ERROR("INSIDE MAIN LOGGING25");
    if (pthread_create(&s_monitorThread, NULL, DjiUser_MonitorTask, NULL) != 0) {
    USER_LOG_ERROR("create monitor task fail.");
    }

    USER_LOG_ERROR("INSIDE MAIN LOGGING26");
    if (pthread_setname_np(s_monitorThread, "monitor task") != 0) {
    USER_LOG_ERROR("set name for monitor task fail.");
    }

     

    0
    Comment actions Permalink
  • DJI Developer Support
    您好,能否提供下SDK这边的报错无法初始化log,您提供的log应该是您自己程序里的log。
    0
    Comment actions Permalink
  • Neil

    这是PSDK3.0 main.c里的一段代码,log只是表示这里有没有跑通,可以用任何log。这段旨在表明16到23的模块都没有用,想问下是不是psdk3.0的这部分是没有开通或者是有哪里的配置问题

    0
    Comment actions Permalink
  • DJI Developer Support
    OSDK设备开发可以不需要使用宏定义,直接调用FC相关的API即可,参考sample中的使用。 ![](https://djisdksupport.zendesk.com/attachments/token/uCtpwhYu6Jp5jengXY7OgSoLt/?name=inline-1650046138.png)​
    0
    Comment actions Permalink
  • Neil

    是不是OSDK的订阅模块与PSDK的订阅模块是不同的?PSDK是DjiTest_FcSubscriptionStartService(),OSDK是DjiFcSubscription_Init()?

    0
    Comment actions Permalink
  • DJI Developer Support
    实际调用的SDK从飞机获取订阅数据的接口是一样的,这个是sample实作直接开宏定义,对应的PSDK云台接口的功能。 进入这个服务接口中,调用的API与前面提供的API是一样的。 ![](https://djisdksupport.zendesk.com/attachments/token/LOvshedj3jJV9Wy9QH60tgqkT/?name=inline-1460106408.png)​
    0
    Comment actions Permalink

Please sign in to leave a comment.