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.

MMWAVE-STUDIO: How to execute lua script with cmd instead of the run key or lua shell when mmWave studio is already open?

Part Number: MMWAVE-STUDIO


Hi team,

Here's an issue from the customer may need your help:

Based on mmWave_studio_user_guide, C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\RunTime\mmWaveStudio.exe  /lua C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Scripts\Automation.lua this instruction enables launching mmWave studio and collecting data automatically in cmd. However, the script automatically disconnects and exits studio once the data has been captured.

So the customer has split Automation.lua into two parts, the first lua script (setup.lua) is to initialize studio and the second lua script (start.lua) is to start collecting data.(the instruction is C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\RunTime>mmWaveStudio.exe  /lua C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Scripts\setup.lua)

When the first script is executed with cmd, try executing the second script through cmd instead of using run in studio. If use the same instructions above, it will get an error stating that studio has been opened.

How to execute a second lua script with cmd instead of run with mmWave studio already open?

The following is setup.lua, and the customer notes the capture data, disconnect and close functions: 

---------------------------------- STARTUP -------------------------------------
------------------------ DO NOT MODIFY THIS SECTION ----------------------------

-- mmwavestudio installation path
RSTD_PATH = RSTD.GetRstdPath()

-- Declare the loading function
dofile(RSTD_PATH .. "\\Scripts\\Startup.lua")

------------------------------ CONFIGURATIONS ----------------------------------
-- Use "DCA1000" for working with DCA1000
capture_device  = "DCA1000"

-- SOP mode
SOP_mode        = 2

-- RS232 connection baud rate
baudrate        = 115200
-- RS232 COM Port number
uart_com_port   = 19
-- Timeout in ms
timeout         = 1000

-- BSS firmware
bss_path        = "C:\\ti\\mmwave_studio_02_01_01_00\\rf_eval_firmware\\radarss\\xwr16xx_radarss.bin"
-- MSS firmware
mss_path        = "C:\\ti\\mmwave_studio_02_01_01_00\\rf_eval_firmware\\masterss\\xwr16xx_masterss.bin"

adc_data_path   = "C:\\ti\\mmwave_studio_02_01_01_00\\mmWaveStudio\\PostProc\\test_data1.bin"

------------------------- Connect Tab settings ---------------------------------
-- Select Capture device
ret=ar1.SelectCaptureDevice(capture_device)
if(ret~=0)
then
    print("******* Wrong Capture device *******")
    return
end

-- SOP mode
ret=ar1.SOPControl(SOP_mode)
RSTD.Sleep(timeout)
if(ret~=0)
then
    print("******* SOP FAIL *******")
    return
end

-- RS232 Connect
ret=ar1.Connect(uart_com_port,baudrate,timeout)
RSTD.Sleep(timeout)
if(ret~=0)
then
    print("******* Connect FAIL *******")
    return
end

-- Download BSS Firmware
ret=ar1.DownloadBSSFw(bss_path)
RSTD.Sleep(2*timeout)
if(ret~=0)
then
    print("******* BSS Load FAIL *******")
    return
end

-- Download MSS Firmware
ret=ar1.DownloadMSSFw(mss_path)
RSTD.Sleep(2*timeout)
if(ret~=0)
then
    print("******* MSS Load FAIL *******")
    return
end

-- SPI Connect
ar1.PowerOn(0, 1000, 0, 0)

-- RF Power UP
ar1.RfEnable()

------------------------- Other Device Configuration ---------------------------

-- ADD Device Configuration here

ar1.ChanNAdcConfig(1, 1, 0, 1, 1, 1, 1, 2, 1, 0)

ar1.LPModConfig(0, 0)

ar1.RfInit()

ar1.SetCalMonFreqLimitConfig(77,81)

RSTD.Sleep(1000)

ar1.DataPathConfig(513, 1216644097, 0)

ar1.LvdsClkConfig(1, 1)

ar1.LVDSLaneConfig(0, 1, 1, 0, 0, 1, 0, 0)

--ar1.SetTestSource(4, 3, 0, 0, 0, 0, -327, 0, -327, 327, 327, 327, -2.5, 327, 327, 0, 0, 0, 0, -327, 0, -327, 
--                     327, 327, 327, -95, 0, 0, 0.5, 0, 1, 0, 1.5, 0, 0, 0, 0, 0, 0, 0)
                      
ar1.ProfileConfig(0, 77, 7, 1, 50, 0, 0, 0, 0, 0, 0, 29.982, 0, 256, 6000, 0, 0, 30)

ar1.ChirpConfig(0, 0, 0, 0, 0, 0, 0, 1, 0, 0)

ar1.DisableTestSource(0)

ar1.FrameConfig(0, 0, 0, 128, 40, 0, 0, 1)

ar1.CaptureCardConfig_EthInit("192.168.33.30", "192.168.33.180", "12:34:56:78:90:12", 4096, 4098)

ar1.CaptureCardConfig_Mode(1, 2, 1, 2, 3, 30)

ar1.CaptureCardConfig_PacketDelay(25)

--Start Record ADC data
--ar1.CaptureCardConfig_StartRecord(adc_data_path, 1)
--RSTD.Sleep(1000)

--Trigger frame
--ar1.StartFrame()
--RSTD.Sleep(5000)

------------------------- Close the Connection ---------------------------------
-- SPI disconnect
--ar1.PowerOff()

-- RS232 disconnect
--ar1.Disconnect()

------------------------- Exit MMwave Studio GUI -----------------------------------
--os.exit()

-- end

The following is start.lua, which retains the ability to acquire data only:

--Start Record ADC data
ar1.CaptureCardConfig_StartRecord(adc_data_path, 1)
RSTD.Sleep(1000)

--Trigger frame
ar1.StartFrame()
RSTD.Sleep(5000)

Could you help check this case? Thanks.

Best Regards,

Cherry