Доработка periphConfig

Фикс обновления имени S-Function
This commit is contained in:
Razvalyaev 2025-11-14 21:59:27 +03:00
parent 9b8b5ec533
commit da78efc988
2 changed files with 5 additions and 4 deletions

View File

@ -1,19 +1,18 @@
% Компилирует S-function для блока микроконтроллера в Simulink % Компилирует S-function для блока микроконтроллера в Simulink
% compile_mode: 1 - компиляция, 0 - обновление конфигурации % compile_mode: 1 - компиляция, 0 - обновление конфигурации
function res = mexing(compile_mode) function res = mexing(compile_mode)
global Ts
Ts = 0.00001; % Установка глобального времени дискретизации
if compile_mode == 1 if compile_mode == 1
block = gcb;
% === РЕЖИМ КОМПИЛЯЦИИ === % === РЕЖИМ КОМПИЛЯЦИИ ===
setenv('VSLANG', '1033'); % Английский для Visual Studio setenv('VSLANG', '1033'); % Английский для Visual Studio
% Обновление параметров блока % Обновление параметров блока
block = gcb;
newName = get_param(block, 'sfuncName'); newName = get_param(block, 'sfuncName');
oldName = get_param(block, 'FunctionName'); oldName = get_param(block, 'FunctionName');
if ~strcmp(newName, oldName) if ~strcmp(newName, oldName)
set_param(block, 'FunctionName', newName); % Обновление имени функции set_param(block, 'FunctionName', newName); % Обновление имени функции
mcuMask.setSFuncName(block);
end end
newParam = get_param(block, 'sfuncParam'); newParam = get_param(block, 'sfuncParam');

View File

@ -77,6 +77,8 @@ classdef periphConfig
% В случае ошибки восстанавливаем таблицы % В случае ошибки восстанавливаем таблицы
customtable.restore_all_tables(tableNames, columns_backup); customtable.restore_all_tables(tableNames, columns_backup);
end end
periphConfig.addUserFunctions(config.UserCode);
end end
function update() function update()
@ -541,7 +543,7 @@ classdef periphConfig
code = editCode.insertSection(code, '// PERIPH DEINIT', deinitFuncsText); code = editCode.insertSection(code, '// PERIPH DEINIT', deinitFuncsText);
% Записываем обновленный файл % Записываем обновленный файл
fid = fopen(wrapPath, 'w', 'n'); fid = fopen(wrapPath, 'w', 'n', 'UTF-8');
if fid == -1 if fid == -1
error('Не удалось открыть файл для записи'); error('Не удалось открыть файл для записи');
end end