This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OPT-8241-CDK-EVM and Integration Duty Circle



Hi All,

I am trying to set the integration duty circle for the TOF device loaded with  MetrilusShortRange  profile.

The parameter is set as

void TOFApp::Init(int w, int h)
{
   _isRunning = false;
   _dimen.width = w;
   _dimen.height = h;
   _loopDelay = 20;
   _illum_power = 100U;
   _intg = 31U;
}

bool TOFApp::connect()
{
  FrameRate fr;
  fr.numerator = 15;
  fr.denominator = 1;
  _depthCamera->setFrameSize(_dimen); 
  _depthCamera->set("intg_duty_cycle", _intg);
  _depthCamera->set("illum_power_percentage", _illum_power);
  _depthCamera->setFrameRate(fr);
}

But when I check the parameter, illumination and frame rate are set correctly.

But the integration duty circle is 5.

So it didn't set correctly.

What could be wrong?

How I check is

FrameRate F;
_depthCamera->getFrameRate(F);
std::cout << "Frame rate " << F.getFrameRate() << endl;
uint v;
bool refresh = false;
_depthCamera->get("illum_power_percentage", v, refresh);
std::cout << "illum_power " << v << endl;
uint v1;
_depthCamera->get("intg_duty_cycle", v1, refresh);
std::cout << "intg_duty_cycle " << v1 << endl;

Integration duty circle is printed out as 5.

What is wrong? 

Thanks

  • intg_duty_cycle is restricted to 20 on the OPT8241-CDK-EVM for laser safety compliance. You can set a value of 20 or lower and it should work.

    By the way, I don't see where you set the MetrilusShortRange profile - you might want to check your code for that.
  • Many thanks Anand. I can set to 20. It works now.
    I set the profile as

    for(auto &p: profiles)
    {
    std::cout << p.first << ", " << p.second;

    if (p.second == "MetrilusShortRange")//Long Range// High Ambient//MetrilusLongRange//MetrilusShortRange
    profile_id = p.first;

    ConfigurationFile *c = _depthCamera->configFile.getCameraProfile(p.first);

    if(c && c->getLocation() == ConfigurationFile::IN_CAMERA)
    std::cout << " (HW)";

    std::cout << std::endl;
    }
    But I didn't put in the original post.
    But my images are a bit noisy compared to VoxelViewer images.
    I'll submit another post.
    Thanks for the reply.