diff --git a/source/EV3.m b/source/EV3.m index face39237d341cb9c6d5a2e7513022b7374c9e84..2c9032c15b3cc1cf37b0db909e742e64203424cc 100644 --- a/source/EV3.m +++ b/source/EV3.m @@ -127,6 +127,11 @@ classdef EV3 < handle ev3.init = 0; end + function delete(ev3) + if ev3.isConnected + ev3.disconnect(); + end + end %% Connection function connect(ev3, varargin) %connect Connects EV3-object and its Motors and Sensors to physical brick. @@ -152,8 +157,6 @@ classdef EV3 < handle ev3.brick = 0; ev3.isConnected = 0; - - % error('EV3::connect: Aborted connection.'); end end @@ -219,9 +222,9 @@ classdef EV3 < handle % b.disconnect(); % - if ~ev3.isConnected - error('EV3::connect: No brick connected.'); - end +% if ~ev3.isConnected +% error('EV3::connect: No brick connected.'); +% end % Disconnect motors % -> set references to brick object to 0 @@ -238,7 +241,9 @@ classdef EV3 < handle ev3.sensor4.disconnect(); % Delete handle to brick object - ev3.brick.delete(); + if isBrickValid(ev3.brick) && ev3.brick ~= 0 + ev3.brick.delete(); + end ev3.brick = 0; ev3.isConnected = 0; diff --git a/source/Motor.m b/source/Motor.m index c3b09d17af34bae8a8b4de584317569818264be4..86257623e871f8fc8b14ead2371e50c78002c391 100644 --- a/source/Motor.m +++ b/source/Motor.m @@ -256,9 +256,9 @@ classdef Motor < handle % brickInterface.delete(); % Actual disconnecting!!! % - if ~motor.isConnected - error('Motor::disconnect: No brick connected.'); - end +% if ~motor.isConnected +% error('Motor::disconnect: No brick connected.'); +% end motor.brick = 0; % Note: actual deleting is done in EV3::disconnect. motor.isConnected = 0; diff --git a/source/Sensor.m b/source/Sensor.m index 55e67d1bfd877a48fd7c3580dd9c3de84aed2457..f794ae8663cfdca07813e7aacc0e91dc47abcef2 100644 --- a/source/Sensor.m +++ b/source/Sensor.m @@ -136,9 +136,9 @@ classdef Sensor < handle function disconnect(sensor) %disconnect Disconnects Sensor-object from physical brick - if ~sensor.isConnected - error('Sensor::disconnect: No brick connected.'); - end +% if ~sensor.isConnected +% error('Sensor::disconnect: No brick connected.'); +% end sensor.brick = 0; % Note: actual deleting is done in EV3::disconnect. sensor.isConnected = 0; @@ -163,8 +163,8 @@ classdef Sensor < handle if strcmp(class(oldMode),class(newMode)) && oldMode~=newMode if ~strcmp(class(oldMode), 'DeviceMode.Error') && ... ~strcmp(class(newMode), 'DeviceMode.Error') - warning(['Sensor::update: Physical sensor''s mode was not ',... - 'the specified one. Changing...']); + %warning(['Sensor::update: Physical sensor''s mode was not ',... + % 'the specified one. Changing...']); sensor.setMode(oldMode); sensor.mode = oldMode;