Следующий фрагмент кода демонстрирует, как установить состояние TestPoint всех выбранных в данный момент линий сигналов в 1 (т.е. тестовая точка включена) в модели Simulink с использованием MATLAB.
Он основан на нашем предыдущем посте Simulink: Как программно запросить выбранный сигнал / линию.
set_testpoint_state.m
% Найти все выбранные линии
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Проверка, выбраны ли какие-либо линии
if isempty(lineHandles)
disp('No lines are currently selected.');
else
% Цикл по всем выбранным линиям и установка их как тестовых точек
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Установка линии как тестовой точки
set(lineHandle, 'TestPoint', 1);
% Опционально: получить имя сигнала для подтверждения
signalName = get(lineHandle, 'Name');
if isempty(signalName)
fprintf('Line %d set as testpoint\n', i);
else
fprintf('Signal "%s" set as testpoint\n', signalName);
end
end
endmktestpoint.m
Вышеуказанный код можно сохранить как файл скрипта MATLAB с именем mktestpoint.m для удобного повторного использования:
mktestpoint.m
% mktestpoint.m
% Этот скрипт устанавливает состояние TestPoint всех выбранных в данный момент линий сигналов в заданное значение (1 для включения, 0 для выключения).
% Использование: Выберите линии сигналов в вашей модели Simulink и запустите этот скрипт.
function mktestpoint(enable)
% mktestpoint.m
% Эта функция устанавливает состояние TestPoint всех выбранных в данный момент линий сигналов в заданное значение (1 для включения, 0 для выключения).
% Использование: Выберите линии сигналов в вашей модели Simulink и вызовите mktestpoint() для включения (по умолчанию) или mktestpoint(0) для выключения.
if nargin < 1
enable = 1;
end
% Найти все выбранные линии
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Проверка, выбраны ли какие-либо линии
if isempty(lineHandles)
disp('No lines are currently selected.');
else
% Цикл по всем выбранным линиям и установка их как тестовых точек
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Установка линии как тестовой точки
set(lineHandle, 'TestPoint', enable);
% Опционально: получить имя сигнала для подтверждения
signalName = get(lineHandle, 'Name');
if isempty(signalName)
fprintf('Line %d set as testpoint (%d)\n', i, enable);
else
fprintf('Signal "%s" set as testpoint (%d)\n', signalName, enable);
end
end
end
end
Check out similar posts by category:
Matlab/Simulink
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow