-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathInit_RSTD_Connection.m
58 lines (55 loc) · 2.15 KB
/
Init_RSTD_Connection.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% INITIALIZE CONNECTION WITH TI AWR144 FMCW RADAR
%
% CREATED BY:
% MUHAMMET EMIN YANIK
%
% ADVISOR:
% PROFESSOR MURAT TORLAK
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ErrStatus = Init_RSTD_Connection(RSTD_DLL_Path)
%This script establishes the connection with Radarstudio software
% Pre-requisites:
% Type RSTD.NetStart() in Radarstudio 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;
elseif ~RtttNetClientAPI.RtttNetClient.IsConnected() %Not the first time but port is diconnected
% 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;
else
Init_RSTD_Connection = 0;
end
if Init_RSTD_Connection
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 Radarstudio');
disp('Reopen port in Radarstudio. 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('Radarstudio Connection Failed');
end
disp('Test message success');
end