Code Matlab pour exporter tous les états des Manual Switch Simulink en JSON
Cette fonction MATLAB itère à travers tous les commutateurs manuels dans le modèle Simulink actuellement chargé (gcs) et exporte leur état de commutateur (0 ou 1) vers une chaîne JSON.
Le JSON est généré directement et non via struct() et jsonencode() car struct() ne supporte pas les espaces ou les barres obliques dans les noms de champs.
switch_positions_to_json.m
function jsonStr = switch_positions_to_json()
% Trouve tous les commutateurs dans le modèle Simulink
switches = find_system(gcs, 'BlockType', 'ManualSwitch');
% Initialise une chaîne JSON avec une accolade ouvrante
jsonStr = '{';
% Itère à travers tous les commutateurs
for i = 1:length(switches)
switchPath = switches{i};
switchPos = get_param(switchPath, 'sw');
% Ajoute une paire clé-valeur à la chaîne JSON
if i > 1
jsonStr = [jsonStr, ','];
end
% Remplace les nouvelles lignes dans le chemin du commutateur par une barre oblique inversée échappée + n
escapedSwitchPath = strrep(switchPath, newline, '\\n');
% Ajoute la clé entre guillemets et la valeur
jsonStr = [jsonStr, '"', escapedSwitchPath, '":', switchPos];
end
% Ferme la chaîne JSON avec une accolade fermante
jsonStr = [jsonStr, '}'];
endExemple de sortie
switch_positions_example.json
{"MySimulinkModel/Manual Switch":0,"MySimulinkModel/Subsystem/Null switch":1}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