Simulink: Wie man den TestPoint-Status aller ausgewählten Signale programmatisch setzt
Das folgende Code-Snippet demonstriert, wie man den TestPoint-Status aller aktuell ausgewählten Signallinien in einem Simulink-Modell mit MATLAB auf 1 (d.h. Testpoint aktiviert) setzt.
Es baut auf unserem vorherigen Post Simulink: Wie man ausgewählte Signal-/Linie programmatisch abfragt auf.
set_testpoint_state.m
% Alle ausgewählten Linien finden
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Prüfen, ob Linien ausgewählt sind
if isempty(lineHandles)
disp('No lines are currently selected.');
else
% Alle ausgewählten Linien durchlaufen und als Testpoints setzen
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Linie als Testpoint setzen
set(lineHandle, 'TestPoint', 1);
% Optional: Signalnamen zur Bestätigung abrufen
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
Der obige Code kann als MATLAB-Skriptdatei namens mktestpoint.m für einfache Wiederverwendung gespeichert werden:
mktestpoint.m
% mktestpoint.m
% Dieses Skript setzt den TestPoint-Status aller aktuell ausgewählten Signallinien auf einen gegebenen Wert (1 für aktiviert, 0 für deaktiviert).
% Verwendung: Wähle Signallinien in deinem Simulink-Modell aus und führe dieses Skript aus.
function mktestpoint(enable)
% mktestpoint.m
% Diese Funktion setzt den TestPoint-Status aller aktuell ausgewählten Signallinien auf den gegebenen Wert (1 für aktiviert, 0 für deaktiviert).
% Verwendung: Wähle Signallinien in deinem Simulink-Modell aus und rufe mktestpoint() auf zum Aktivieren (Standard) oder mktestpoint(0) zum Deaktivieren.
if nargin < 1
enable = 1;
end
% Alle ausgewählten Linien finden
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Prüfen, ob Linien ausgewählt sind
if isempty(lineHandles)
disp('No lines are currently selected.');
else
% Alle ausgewählten Linien durchlaufen und als Testpoints setzen
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Linie als Testpoint setzen
set(lineHandle, 'TestPoint', enable);
% Optional: Signalnamen zur Bestätigung abrufen
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Ähnliche Beiträge nach Kategorie:
MATLAB/Simulink
Wenn dieser Beitrag dir geholfen hat, erwäge, mir einen Kaffee zu spendieren oder per PayPal zu spenden, um die Recherche und Veröffentlichung neuer Beiträge auf TechOverflow zu unterstützen