Определение информации о системном объекте

В этом примере показано, как задать информацию, чтобы отобразиться для Системы object™.

Определение информации о системном объекте

Можно задать собственный info метод, чтобы отобразить определенную информацию для вашего Системного объекта. infoImpl по умолчанию метод возвращает пустой struct. Этот infoImpl метод возвращает подробную информацию когда info называется с помощью info(x,'details') или только считайте информацию, если она называется с помощью info(x).

methods (Access = protected)
   function s = infoImpl(obj,varargin)
      if nargin>1 && strcmp('details',varargin(1))
         s = struct('Name','Counter',
             'Properties', struct('CurrentCount',obj.Count, ...
             'Threshold',obj.Threshold));
      else
         s = struct('Count',obj.Count);
      end
   end
end

Полный файл определения класса с InfoImpl

classdef Counter < matlab.System
   % Counter Count values above a threshold
   
   properties
      Threshold = 1
   end
   
   properties (DiscreteState)
      Count
   end
   
   methods (Access = protected)
      function setupImpl(obj)
         obj.Count = 0;
      end
       
      function resetImpl(obj)
         obj.Count = 0;
      end
       
      function y = stepImpl(obj,u)
         if (u > obj.Threshold)
            obj.Count = obj.Count + 1;
         end
         y = obj.Count;
      end
     
      function s = infoImpl(obj,varargin)
         if nargin>1 && strcmp('details',varargin(1))
            s = struct('Name','Counter',...
            'Properties', struct('CurrentCount', ...
            obj.Count,'Threshold',obj.Threshold));
         else
            s = struct('Count',obj.Count);
         end
      end
   end
end

Смотрите также