release 1.01

чуть доработано:
- добавлен перенос шаблонов в проект
- убрана линковка с библиотекой для изменения маски из конфига
- исправлено изменение названия бинарника S-Function
- исправлено некорректная запись из буфера в входы/выходы и обратно
This commit is contained in:
2025-06-14 23:53:50 +03:00
parent 1bd5009b9d
commit d983f2525a
14 changed files with 118 additions and 201 deletions

View File

@@ -0,0 +1,59 @@
function installTemplates(forceCopy)
% installTemplates Копирует содержимое папки templates (включая вложенные папки) из уровня выше McuLib.slx в текущую папку
%
% installTemplates(forceCopy)
%
% forceCopy логический параметр (true/false)
% Если true, файлы будут перезаписаны.
% Если false или не указан, копирование происходит без перезаписи существующих файлов.
if nargin < 1
forceCopy = false;
end
try
libDir = fileparts(which('McuLib.slx')); % папка с McuLib.slx
parentDir = fileparts(libDir); % уровень выше
templatesDir = fullfile(parentDir, 'templates'); % папка templates
targetDir = pwd; % текущая папка
mcuMask.disp(1, '');
if ~exist(templatesDir, 'dir')
mcuMask.disp(1, 'Папка шаблонов %s не найдена.', templatesDir);
return;
end
% Список всех файлов и папок внутри templates (рекурсивно)
entries = dir(fullfile(templatesDir, '**', '*'));
for k = 1:length(entries)
if ~entries(k).isdir
% Относительный путь внутри templates
relPath = erase(entries(k).folder, [templatesDir filesep]);
if startsWith(relPath, filesep)
relPath = relPath(2:end); % убрать начальный слеш
end
srcFile = fullfile(entries(k).folder, entries(k).name);
destFolder = fullfile(targetDir, relPath);
destFile = fullfile(destFolder, entries(k).name);
if ~exist(destFolder, 'dir')
mkdir(destFolder);
end
if forceCopy || ~exist(destFile, 'file')
copyfile(srcFile, destFile);
mcuMask.disp(0, 'Скопирован файл: %s\n', fullfile(relPath, entries(k).name));
else
% mcuMask.disp(0, 'Файл уже существует и не перезаписывается: %s\n', fullfile(relPath, entries(k).name));
end
end
end
mcuMask.disp(0, ['Шаблоны успешно скопированы в ', targetDir]);
catch ME
mcuMask.disp(0, 'Ошибка при копировании шаблонов: %s', ME.message);
end
end