diff --git a/MATLAB/+XPlaneConnect/openUDP.m b/MATLAB/+XPlaneConnect/openUDP.m index c38e087..b518cdb 100644 --- a/MATLAB/+XPlaneConnect/openUDP.m +++ b/MATLAB/+XPlaneConnect/openUDP.m @@ -26,6 +26,7 @@ p = inputParser; addOptional(p,'xpHost','127.0.0.1',@ischar); addOptional(p,'xpPort',49009,@isnumeric); addOptional(p,'port',0,@isnumeric); +addOptional(p,'timeout',0,@isnumeric); parse(p,varargin{:}); %% Create client @@ -33,7 +34,7 @@ if ~exist('gov.nasa.xpc.XPlaneConnect', 'class') [folder, ~, ~] = fileparts(which('XPlaneConnect.openUDP')); javaaddpath(fullfile(folder, 'XPlaneConnect.jar')); end -socket = gov.nasa.xpc.XPlaneConnect(p.Results.xpHost, p.Results.xpPort, p.Results.port); +socket = gov.nasa.xpc.XPlaneConnect(p.Results.xpHost, p.Results.xpPort, p.Results.port, p.Results.timeout); %% Track open clients global clients; diff --git a/MATLAB/Example/Example.m b/MATLAB/Example/Example.m index f25e848..03e1cef 100644 --- a/MATLAB/Example/Example.m +++ b/MATLAB/Example/Example.m @@ -10,21 +10,21 @@ import XPlaneConnect.* disp('xplaneconnect Example Script-'); disp('Setting up Simulation'); -Socket = openUDP(49005); +Socket = openUDP('127.0.0.1', 49009); %% Ensure connected -getDREFs('sim/test/test_float') +getDREFs('sim/test/test_float', Socket); %% Set position of the player aircraft disp('Setting position'); - pauseSim(1); + pauseSim(1, Socket); % Lat Lon Alt Pitch Roll Heading Gear POSI = [37.524, -122.06899, 2500, 0, 0, 0, 1]; -sendPOSI(POSI); % Set own aircraft position +sendPOSI(POSI, 0, Socket); % Set own aircraft position % Lat Lon Alt Pitch Roll Heading Gear POSI = [37.52465, -122.06899, 2500, 0, 20, 0, 1]; -sendPOSI(POSI, 1); % Place another aircraft just north of us +sendPOSI(POSI, 1, Socket); % Place another aircraft just north of us %% Set rates disp('Setting rates'); % Alpha Velocity PQR @@ -32,30 +32,30 @@ data = struct('h',[18, 3, 16],... 'd',[0,-999,0,-999,-999,-999,-999,-999;... % Alpha data 130,130,130,130,-999,-999,-999,-999;... % Velocity data 0,0,0,-999,-999,-999,-999,-999]); % PQR data -sendDATA(data); +sendDATA(data, Socket); %% Set CTRL % Throttle - CTRL = [0,0,0,0.8]; - sendCTRL(CTRL); + CTRL = [0,0,0,0.8,0,0]; + sendCTRL(CTRL, 0, Socket); pause(5); - pauseSim(0); + pauseSim(0, Socket); pause(5) % Run sim for 5 seconds %% Pause sim disp('Pausing simulation'); - pauseSim(1); + pauseSim(1, Socket); pause(5); disp('Unpausing simulation'); - pauseSim(0); + pauseSim(0, Socket); pause(10) % Run sim for 10 seconds %% Use DREF to raise landing gear disp('Raising gear'); gearDREF = 'sim/cockpit/switches/gear_handle_status'; - sendDREF(gearDREF, 0); + sendDREF(gearDREF, 0, Socket); pause(10) % Run sim for 10 seconds %% Confirm gear and paus status by reading DREFs disp('Checking gear'); pauseDREF = 'sim/operation/override/override_planepath'; - result = requestDREF({gearDREF, pauseDREF}); + result = getDREFs({gearDREF, pauseDREF}, Socket); if result{1} == 0 disp('Gear stowed'); else