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.

IWR1642BOOST: CLI fails in Visualizer's cfg file

Part Number: IWR1642BOOST
Other Parts Discussed in Thread: UNIFLASH

Hello.

When running Visualizer (C:\ti\mmwave_industrial_toolbox_2_4_0\labs\lab0013_traffic_monitoring_16xx\gui\tm_demo.m) of Traffic Monitor Lab, the following error occurs in CLI.
----------
mmwDemo:/>allocationParam 60 60 1.0 3 2.8 2.0
Error: Invalid usage of the CLI command
----------

The allocationParam in [mmw_tm_demo_ph2.cfg] passes 7 arguments to the CLI, but the CLI says "If the argument is not 6, it is an error."

C:\ti\mmwave_industrial_toolbox_2_4_0\labs\lab0013_traffic_monitoring_16xx\chirp_configs\mmw_tm_demo_ph2.cfg
----------
allocationParam 60 60 1.0 3 2.8 2.0
----------

C:\ti\mmwave_industrial_toolbox_2_4_0\labs\lab0013_traffic_monitoring_16xx\src\mss\task_app.c
----------

int32_t MmwDemo_CLIAllocationParamCfg (int32_t argc, char* argv[])
{


    /* Sanity Check: Minimum argument check */
    if (argc != 6)
    {
        CLI_write ("Error: Invalid usage of the CLI command\n");
        return -1;
    }

----------

Is the cfg file incorrect?

Thanks.

  • Former Member
    0 Former Member
    Hello Koji,

    The cfg file should be correct. If you use the pre-compiled binary and load the cfg do you still see an error or does it run ok?

    Amanda
  • Hello Amanda.
    Thank you very much for always replying.

    Yes. I am using precompiled binaries.
    Specifically, we use UniFlash to flush the following binaries to the EVM:
    C:\ti\mmwave_industrial_toolbox_2_4_0\labs\lab0013_traffic_monitoring_16xx\prebuilt_binaries\traffic_monitoring_16xx_lab.bin

    The cfg to load with Visualizer is as follows.
    C:\ti\mmwave_industrial_toolbox_2_4_0\labs\lab0013_traffic_monitoring_16xx\chirp_configs\mmw_tm_demo_ph2.cfg

    I have not edited any of them.

    I investigated where the error occurred and analyzed what is happening.
    The results are as follows.

    ---------------------------------
    1.
    As shown below, the CLI assumes that the argument of allocationParam is 6.

    int32_t MmwDemo_CLIAllocationParamCfg (int32_t argc, char* argv[])
    {
    
    
        /* Sanity Check: Minimum argument check */
        if (argc != 6)
        {
            CLI_write ("Error: Invalid usage of the CLI command\n");
            return -1;
        }

    2.
    But, the allocationParam of mmw_tm_demo_ph2.cfg has seven arguments as follows.
    [allocationParam 60 60 1.0 3 2.8 2.0]
    (Command names 'allocationParam' are also counted as arguments)

    3.
    I thought about whether the argument of allocationParam is "6" or "7".
    I saw the following document.
    e2e.ti.com/.../Tracking-radar-targets-with-multiple-reflection-points.pdf

    There is an explanation of "Allocation Parameters" on page 28.
    There were six parameters that could be specified there.

    a)setSNRThre
    b)setSNRObscThre
    c)setVelThre
    d)setPointsThre
    e)maxDistanceThre
    f)maxVelThre

    This is the same as the content of allocationParam in mmw_tm_demo_ph2.cfg.
    Therefore, we assume that mmw_tm_demo_ph2.cfg is correct.

    4.
    Subsequently, I saw the CLI implementation.
    It was written as follows.

    int32_t MmwDemo_CLIAllocationParamCfg (int32_t argc, char* argv[])
    {
    
    
        /* Sanity Check: Minimum argument check */
        if (argc != 6)
        {
            CLI_write ("Error: Invalid usage of the CLI command\n");
            return -1;
        }
    
    	/* Initialize the ADC Output configuration: */
    	memset ((void *)&appAllocationParamTable, 0, sizeof(appAllocationParamTable));
    
    	
        /* Populate configuration: */
    	appAllocationParamTable[0].snrThre = (float) atof (argv[1]);
    	appAllocationParamTable[0].velocityThre = (float) atof (argv[2]);
    	appAllocationParamTable[0].pointsThre = (uint16_t) atoi (argv[3]);
    	appAllocationParamTable[0].maxDistanceThre = (float) atof (argv[4]);
    	appAllocationParamTable[0].maxVelThre = (float) atof (argv[5]);
    	
    	appAllocationParamTable[1].snrThre = (float) atof (argv[1]);
    	appAllocationParamTable[1].velocityThre = (float) atof (argv[2]);
    	appAllocationParamTable[1].pointsThre = (uint16_t) atoi (argv[3]);
    	appAllocationParamTable[1].maxDistanceThre = (float) atof (argv[4]);
    	appAllocationParamTable[1].maxVelThre = (float) atof (argv[5]);
    
    
    	return 0;
        
    }

    It seems to correspond as follows.
    a)setSNRThre -> argv[1]
    b)setSNRObscThre -> ?
    c)setVelThre -> argv[2]
    d)setPointsThre -> argv[3]
    e)maxDistanceThre -> argv[4]
    f)maxVelThre -> argv[5]

    That is, the CLI does not appear to be aware of 'b) setSNRObscThre'.
    ---------------------------------

    From the above, I guess that cfg and CLI do not match.

    The same problem is also reported in the following URLs.
    e2e.ti.com/.../2632661


    Thanks.

  • Former Member
    0 Former Member in reply to koji fukumoto

    mmw_tm_demo_ph2_corrected.cfgHello Koji,

    Thanks for your very detailed analysis. You are correct, this is a bug. It will be resolved in the next update. For now, the immediate solution is to modify the cfg file so that the allocationParam line reads allocationParam 60 1.0 3 2.8 2.0 I have made the change and attached the file here.

    The objective of the first setSNRThre and setSNRObscThre was to have the ability to apply two different thresholds for the case when one object is behind another object. For example if Car A is in front and Car B is behind it from the allocation parameter in ph2.cfg car A must have snr>setSNRThre and car B must have snr>setSNRObscThre. The intention was that if the parameters were instead 60 30, then it would be easier to track car B when it is partially obscured. However, in the testing this was not necessary to track both vehicles so the same threshold was used (60 60). If you modify allocationParam all tracked objects will have the same SNR threshold requirement that you specify.

    Amanda

  • Hello Amanda.

    Thank you for checking.
    Using the attached file, I was able to confirm that no error occurred.

    I am looking forward to the next update.
    When was that around?
    Where do I find out that I have been updated?

    Thank you.
  • Former Member
    0 Former Member in reply to koji fukumoto
    Hello Koji,

    There isn't an alert button for TIREX but typically there are monthly releases for the Industrial Toolbox. This would be about the end of the month or first week of the next.

    Thanks,
    Amanda