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.

RTOS/TDA3XEVM: Changing parameters which was set while links created, after chain got started

Part Number: TDA3XEVM

Tool/software: TI-RTOS

Hi,

We are running rear view panorama usecase in VisionSDK3.1on Tda3x. In this usecase its using single channel to master and control other channel's exposure.

We require to change the exposure control from single channel master to individual channel control while the usecase is running.

Is it possible to change this parameter as it was set before (at the time of create ) the start App (start chain).

  • Hi Jishana,

    What do you mean by single channel master to individual channel?
    I think the current usecase calculates parameters from one of the channel and applies for all channels..

    Regards,
    Brijesh
  • Hi Brijesh,
    Thanks for the reply, yes what you said was correct only. we need to change that scenario like in day time the exposure parameter is single channel master control and in night we are planing to change each camera exposure independently.

    Is that possible to change dynamically.
  • Hi Jishana,

    Unfortunately, dynamically changing this scheme is not supported in the current code. You will have to add it.
    Probably what you could do is,
    you could open algorithm in individual channel mode, add a control command to decide whether to use individual channel or single channel for exposure control and use this command for changing this scheme..

    Regards,
    Brijesh
  • Hi Brijesh,

    Thanks for the reply,

    Can you pls share any other control command which is implementing the dynamic change in the same usecase as an example to implement the same.
  • Well, there are many commands in AEWB, which supports dynamic change. one of them is ALGORITHM_AEWB_LINK_CMD_SET_AE_DYNAMIC_PARAMS It allows to set AE Dynamic parameters at runtime.. You could use this as example.

    Regards,
    Brijesh
  • Hi Brijesh,
    I have tried using control command for dynamically changing the exposure channel control, we are facing some issue like control command is sending but exposure control is not changing.

    Initially we made runAewbOnlyForOneCh = FALSE; then as dynamicaly tried to change same as TRUE,

    Following is the code part, we tried to implement so is, we have added our custom function in chains_RVP_TDA3X.c


    Void switchAewbChannel(chains_RVP_TDA3XObj *ucObj)
    {
    Int32 status;
    ucObj->Alg_IssAewbPrm.baseClassControl.controlCmd = ALGORITHM_AEWB_LINK_CMD_SET_INDIVIDUAL_EXPOSURE;
    ucObj->Alg_IssAewbPrm.baseClassControl.size = sizeof(ucObj->Alg_IssAewbPrm);

    status = System_linkControl(ucObj->Alg_IssAewbLinkID, ALGORITHM_LINK_CMD_CONFIG,
    &ucObj->Alg_IssAewbPrm,
    sizeof(ucObj->Alg_IssAewbPrm),
    FALSE);

    UTILS_assert(SYSTEM_LINK_STATUS_SOK == status);

    }

    The added control command is """ ALGORITHM_AEWB_LINK_CMD_SET_INDIVIDUAL_EXPOSURE """. and we have added the --AlgorithmLink_ControlParams baseClassControl -- to the structure ""chains_RVP_TDA3XObj"" to include the control command field.


    Next we have added the other end as

    case ALGORITHM_AEWB_LINK_CMD_SET_INDIVIDUAL_EXPOSURE:
    {
    individualPrms = (AlgorithmLink_IssAewbCreateParams *)
    pControlParams;

    if (NULL != individualPrms)
    {
    pAlgObj->algLinkCreateParams.runAewbOnlyForOneCh = TRUE;

    }
    else
    {

    pAlgObj->algLinkCreateParams.runAewbOnlyForOneCh = FALSE;
    break;
    }
    }
    and the case part is not running, we are not getting the debug prints.
  • First can you check if the control command is received correct? Put some Vps_prints in the processing of this case block and see if these prints are coming on console when you send control commands..

    Rgds,
    Brijesh
  • Hi,
    we put debug prints and it is not coming.. but after the System_linkControl() the prints are coming, so we made a conclusion that control command is sending not receiving.
  • Hi,

    Can you put print in the AlgorithmLink_issAewb1Control and see if this is getting called?

    If this is not getting called for your linkControl Command, then your link id is wrong or the parameter is wrong.

    Regards,
    brijesh
  • Hi Brijesh,
    Thankyou for the help, our issue got solved.

    We changed the function and is

    Void switchAewbChannel_individual()
    {
    Int32 status;
    chains_RVP_TDA3XObj *ucObj = NULL;
    AlgorithmLink_IssAewbAeControlParams individualParams;
    individualParams.baseClassControl.controlCmd = ALGORITHM_AEWB_LINK_CMD_SET_INDIVIDUAL_EXPOSURE;
    individualParams.baseClassControl.size = sizeof(individualParams);
    status = System_linkControl(ucObj->Alg_IssAewbLinkID, ALGORITHM_LINK_CMD_CONFIG, &individualParams, sizeof(individualParams),
    FALSE);
    UTILS_assert(SYSTEM_LINK_STATUS_SOK == status);
    }