classdef BilevelMeasurementsConfiguration< dsp.webscopes.measurements.BaseMeasurementConfiguration
%BilevelMeasurementsConfiguration Bilevel measurements properties for
%scope.
% BilevelMeasurementsConfiguration contains the properties used by the
% Scope BilevelMeasurements property. Bilevel measurements measures
% transitions, aberrations and cycles.
%
% BilevelMeasurementsConfiguration properties:
%
%   AutoStateLevel        - Auto-detect high and low-state levels
%   HighStateLevel        - High-state level
%   LowStateLevel         - Low-state level
%   StateLevelTolerance   - Maximum deviation from either the low or
%                           high state level before a signal is
%                           considered to be outside that state
%   UpperReferenceLevel   - Upper reference level
%   MidReferenceLevel     - Mid reference level
%   LowerReferenceLevel   - Lower reference level
%   SettleSeek            - Time duration over which to search for a
%                           settling time
%   ShowTransitions       - Enable transition measurements
%   ShowAberrations       - Enable aberration measurements
%   ShowCycles            - Enable cycles measurements

 
    %   Copyright 2021-2022 The MathWorks, Inc.

    methods
        function out=BilevelMeasurementsConfiguration
        end

        function out=adjustReferenceLevels(~) %#ok<STOUT>
            % force lower ref level to be above tolerance
        end

        function out=adjustStateLevelTolerance(~) %#ok<STOUT>
            % force tolerance less than lower pct ref level
        end

        function out=getPropertyGroups(~) %#ok<STOUT>
            % This method is used to selectively display public properties
            % based on values of other properties.
        end

        function out=validateReferenceLevels(~) %#ok<STOUT>
        end

        function out=validateStateLevels(~) %#ok<STOUT>
        end

    end
    properties
        %AutoStateLevel Auto-detect high and low-state levels
        %   Set this property to true to auto-detect high and low-state
        %   levels of bilevel waveform. The default is true. This property
        %   is tunable.
        AutoStateLevel;

        %HighStateLevel High-state level
        %   Specify the high-state level as a nonnegative scalar. This
        %   property applies when you set AutoStateLevel to false. The
        %   default is 2.3. This property is tunable.
        HighStateLevel;

        %LowStateLevel Low-state level
        %   Specify the low-state level as a nonnegative scalar. This
        %   property applies when you set AutoStateLevel to false. The
        %   default is 0. This property is tunable.
        LowStateLevel;

        %LowerReferenceLevel Lower reference level
        %   Specify the lower reference level as a positive scalar between
        %   0 and 100. Lower reference level is used to compute the end of
        %   a fall time or the start of a rise time. This value is
        %   expressed as a percentage of the difference between the high-
        %   and low-state levels. The default value is 10. This property is
        %   tunable.
        LowerReferenceLevel;

        %MidReferenceLevel Middle reference level
        %   Specify the middle reference level as a positive scalar between
        %   0 and 100. Middle reference level is used to determine when a
        %   transition occurs. This value is expressed as a percentage of
        %   the difference between the high- and low-state levels. The
        %   default value is 50. This property is tunable.
        MidReferenceLevel;

        %SettleSeek Time duration over which to search for a settling time
        %   Specify the settle seek in seconds as a positive scalar. The
        %   default value is 0.02. This property is tunable.
        SettleSeek;

        %ShowAberrations Enable aberrations measurements
        %   Set this property to true to enable aberrations measurements.
        %   The default is false. This property is tunable.
        ShowAberrations;

        %ShowCycles Enable cycles measurements
        %   Set this property to true to enable cycles measurements.
        %   The default is false. This property is tunable.
        ShowCycles;

        %ShowTransitions Enable transition measurements
        %   Set this property to true to enable transition measurements.
        %   The default is false. This property is tunable.
        ShowTransitions;

        %StateLevelTolerance Maximum deviation from either the low or high
        %state level before a signal is considered to be outside that state
        %   Specify the state level tolerance as a positive scalar between
        %   0 and 100. The default value is 2. This property is tunable.
        StateLevelTolerance;

        %UpperReferenceLevel Upper reference level
        %   Specify the upper reference level as a positive scalar between
        %   0 and 100. Upper reference level is used to compute the start
        %   of a fall time or the end of a rise time. This value is
        %   expressed as a percentage of the difference between the high-
        %   and low-state levels. The default value is 90. This property is
        %   tunable.
        UpperReferenceLevel;

    end
end
