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
|
%CTRLTest Summary of this function goes here
|
||||||
% Detailed explanation goes here
|
% Detailed explanation goes here
|
||||||
%% Test player aircraft
|
%% Test player aircraft
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
function POSITest( )
|
function sendPOSITest( )
|
||||||
%POSITest Summary of this function goes here
|
%POSITest Summary of this function goes here
|
||||||
% Detailed explanation goes here
|
% Detailed explanation goes here
|
||||||
addpath('../../MATLAB')
|
addpath('../../MATLAB')
|
||||||
@@ -18,8 +18,10 @@ theTests = {{@openCloseTest, 'Open/Close Test', 0},...
|
|||||||
{@getDREFsTest,'Request DREF Test', 0},...
|
{@getDREFsTest,'Request DREF Test', 0},...
|
||||||
{@sendDREFTest,'Send DREF Test', 0},...
|
{@sendDREFTest,'Send DREF Test', 0},...
|
||||||
{@DATATest,'DATA Test', 0},...
|
{@DATATest,'DATA Test', 0},...
|
||||||
{@CTRLTest,'CTRL Test', 0},...
|
{@sendCTRLTest,'sendCTRL Test', 0},...
|
||||||
{@POSITest,'POSI Test', 0},...
|
{@getCTRLTest,'getCTRL Test', 0},...
|
||||||
|
{@sendPOSITest,'sendPOSI Test', 0},...
|
||||||
|
{@getPOSITest,'getPOSI Test', 0},...
|
||||||
{@sendWYPTTest,'WYPT Test', 0},...
|
{@sendWYPTTest,'WYPT Test', 0},...
|
||||||
{@sendVIEWTest,'VIEW Test', 0},...
|
{@sendVIEWTest,'VIEW Test', 0},...
|
||||||
{@pauseTest,'Pause Test', 0},...
|
{@pauseTest,'Pause Test', 0},...
|
||||||
|
|||||||
Reference in New Issue
Block a user