2016-06-24 85 views
1

我試圖設置運行時深度幀率,但它不成功。沒有錯誤返回,但深度幀率保持不變。我用下面的代碼設置了深度幀率。設置運行時深度幀率不成功

TangoErrorType SetRuntimeDepthFrameRate(uint32_t frameRate) 
{ 
    TangoConfig runtimeConfig = TangoService_getConfig(TANGO_CONFIG_RUNTIME); 
    if (runtimeConfig == nullptr) { 
     LOGE("failed to get runtime config"); 
     return TANGO_ERROR; 
    } 
    TangoErrorType err = TangoConfig_setInt32(runtimeConfig, "config_runtime_depth_framerate", frameRate); 
    if (err != TANGO_SUCCESS) { 
     LOGE("failed to set runtime depth framerate to %d", frameRate); 
     return err; 
    } 
    err = TangoService_setRuntimeConfig(runtimeConfig); 
    if (err != TANGO_SUCCESS) 
     LOGE("ailed to set runtime config"); 

    LOGI("the runtime depth framerate is set to %d", GetRuntimeDepthFrameRate()); 

    return err; 
} 

我用下面的代碼查詢運行時深度幀率。

int GetRuntimeDepthFrameRate() const { 
    TangoConfig runtimeConfig = TangoService_getConfig(TANGO_CONFIG_RUNTIME); 
    if (runtimeConfig == nullptr) { 
     LOGE("failed to get runtime config"); 
     return -1; 
    } 
    int32_t depthFrameRate; 
    TangoErrorType err = TangoConfig_getInt32(runtimeConfig, "config_runtime_depth_framerate", &depthFrameRate); 
    if (err != TANGO_SUCCESS) { 
     LOGE("failed to get runtime depth framerate"); 
     return -1; 
    } 
    return depthFrameRate; 
} 

運行時深度幀速率從未改變,它總是5.我的程序不斷調用深度回調,當我嘗試深度率設置爲0,這意味着率不設置成功。

我在做什麼有什麼不對嗎? 感謝您提前提供任何答案。

+0

嗨,亞歷克斯,你是否調用值高於5的函數?在當前的Tango設備上,它可以運行的最大深度框架是5hz。 –

+0

不,我只能以支持的幀速率調用函數。就像我說的,我將幀率設置爲0,但設備仍在掃描深度。 – Alex

回答

0

我也無法將幀速率設置爲5以外的任何值,而不是C++或Java。

在Yellowstone平板電腦和Lenovo Phab2 Pro,Tango SDK版本Wasat上進行了測試(版本1.44,2016年9月)。

1

這有點舊,但它可能會幫助某人:經過一些實驗後,我發現仍然無法通過API在運行時使用ENABLE_DEPTH_PERCEPTION_BOOL(我正在使用Unity SDK)開啓/關閉深度感知功能。根據需要打開和關閉電源(以節省電池和CPU)的唯一方法是以深度ON開始並在OnTangoServiceConnected()之後使用RUNTIME_DEPTH_FRAMERATE將幀率設置爲0。稍後通過將幀率設置爲5再次啓用它可以正常工作。