www.gusucode.com > ros 工具箱 matlab源码程序 > ros/+robotics/+ros/+msggen/+pr2_msgs/BatteryServer.m
classdef BatteryServer < robotics.ros.Message %BatteryServer MATLAB implementation of pr2_msgs/BatteryServer % This class was automatically generated by % robotics.ros.msg.internal.gen.MessageClassGenerator. % Copyright 2014-2016 The MathWorks, Inc. %#ok<*INUSD> properties (Constant) MessageType = 'pr2_msgs/BatteryServer' % The ROS message type end properties (Constant, Hidden) MD5Checksum = '4f6d6e54c9581beb1df7ea408c0727be' % The MD5 Checksum of the message definition end properties (Access = protected) JavaMessage % The Java message object end properties (Constant) MAXBATCOUNT = uint32(4) MAXBATREG = uint32(48) end properties (Constant, Access = protected) Pr2MsgsBatteryStateClass = robotics.ros.msg.internal.MessageFactory.getClassForType('pr2_msgs/BatteryState') % Dispatch to MATLAB class for message type pr2_msgs/BatteryState StdMsgsHeaderClass = robotics.ros.msg.internal.MessageFactory.getClassForType('std_msgs/Header') % Dispatch to MATLAB class for message type std_msgs/Header end properties (Dependent) Header Id LastTimeSystem TimeLeft AverageCharge Message LastTimeController Present Charging Discharging Reserved PowerPresent PowerNG Inhibited Battery end properties (Access = protected) Cache = struct('Header', [], 'Battery', []) % The cache for fast data access end properties (Constant, Hidden) PropertyList = {'AverageCharge', 'Battery', 'Charging', 'Discharging', 'Header', 'Id', 'Inhibited', 'LastTimeController', 'LastTimeSystem', 'Message', 'PowerNG', 'PowerPresent', 'Present', 'Reserved', 'TimeLeft'} % List of non-constant message properties ROSPropertyList = {'averageCharge', 'battery', 'charging', 'discharging', 'header', 'id', 'inhibited', 'lastTimeController', 'lastTimeSystem', 'message', 'powerNG', 'powerPresent', 'present', 'reserved', 'timeLeft'} % List of non-constant ROS message properties end methods function obj = BatteryServer(msg) %BatteryServer Construct the message object BatteryServer import com.mathworks.toolbox.robotics.ros.message.MessageInfo; % Support default constructor if nargin == 0 obj.JavaMessage = obj.createNewJavaMessage; return; end % Construct appropriate empty array if isempty(msg) obj = obj.empty(0,1); return; end % Make scalar construction fast if isscalar(msg) % Check for correct input class if ~MessageInfo.compareTypes(msg(1), obj.MessageType) error(message('robotics:ros:message:NoTypeMatch', obj.MessageType, ... char(MessageInfo.getType(msg(1))) )); end obj.JavaMessage = msg(1); return; end % Check that this is a vector of scalar messages. Since this % is an object array, use arrayfun to verify. if ~all(arrayfun(@isscalar, msg)) error(message('robotics:ros:message:MessageArraySizeError')); end % Check that all messages in the array have the correct type if ~all(arrayfun(@(x) MessageInfo.compareTypes(x, obj.MessageType), msg)) error(message('robotics:ros:message:NoTypeMatchArray', obj.MessageType)); end % Construct array of objects if necessary objType = class(obj); for i = 1:length(msg) obj(i,1) = feval(objType, msg(i)); %#ok<AGROW> end end function header = get.Header(obj) %get.Header Get the value for property Header if isempty(obj.Cache.Header) obj.Cache.Header = feval(obj.StdMsgsHeaderClass, obj.JavaMessage.getHeader); end header = obj.Cache.Header; end function set.Header(obj, header) %set.Header Set the value for property Header validateattributes(header, {obj.StdMsgsHeaderClass}, {'nonempty', 'scalar'}, 'BatteryServer', 'Header'); obj.JavaMessage.setHeader(header.getJavaObject); % Update cache if necessary if ~isempty(obj.Cache.Header) obj.Cache.Header.setJavaObject(header.getJavaObject); end end function id = get.Id(obj) %get.Id Get the value for property Id id = int32(obj.JavaMessage.getId); end function set.Id(obj, id) %set.Id Set the value for property Id validateattributes(id, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Id'); obj.JavaMessage.setId(id); end function lasttimesystem = get.LastTimeSystem(obj) %get.LastTimeSystem Get the value for property LastTimeSystem lasttimesystem = int32(obj.JavaMessage.getLastTimeSystem); end function set.LastTimeSystem(obj, lasttimesystem) %set.LastTimeSystem Set the value for property LastTimeSystem validateattributes(lasttimesystem, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'LastTimeSystem'); obj.JavaMessage.setLastTimeSystem(lasttimesystem); end function timeleft = get.TimeLeft(obj) %get.TimeLeft Get the value for property TimeLeft timeleft = typecast(int16(obj.JavaMessage.getTimeLeft), 'uint16'); end function set.TimeLeft(obj, timeleft) %set.TimeLeft Set the value for property TimeLeft validateattributes(timeleft, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'TimeLeft'); obj.JavaMessage.setTimeLeft(timeleft); end function averagecharge = get.AverageCharge(obj) %get.AverageCharge Get the value for property AverageCharge averagecharge = typecast(int16(obj.JavaMessage.getAverageCharge), 'uint16'); end function set.AverageCharge(obj, averagecharge) %set.AverageCharge Set the value for property AverageCharge validateattributes(averagecharge, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'AverageCharge'); obj.JavaMessage.setAverageCharge(averagecharge); end function message = get.Message(obj) %get.Message Get the value for property Message message = char(obj.JavaMessage.getMessage); end function set.Message(obj, message) %set.Message Set the value for property Message validateattributes(message, {'char'}, {}, 'BatteryServer', 'Message'); obj.JavaMessage.setMessage(message); end function lasttimecontroller = get.LastTimeController(obj) %get.LastTimeController Get the value for property LastTimeController lasttimecontroller = int32(obj.JavaMessage.getLastTimeController); end function set.LastTimeController(obj, lasttimecontroller) %set.LastTimeController Set the value for property LastTimeController validateattributes(lasttimecontroller, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'LastTimeController'); obj.JavaMessage.setLastTimeController(lasttimecontroller); end function present = get.Present(obj) %get.Present Get the value for property Present present = typecast(int16(obj.JavaMessage.getPresent), 'uint16'); end function set.Present(obj, present) %set.Present Set the value for property Present validateattributes(present, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Present'); obj.JavaMessage.setPresent(present); end function charging = get.Charging(obj) %get.Charging Get the value for property Charging charging = typecast(int16(obj.JavaMessage.getCharging), 'uint16'); end function set.Charging(obj, charging) %set.Charging Set the value for property Charging validateattributes(charging, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Charging'); obj.JavaMessage.setCharging(charging); end function discharging = get.Discharging(obj) %get.Discharging Get the value for property Discharging discharging = typecast(int16(obj.JavaMessage.getDischarging), 'uint16'); end function set.Discharging(obj, discharging) %set.Discharging Set the value for property Discharging validateattributes(discharging, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Discharging'); obj.JavaMessage.setDischarging(discharging); end function reserved = get.Reserved(obj) %get.Reserved Get the value for property Reserved reserved = typecast(int16(obj.JavaMessage.getReserved), 'uint16'); end function set.Reserved(obj, reserved) %set.Reserved Set the value for property Reserved validateattributes(reserved, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Reserved'); obj.JavaMessage.setReserved(reserved); end function powerpresent = get.PowerPresent(obj) %get.PowerPresent Get the value for property PowerPresent powerpresent = typecast(int16(obj.JavaMessage.getPowerPresent), 'uint16'); end function set.PowerPresent(obj, powerpresent) %set.PowerPresent Set the value for property PowerPresent validateattributes(powerpresent, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'PowerPresent'); obj.JavaMessage.setPowerPresent(powerpresent); end function powerng = get.PowerNG(obj) %get.PowerNG Get the value for property PowerNG powerng = typecast(int16(obj.JavaMessage.getPowerNG), 'uint16'); end function set.PowerNG(obj, powerng) %set.PowerNG Set the value for property PowerNG validateattributes(powerng, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'PowerNG'); obj.JavaMessage.setPowerNG(powerng); end function inhibited = get.Inhibited(obj) %get.Inhibited Get the value for property Inhibited inhibited = typecast(int16(obj.JavaMessage.getInhibited), 'uint16'); end function set.Inhibited(obj, inhibited) %set.Inhibited Set the value for property Inhibited validateattributes(inhibited, {'numeric'}, {'nonempty', 'scalar'}, 'BatteryServer', 'Inhibited'); obj.JavaMessage.setInhibited(inhibited); end function battery = get.Battery(obj) %get.Battery Get the value for property Battery if isempty(obj.Cache.Battery) javaArray = obj.JavaMessage.getBattery; array = obj.readJavaArray(javaArray, obj.Pr2MsgsBatteryStateClass); obj.Cache.Battery = feval(obj.Pr2MsgsBatteryStateClass, array); end battery = obj.Cache.Battery; end function set.Battery(obj, battery) %set.Battery Set the value for property Battery if ~isvector(battery) && isempty(battery) % Allow empty [] input battery = feval([obj.Pr2MsgsBatteryStateClass '.empty'], 0, 1); end validateattributes(battery, {obj.Pr2MsgsBatteryStateClass}, {'vector'}, 'BatteryServer', 'Battery'); javaArray = obj.JavaMessage.getBattery; array = obj.writeJavaArray(battery, javaArray, obj.Pr2MsgsBatteryStateClass); obj.JavaMessage.setBattery(array); % Update cache if necessary if ~isempty(obj.Cache.Battery) obj.Cache.Battery = []; obj.Cache.Battery = obj.Battery; end end end methods (Access = protected) function resetCache(obj) %resetCache Resets any cached properties obj.Cache.Header = []; obj.Cache.Battery = []; end function cpObj = copyElement(obj) %copyElement Implements deep copy behavior for message % Call default copy method for shallow copy cpObj = copyElement@robotics.ros.Message(obj); % Clear any existing cached properties cpObj.resetCache; % Create a new Java message object cpObj.JavaMessage = obj.createNewJavaMessage; % Iterate over all primitive properties cpObj.Id = obj.Id; cpObj.LastTimeSystem = obj.LastTimeSystem; cpObj.TimeLeft = obj.TimeLeft; cpObj.AverageCharge = obj.AverageCharge; cpObj.Message = obj.Message; cpObj.LastTimeController = obj.LastTimeController; cpObj.Present = obj.Present; cpObj.Charging = obj.Charging; cpObj.Discharging = obj.Discharging; cpObj.Reserved = obj.Reserved; cpObj.PowerPresent = obj.PowerPresent; cpObj.PowerNG = obj.PowerNG; cpObj.Inhibited = obj.Inhibited; % Recursively copy compound properties cpObj.Header = copy(obj.Header); cpObj.Battery = copy(obj.Battery); end function reload(obj, strObj) %reload Called by loadobj to assign properties obj.Id = strObj.Id; obj.LastTimeSystem = strObj.LastTimeSystem; obj.TimeLeft = strObj.TimeLeft; obj.AverageCharge = strObj.AverageCharge; obj.Message = strObj.Message; obj.LastTimeController = strObj.LastTimeController; obj.Present = strObj.Present; obj.Charging = strObj.Charging; obj.Discharging = strObj.Discharging; obj.Reserved = strObj.Reserved; obj.PowerPresent = strObj.PowerPresent; obj.PowerNG = strObj.PowerNG; obj.Inhibited = strObj.Inhibited; obj.Header = feval([obj.StdMsgsHeaderClass '.loadobj'], strObj.Header); BatteryCell = arrayfun(@(x) feval([obj.Pr2MsgsBatteryStateClass '.loadobj'], x), strObj.Battery, 'UniformOutput', false); obj.Battery = vertcat(BatteryCell{:}); end end methods (Access = ?robotics.ros.Message) function strObj = saveobj(obj) %saveobj Implements saving of message to MAT file % Return an empty element if object array is empty if isempty(obj) strObj = struct.empty; return end strObj.Id = obj.Id; strObj.LastTimeSystem = obj.LastTimeSystem; strObj.TimeLeft = obj.TimeLeft; strObj.AverageCharge = obj.AverageCharge; strObj.Message = obj.Message; strObj.LastTimeController = obj.LastTimeController; strObj.Present = obj.Present; strObj.Charging = obj.Charging; strObj.Discharging = obj.Discharging; strObj.Reserved = obj.Reserved; strObj.PowerPresent = obj.PowerPresent; strObj.PowerNG = obj.PowerNG; strObj.Inhibited = obj.Inhibited; strObj.Header = saveobj(obj.Header); strObj.Battery = arrayfun(@(x) saveobj(x), obj.Battery); end end methods (Static, Access = {?matlab.unittest.TestCase, ?robotics.ros.Message}) function obj = loadobj(strObj) %loadobj Implements loading of message from MAT file % Return an empty object array if the structure element is not defined if isempty(strObj) obj = robotics.ros.msggen.pr2_msgs.BatteryServer.empty(0,1); return end % Create an empty message object obj = robotics.ros.msggen.pr2_msgs.BatteryServer; obj.reload(strObj); end end end