Simulink : Comment définir l'état TestPoint de tous les signaux sélectionnés par programmation
L’extrait de code suivant montre comment définir l’état TestPoint de toutes les lignes de signaux actuellement sélectionnées à 1 (c’est-à-dire testpoint activé) dans un modèle Simulink à l’aide de MATLAB.
Il s’appuie sur notre article précédent Simulink : Comment interroger le signal / la ligne sélectionné(e) par programmation.
set_testpoint_state.m
% Trouver toutes les lignes sélectionnées
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Vérifier si des lignes sont sélectionnées
if isempty(lineHandles)
disp('Aucune ligne n'est actuellement sélectionnée.');
else
% Parcourir toutes les lignes sélectionnées et les définir comme testpoints
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Définir la ligne comme testpoint
set(lineHandle, 'TestPoint', 1);
% Optionnel : Obtenir le nom du signal pour confirmation
signalName = get(lineHandle, 'Name');
if isempty(signalName)
fprintf('Ligne %d définie comme testpoint\n', i);
else
fprintf('Signal "%s" défini comme testpoint\n', signalName);
end
end
endmktestpoint.m
Le code ci-dessus peut être enregistré dans un fichier de script MATLAB nommé mktestpoint.m pour une réutilisation facile :
mktestpoint.m
% mktestpoint.m
% Ce script définit l'état TestPoint de toutes les lignes de signaux actuellement sélectionnées à une valeur donnée (1 pour activé, 0 pour désactivé).
% Utilisation : Sélectionnez des lignes de signaux dans votre modèle Simulink et exécutez ce script.
function mktestpoint(enable)
% mktestpoint.m
% Cette fonction définit l'état TestPoint de toutes les lignes de signaux actuellement sélectionnées à la valeur donnée (1 pour activé, 0 pour désactivé).
% Utilisation : Sélectionnez des lignes de signaux dans votre modèle Simulink et appelez mktestpoint() pour activer (par défaut) ou mktestpoint(0) pour désactiver.
if nargin < 1
enable = 1;
end
% Trouver toutes les lignes sélectionnées
lineHandles = find_system(gcs, 'FindAll', 'on', 'Type', 'line', 'Selected', 'on');
% Vérifier si des lignes sont sélectionnées
if isempty(lineHandles)
disp('Aucune ligne n'est actuellement sélectionnée.');
else
% Parcourir toutes les lignes sélectionnées et les définir comme testpoints
for i = 1:length(lineHandles)
lineHandle = lineHandles(i);
% Définir la ligne comme testpoint
set(lineHandle, 'TestPoint', enable);
% Optionnel : Obtenir le nom du signal pour confirmation
signalName = get(lineHandle, 'Name');
if isempty(signalName)
fprintf('Ligne %d définie comme testpoint (%d)\n', i, enable);
else
fprintf('Signal "%s" défini comme testpoint (%d)\n', signalName, enable);
end
end
end
endCheck 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