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: 用MATLAB脚本控制mmwave studio采数,报错

Part Number: IWR1642BOOST

在MATLAB上跑完TI给的例程(RSTD_Interface_Example)之后,mmwavesudio中Output界面已经出现了“Running Man script from MATLAB”。再用MATLAB指令运行mmwave_studio_02_01_01_00\mmWaveStudio\Scripts\Automation.lua.(已将Automation.lua中的串口号改为上位机串口号)mmwave Output界面出现“未将对象引用设置到对象的实例”。

以下为mmwave中output的输出结果和MATLAB代码。第一次在TI论坛交流,有表达不到位的,还望各位前辈指正。

%% RSTD_Interface_Example.m
addpath(genpath('.\'))

% Initialize mmWaveStudio .NET connection
RSTD_DLL_Path = 'C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\Clients\RtttNetClientController\RtttNetClientAPI.dll';

ErrStatus = Init_RSTD_Connection(RSTD_DLL_Path);
if (ErrStatus ~= 30000)
    disp('Error inside Init_RSTD_Connection');
    return;
end

%Example Lua Command
strFilename = 'C:\\ti\\mmwave_studio_02_01_01_00\\mmWaveStudio\\Scripts\\Automation_1.lua';
Lua_String = sprintf('dofile("%s")',strFilename);
ErrStatus =RtttNetClientAPI.RtttNetClient.SendCommand(Lua_String);


%% Init_RSTD_Connection.m
function ErrStatus = Init_RSTD_Connection(RSTD_DLL_Path)
%This script establishes the connection with mmWaveStudio software
% Pre-requisites:
% Type RSTD.NetStart() in mmWaveStudio Luashell before running the script. This would open port 2777
% Returns 30000 if no error.
if (strcmp(which('RtttNetClientAPI.RtttNetClient.IsConnected'),'')) %First time the code is run after opening MATLAB
    disp('Adding RSTD Assembly');
    RSTD_Assembly = NET.addAssembly(RSTD_DLL_Path);
    if ~strcmp(RSTD_Assembly.Classes{1},'RtttNetClientAPI.RtttClient')
        disp('RSTD Assembly not loaded correctly. Check DLL path');
        ErrStatus = -10;
        return
    end
    Init_RSTD_Connection_1 = 1;
elseif ~RtttNetClientAPI.RtttNetClient.IsConnected() %Not the first time but port is disconnected
% Reason:
% Init will reset the value of Isconnected. Hence Isconnected should be checked before Init
% However, Isconnected returns null for the 1st time after opening MATLAB 
% (since init was never called before)
    Init_RSTD_Connection_1 = 1;
else
    Init_RSTD_Connection_1 = 0;
end

if Init_RSTD_Connection_1
	 disp('Initializing RSTD client');
	ErrStatus = RtttNetClientAPI.RtttNetClient.Init();
	if (ErrStatus ~= 0)
        disp('Unable to initialize NetClient DLL');
        return;
    end
	disp('Connecting to RSTD client');
	ErrStatus = RtttNetClientAPI.RtttNetClient.Connect('127.0.0.1',2777);
    if(ErrStatus ~= 0)
        disp('Unable to connect to mmWaveStudio');
        disp('Reopen port in mmWaveStudio. Type RSTD.NetClose() followed by RSTD.NetStart()');
        return;
    end
	pause(1);%Wait for 1sec. NOT a MUST have.
end

disp('Sending test message to RSTD');
Lua_String = 'WriteToLog("Running script from MATLAB\n", "green")';
ErrStatus = RtttNetClientAPI.RtttNetClient.SendCommand(Lua_String);
if (ErrStatus ~= 30000)
	disp('mmWaveStudio Connection Failed');
end
disp('Test message success');
end