모델을 엽니다.
openExample('sldemo_mdlref_basic');
slmetric.config.Configuration
객체를 생성합니다.
CONF = slmetric.config.Configuration.new('name', 'Config');
CONF
에서 기본 slmetric.config.ThresholdConfiguration
개체를 가져옵니다.
TC = getThresholdConfigurations(CONF);
slmetric.config.Threshold
개체를 slmetric.config.ThresholdConfiguration
개체에 추가합니다. 이 임계값은 mathworks.metrics.SimulinkBlockCount
지표와 slmetric.metric.Results
개체의 Value
속성에 대한 것입니다.
T = addThreshold(TC, 'mathworks.metrics.SimulinkBlockCount', 'Value');
slmetric.config.Threshold
개체에는 Compliant
범주에 해당하는 기본 slmetric.config.Classification
개체가 포함되어 있습니다. slmetric.metric.MetricRange
클래스를 사용하여 Compliant
, NonCompliant
및 Warning
지표 범위에 대한 지표 값을 지정합니다.
C = getClassifications(T); % default classification is Compliant
C.Range.Start = 5;
C.Range.IncludeStart = 0;
C.Range.End = 100;
C.Range.IncludeEnd = 0;
C = addClassification(T,'Warning');
C.Range.Start = -inf;
C.Range.IncludeStart = 0;
C.Range.End = 5;
C.Range.IncludeEnd = 1
C = addClassification(T,'NonCompliant');
C.Range.Start = 100;
C.Range.IncludeStart = 1;
C.Range.End = inf;
C.Range.IncludeEnd = 0;
validate
방법을 사용하여 slmetric.config.ThresholdConfiguration
개체의 임계값에 해당하는 측정 단위 범위를 검증합니다.
범위가 유효하지 않으면 오류 메시지가 표시됩니다. 이 예에서는 범위가 유효합니다.
구성 파일에 대한 변경 사항을 저장합니다. 메트릭 엔진이 사용할 이 구성을 활성화하려면 slmetric.config.setActiveConfiguration
함수를 사용하십시오.
configName = 'Config.xml';
save(CONF,'FileName', configName);
slmetric.config.setActiveConfiguration(fullfile(pwd, configName));
slmetric.Engine
개체를 생성하고, 분석을 위해 모델에 루트를 설정하고, mathworks.metrics.SimulinkBlockCount
지표에 대한 데이터를 수집합니다.
metric_engine = slmetric.Engine();
setAnalysisRoot(metric_engine, 'Root', 'sldemo_mdlref_basic');
execute(metric_engine, 'mathworks.metrics.SimulinkBlockCount');
slmetric.metric.ResultCollection
객체 배열, res_col
를 반환하는 모델 메트릭 데이터를 가져옵니다.
res_col = getMetrics(metric_engine, 'mathworks.metrics.SimulinkBlockCount');
mathworks.metrics.SimulinkBlockCount
메트릭에 대한 결과를 표시합니다.
for n=1:length(res_col)
if res_col(n).Status == 0
result = res_col(n).Results;
for m=1:length(result)
disp(['MetricID: ',result(m).MetricID]);
disp([' ComponentPath: ', result(m).ComponentPath]);
disp([' Value: ', num2str(result(m).Value)]);
disp([' Classifications: ', result(m).Classifications.Classification.Category]);
disp([' Measures: ', num2str(result(m).Measures)]);
disp([' AggregatedMeasures: ', num2str(result(m).AggregatedMeasures)]);
end
else
disp(['No results for:', result(n).MetricID]);
end
disp(' ');
end
ComponentPath: sldemo_mdlref_basic
및 ComponentPath: sldemo_mdlref_counter
의 경우 각각 12
및 18
값으로 인해 결과는 Compliant
입니다. ComponentPath: sldemo_mdlref_basic/More Info
의 경우 0
값으로 인해 결과는 Warning
범주에 속합니다.