Added support for GETP and GETC to MATLAB client.
This commit is contained in:
Binary file not shown.
29
MATLAB/+XPlaneConnect/getCTRL.m
Normal file
29
MATLAB/+XPlaneConnect/getCTRL.m
Normal file
@@ -0,0 +1,29 @@
|
||||
function ctrl = getCTRL(ac, socket)
|
||||
% getCTRL Gets control surface information for the specified aircraft
|
||||
%
|
||||
% Inputs
|
||||
% ac: The aircraft number to get control surface data for.
|
||||
% Outputs
|
||||
% posi: An array of values matching the the format used by sendCTRL
|
||||
|
||||
|
||||
import XPlaneConnect.*
|
||||
|
||||
%% Get client
|
||||
global clients;
|
||||
if ~exist('socket', 'var')
|
||||
assert(isequal(length(clients) < 2, 1), '[getCTRL] ERROR: Multiple clients open. You must specify which client to use.');
|
||||
if isempty(clients)
|
||||
socket = openUDP();
|
||||
else
|
||||
socket = clients(1);
|
||||
end
|
||||
end
|
||||
|
||||
%% Validate input
|
||||
ac = int32(ac);
|
||||
|
||||
%% Send command
|
||||
ctrl = socket.getCTRL(ac);
|
||||
|
||||
end
|
||||
29
MATLAB/+XPlaneConnect/getPOSI.m
Normal file
29
MATLAB/+XPlaneConnect/getPOSI.m
Normal file
@@ -0,0 +1,29 @@
|
||||
function posi = getPOSI(ac, socket)
|
||||
% getPOSI Gets position information for the specified aircraft
|
||||
%
|
||||
% Inputs
|
||||
% ac: The aircraft number to get position data for.
|
||||
% Outputs
|
||||
% posi: An array of values matching the the format used by sendPOSI
|
||||
|
||||
|
||||
import XPlaneConnect.*
|
||||
|
||||
%% Get client
|
||||
global clients;
|
||||
if ~exist('socket', 'var')
|
||||
assert(isequal(length(clients) < 2, 1), '[getPOSI] ERROR: Multiple clients open. You must specify which client to use.');
|
||||
if isempty(clients)
|
||||
socket = openUDP();
|
||||
else
|
||||
socket = clients(1);
|
||||
end
|
||||
end
|
||||
|
||||
%% Validate input
|
||||
ac = int32(ac);
|
||||
|
||||
%% Send command
|
||||
posi = socket.getPOSI(ac);
|
||||
|
||||
end
|
||||
15
TestScripts/MATLAB Tests/getCTRLTest.m
Normal file
15
TestScripts/MATLAB Tests/getCTRLTest.m
Normal file
@@ -0,0 +1,15 @@
|
||||
function getCTRLTest()
|
||||
%GETCTRLTEST Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
addpath('../../MATLAB')
|
||||
import XPlaneConnect.*
|
||||
|
||||
values = [10.0, 5.0, -5.0, 0.8, 1.0, 0.5, -1.5];
|
||||
sendCTRL(values, 0);
|
||||
actual = getCTRL(0);
|
||||
|
||||
assert(isequal(length(actual), length(values)));
|
||||
for i = 1:length(actual)
|
||||
assert(abs(actual(i) - values(i)) <1e-4)
|
||||
end
|
||||
end
|
||||
17
TestScripts/MATLAB Tests/getPOSITest.m
Normal file
17
TestScripts/MATLAB Tests/getPOSITest.m
Normal file
@@ -0,0 +1,17 @@
|
||||
function getPOSITest()
|
||||
%GETCTRLTEST Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
addpath('../../MATLAB')
|
||||
import XPlaneConnect.*
|
||||
|
||||
values = [ 37.524, -122.06899, 2500, 45, -45, 15, 1 ];
|
||||
pauseSim(1);
|
||||
sendPOSI(values, 0);
|
||||
actual = getPOSI(0);
|
||||
pauseSim(0);
|
||||
|
||||
assert(isequal(length(actual), length(values)));
|
||||
for i = 1:length(actual)
|
||||
assert(abs(actual(i) - values(i)) <1e-4)
|
||||
end
|
||||
end
|
||||
@@ -1,4 +1,4 @@
|
||||
function CTRLTest( )
|
||||
function sendCTRLTest( )
|
||||
%CTRLTest Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
%% Test player aircraft
|
||||
@@ -1,4 +1,4 @@
|
||||
function POSITest( )
|
||||
function sendPOSITest( )
|
||||
%POSITest Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
addpath('../../MATLAB')
|
||||
@@ -18,8 +18,10 @@ theTests = {{@openCloseTest, 'Open/Close Test', 0},...
|
||||
{@getDREFsTest,'Request DREF Test', 0},...
|
||||
{@sendDREFTest,'Send DREF Test', 0},...
|
||||
{@DATATest,'DATA Test', 0},...
|
||||
{@CTRLTest,'CTRL Test', 0},...
|
||||
{@POSITest,'POSI Test', 0},...
|
||||
{@sendCTRLTest,'sendCTRL Test', 0},...
|
||||
{@getCTRLTest,'getCTRL Test', 0},...
|
||||
{@sendPOSITest,'sendPOSI Test', 0},...
|
||||
{@getPOSITest,'getPOSI Test', 0},...
|
||||
{@sendWYPTTest,'WYPT Test', 0},...
|
||||
{@sendVIEWTest,'VIEW Test', 0},...
|
||||
{@pauseTest,'Pause Test', 0},...
|
||||
|
||||
Reference in New Issue
Block a user