Added support for sending multiple datarefs to the MATLAB client.

This commit is contained in:
Jason Watkins
2015-05-07 15:19:59 -07:00
parent e0c0f2f6bd
commit 22a864a8dc
3 changed files with 44 additions and 27 deletions

View File

@@ -1,16 +1,7 @@
function sendDREF( dref, value, socket )
% sendDREF Sends a command to X-Plane that sets the given DREF.
%
% Inputs
% dref: The name of the X-Plane dataref to set.
% Value: An array of floating point values whose structure depends on the dref specified.
% socket (optional): The client to use when sending the command.
%
% Use
% 1. import XPlaneConnect.*
% 2. dataRef = 'sim/aircraft/parts/acf_gear_deploy'; // Landing Gear
% 3. Value = 0;
% 4. status = setDREF(dataRef, Value);
% sendDREFs Sends a command to X-Plane that sets the given DREF. This
% function is now an alias to sendDREFs. It is kept only for backwards
% compatibility.
%
% Contributors
% [CT] Christopher Teubert (SGT, Inc.)
@@ -20,19 +11,8 @@ function sendDREF( dref, value, socket )
import XPlaneConnect.*
%% Get client
global clients;
if ~exist('socket', 'var')
assert(isequal(length(clients) < 2, 1), '[setDREF] ERROR: Multiple clients open. You must specify which client to use.');
if isempty(clients)
socket = openUDP();
else
socket = clients(1);
end
sendDREFs(dref, value)
else
sendDREFs(dref, value, socket)
end
%% Validate input
value = single(value);
%%Send command
socket.sendDREF(dref, value);

View File

@@ -0,0 +1,37 @@
function sendDREFs( drefs, values, socket )
% sendDREFs Sends a command to X-Plane that sets the given DREF(s).
%
% Inputs
% dref: The name or names of the X-Plane dataref(s) to set.
% Value: An array or an multidimensional array of floating point values
% whose structure depends on the dref specified.
% socket (optional): The client to use when sending the command.
%
% Use
% 1. import XPlaneConnect.*
% 2. dataRef = 'sim/aircraft/parts/acf_gear_deploy'; // Landing Gear
% 3. Value = 0;
% 4. status = setDREF(dataRef, Value);
%
% Contributors
% [JW] Jason Watkins
% jason.w.watkins@nasa.gov
import XPlaneConnect.*
%% Get client
global clients;
if ~exist('socket', 'var')
assert(isequal(length(clients) < 2, 1), '[setDREF] ERROR: Multiple clients open. You must specify which client to use.');
if isempty(clients)
socket = openUDP();
else
socket = clients(1);
end
end
%% Validate input
values = single(values);
%%Send command
socket.sendDREFs(drefs, values);