48 lines
1.5 KiB
Matlab
48 lines
1.5 KiB
Matlab
function sendDATA(data, socket)
|
|
% sendDATA Send X-Plane formatted DATA over UDP
|
|
%
|
|
% Inputs
|
|
% data: X-Plane formatted data. Is a matlab structure with the following fields:
|
|
% .h: Header array containing header numbers corresponding to values in the X-Plane UDP Data screen.
|
|
% .d: 2-D Data array. Each row contains eight values corresponding to the header value (.h(1) corresponds to .d(1,:))
|
|
% socket (optional): The client to use when sending the command.
|
|
%
|
|
% Use
|
|
% 1. import XPlaneConnect.*;
|
|
% 2. data = struct('h',27,'d',[1,-998,-998,-998,-998,-998,-998,-998]);
|
|
% 3. %Send the data array to port 49005 on the computer at IP address 172.0.100.54.
|
|
% 4. status = sendDATA(data, '172.0.100.54', 49005);
|
|
%
|
|
% Note: send the value -998 to not overwrite that parameter. That is, if -998 is sent, the parameter will stay at the current X-Plane value
|
|
%
|
|
% Contributors
|
|
% [CT] Christopher Teubert (SGT, Inc.)
|
|
% christopher.a.teubert@nasa.gov
|
|
%
|
|
% To Do
|
|
%
|
|
% BEGIN CODE
|
|
|
|
import XPlaneConnect.*
|
|
|
|
%% Get client
|
|
global clients;
|
|
if ~exist('socket', 'var')
|
|
assert(isequal(length(clients) < 2, 1), '[sendDATA] ERROR: Multiple clients open. You must specify which client to use.');
|
|
if isempty(clients)
|
|
socket = openUDP();
|
|
else
|
|
socket = clients(1);
|
|
end
|
|
end
|
|
|
|
%% Validate input
|
|
javaData = [];
|
|
for i = 1:length(data.h);
|
|
javaData = [javaData; data.h(i) data.d(i, 1:8)];
|
|
end
|
|
|
|
%% Send command
|
|
socket.sendDATA(javaData);
|
|
|