release 1.01
чуть доработано: - добавлен перенос шаблонов в проект - убрана линковка с библиотекой для изменения маски из конфига - исправлено изменение названия бинарника S-Function - исправлено некорректная запись из буфера в входы/выходы и обратно
This commit is contained in:
parent
1bd5009b9d
commit
d983f2525a
BIN
MCU Wrapper.mltbx
Normal file
BIN
MCU Wrapper.mltbx
Normal file
Binary file not shown.
@ -7,41 +7,7 @@ function install_my_library()
|
|||||||
addpath(fullfile(libDir, 'm'));
|
addpath(fullfile(libDir, 'm'));
|
||||||
savepath;
|
savepath;
|
||||||
|
|
||||||
% 2. Диалог выбора папки для копирования шаблонов
|
|
||||||
defaultTargetDir = pwd;
|
|
||||||
answer = questdlg(['Выберите папку для копирования шаблонов кода. ', ...
|
|
||||||
'По умолчанию текущая папка: ' defaultTargetDir], ...
|
|
||||||
'Выбор папки', ...
|
|
||||||
'Текущая папка', 'Выбрать другую', 'Текущая папка');
|
|
||||||
|
|
||||||
switch answer
|
|
||||||
case 'Выбрать другую'
|
|
||||||
targetDir = uigetdir(defaultTargetDir, 'Выберите папку для шаблонов');
|
|
||||||
if isequal(targetDir,0)
|
|
||||||
disp('Копирование шаблонов отменено пользователем.');
|
|
||||||
targetDir = '';
|
|
||||||
end
|
|
||||||
case 'Текущая папка'
|
|
||||||
targetDir = defaultTargetDir;
|
|
||||||
otherwise
|
|
||||||
targetDir = defaultTargetDir;
|
|
||||||
end
|
|
||||||
|
|
||||||
if ~isempty(targetDir)
|
|
||||||
templatesDir = fullfile(libDir, 'templates');
|
|
||||||
templateFiles = dir(fullfile(templatesDir, '*.*'));
|
|
||||||
for k = 1:numel(templateFiles)
|
|
||||||
if ~templateFiles(k).isdir
|
|
||||||
copyfile(fullfile(templatesDir, templateFiles(k).name), ...
|
|
||||||
fullfile(targetDir, templateFiles(k).name));
|
|
||||||
end
|
|
||||||
end
|
|
||||||
fprintf('Шаблоны кода скопированы в папку:\n%s\n', targetDir);
|
|
||||||
end
|
|
||||||
|
|
||||||
% 3. Обновляем Library Browser
|
% 3. Обновляем Library Browser
|
||||||
rehash;
|
rehash;
|
||||||
sl_refresh_customizations;
|
sl_refresh_customizations;
|
||||||
|
|
||||||
disp('Библиотека успешно установлена и добавлена в Library Browser.');
|
|
||||||
end
|
end
|
||||||
|
Binary file not shown.
@ -67,7 +67,6 @@ classdef asynchManage < handle
|
|||||||
if ~isempty(obj.maskBlockPath)
|
if ~isempty(obj.maskBlockPath)
|
||||||
try
|
try
|
||||||
mcuMask.open(obj.maskBlockPath, 1);
|
mcuMask.open(obj.maskBlockPath, 1);
|
||||||
fprintf('Mask opened for block %s\n', obj.maskBlockPath);
|
|
||||||
catch ME
|
catch ME
|
||||||
warning('progr:Nneg', 'Не удалось открыть маску: %s', ME.message);
|
warning('progr:Nneg', 'Не удалось открыть маску: %s', ME.message);
|
||||||
end
|
end
|
||||||
|
120
McuLib/m/init.m
120
McuLib/m/init.m
@ -1,120 +0,0 @@
|
|||||||
% Cкрипт для задания параметров модели
|
|
||||||
|
|
||||||
clear;%очищаем рабочее пространство
|
|
||||||
|
|
||||||
%% ПАРАМЕТРЫ МОДЕЛИ
|
|
||||||
|
|
||||||
addpath('MCU_Wrapper');
|
|
||||||
addpath('motor');
|
|
||||||
Ts = 10e-6;%шаг интегрирования
|
|
||||||
Decim = 1;%интервал прореживания
|
|
||||||
DisableScope = {
|
|
||||||
"Idc";
|
|
||||||
"Udc";
|
|
||||||
};
|
|
||||||
|
|
||||||
GED = "23550";
|
|
||||||
% GED = "22220";
|
|
||||||
|
|
||||||
% начальная скорость ГЭД, доля от NmNom
|
|
||||||
w0 = 0;%0.5;%-0.75;%
|
|
||||||
% пусковой момент, о.е.
|
|
||||||
Mst = 0.6;%0.6;
|
|
||||||
|
|
||||||
% разрешаем/запрещаем сбросы/набросы момента нагрузки
|
|
||||||
changingLoadEnable = 0;%1
|
|
||||||
% разрешаем/запрещаем шум в измеренном токе
|
|
||||||
noiseEnable = 0;%1;%
|
|
||||||
% ... мощность шума
|
|
||||||
NP = 0.08;
|
|
||||||
|
|
||||||
|
|
||||||
%% НОМИНАЛЬНЫЕ ВЕЛИЧИНЫ ГЭД
|
|
||||||
% ... мощность на валу, Вт
|
|
||||||
Pnom = 6300e3;
|
|
||||||
% ... линейное напряжение, В (rms)
|
|
||||||
Unom = 3300;
|
|
||||||
% ... механическая скорость, об/мин
|
|
||||||
NmNom = 180;
|
|
||||||
% ... число пар полюсов
|
|
||||||
Pp = 6;
|
|
||||||
% ... коэффициент мощности
|
|
||||||
CosFi = 0.87;
|
|
||||||
% ... КПД
|
|
||||||
Eff = 0.968;
|
|
||||||
% ... приведенный к валу момент инерции, кг*м^2
|
|
||||||
J = 87e3*0.1;
|
|
||||||
|
|
||||||
|
|
||||||
%% РАСЧЕТЫ
|
|
||||||
% разкомментирование всех блоков
|
|
||||||
|
|
||||||
modelName = [bdroot '/Measurements'];
|
|
||||||
blocks = find_system(modelName, ...
|
|
||||||
'IncludeCommented', 'on', ...
|
|
||||||
'FollowLinks', 'on', ...
|
|
||||||
'LookUnderMasks', 'all', ...
|
|
||||||
'BlockType', 'Scope');
|
|
||||||
for i = 1:length(blocks)
|
|
||||||
set_param(blocks{i}, 'Commented', 'off');
|
|
||||||
end
|
|
||||||
% отключение графиков для ускорения смуляции
|
|
||||||
for i = 1:length(DisableScope)
|
|
||||||
set_param([modelName '/'] + DisableScope{i}, 'Commented', 'on');
|
|
||||||
end
|
|
||||||
|
|
||||||
% для упрощения записи
|
|
||||||
SQRT2 = sqrt(2);
|
|
||||||
SQRT3 = sqrt(3);
|
|
||||||
PI2 = pi*2;
|
|
||||||
|
|
||||||
% ... полная мощность, ВА
|
|
||||||
Snom = Pnom/CosFi/Eff;
|
|
||||||
% ... механическая скорость, рад/с
|
|
||||||
WmNom = NmNom/60*PI2;
|
|
||||||
% ... момент на валу, Н*м
|
|
||||||
Mnom = Pnom/WmNom;
|
|
||||||
% ... эл. скорость, рад/с
|
|
||||||
WeNom = WmNom*Pp;
|
|
||||||
% ... эл. скорость, Гц
|
|
||||||
FeNom = WeNom/PI2;
|
|
||||||
% ... потокосцепление статора, Вб
|
|
||||||
PsiNom = Unom*SQRT2/(WeNom*SQRT3);
|
|
||||||
% ... напряжение на входе инвертора, B
|
|
||||||
UdcNom = Unom*SQRT2;
|
|
||||||
% ... ток, А (ampl)
|
|
||||||
Inom = Snom/(Unom*SQRT3)*SQRT2*0.5;%0.5 - т.к. обмоток две
|
|
||||||
|
|
||||||
% схема замещения ГЭД
|
|
||||||
if GED == "22220"
|
|
||||||
GED
|
|
||||||
Rs = 11.8e-3;%Ом
|
|
||||||
Xls = 72.7e-3;%72.7e-3;%Ом
|
|
||||||
Rr = 11.1e-3*2.0;%*0.8;%Ом
|
|
||||||
Xlr = 85.5e-3;%Ом
|
|
||||||
Xm = 2.9322;%2.87;%Ом
|
|
||||||
Fe = 18;%Гц
|
|
||||||
Lls = Xls/(Fe*PI2);%Гн
|
|
||||||
Llr = Xlr/(Fe*PI2);%Гн
|
|
||||||
Lm = Xm/(Fe*PI2);%Гн
|
|
||||||
elseif GED == "23550"
|
|
||||||
GED
|
|
||||||
Rs = 0.0282;%Ом
|
|
||||||
Xls = 0.4016;%Ом
|
|
||||||
Rr = 0.139;%Ом
|
|
||||||
Xlr = 0.2006;%Ом
|
|
||||||
Xm = 5.2796;%Ом
|
|
||||||
Fe = 18.2;%Гц
|
|
||||||
Lls = Xls/(Fe*PI2);%Гн
|
|
||||||
Llr = Xlr/(Fe*PI2);%Гн
|
|
||||||
Lm = Xm/(Fe*PI2);%Гн
|
|
||||||
end
|
|
||||||
|
|
||||||
% ёмкость на входе INU, Ф
|
|
||||||
Cdc = 50e-3;
|
|
||||||
% снаберы в INU
|
|
||||||
Csn = Pnom/(1000*WeNom*Unom^2)/10;%Ф (0.5 - т.к. преобразователей два)
|
|
||||||
Rsn = 2*Ts/Csn*10;%Ом
|
|
||||||
|
|
||||||
% постоянная времени фильтра для тока ГЭД, c
|
|
||||||
Tiac = 30e-6;
|
|
59
McuLib/m/installTemplates.m
Normal file
59
McuLib/m/installTemplates.m
Normal 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
|
@ -8,6 +8,8 @@ classdef mcuMask
|
|||||||
function MaskInitialization(maskInitContext)
|
function MaskInitialization(maskInitContext)
|
||||||
% Получаем хэндл текущего блока
|
% Получаем хэндл текущего блока
|
||||||
blk = gcbh;
|
blk = gcbh;
|
||||||
|
set_param(blk,"MaskSelfModifiable","on")
|
||||||
|
set_param(blk, 'LinkStatus', 'none');
|
||||||
% Получаем объект маски текущего блока
|
% Получаем объект маски текущего блока
|
||||||
mask = Simulink.Mask.get(gcb);
|
mask = Simulink.Mask.get(gcb);
|
||||||
% mcuMask.disp(1,'');
|
% mcuMask.disp(1,'');
|
||||||
@ -143,11 +145,14 @@ classdef mcuMask
|
|||||||
|
|
||||||
% Загружаем содержимое файла
|
% Загружаем содержимое файла
|
||||||
set_param(block, 'wrapperCode', '');
|
set_param(block, 'wrapperCode', '');
|
||||||
code = fileread(filename);
|
try
|
||||||
code = regexprep(code, '\r\n?', '\n'); % нормализуем окончания строк
|
code = fileread(filename);
|
||||||
|
code = regexprep(code, '\r\n?', '\n'); % нормализуем окончания строк
|
||||||
|
|
||||||
includesText = editCode.extractSection(code, section);
|
includesText = editCode.extractSection(code, section);
|
||||||
set_param(block, 'wrapperCode', includesText);
|
set_param(block, 'wrapperCode', includesText);
|
||||||
|
catch
|
||||||
|
end
|
||||||
% % Поиск тела обычной функции
|
% % Поиск тела обычной функции
|
||||||
% expr = sprintf('void %s()', sel);
|
% expr = sprintf('void %s()', sel);
|
||||||
% funcBody = editCode.extractSection(code, expr);
|
% funcBody = editCode.extractSection(code, expr);
|
||||||
@ -312,13 +317,17 @@ classdef mcuMask
|
|||||||
function set_name()
|
function set_name()
|
||||||
block = gcb;
|
block = gcb;
|
||||||
% Получаем параметр имени S-Function из маски блока
|
% Получаем параметр имени S-Function из маски блока
|
||||||
newName = get_param(block, 'sfuncName');
|
newName = mcuMask.get_name();
|
||||||
|
|
||||||
% Путь к файлу, в котором надо заменить строку
|
% Путь к файлу, в котором надо заменить строку
|
||||||
cFilePath = fullfile(pwd, './MCU_Wrapper/MCU.c'); % <-- укажи правильный путь
|
cFilePath = fullfile(pwd, './MCU_Wrapper/MCU.c'); % <-- укажи правильный путь
|
||||||
|
|
||||||
% Считаем файл в память
|
% Считаем файл в память
|
||||||
fileText = fileread(cFilePath);
|
try
|
||||||
|
fileText = fileread(cFilePath);
|
||||||
|
catch
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
% Регулярное выражение для поиска строки с define
|
% Регулярное выражение для поиска строки с define
|
||||||
% Заменим строку вида: #define S_FUNCTION_NAME old_name
|
% Заменим строку вида: #define S_FUNCTION_NAME old_name
|
||||||
@ -336,10 +345,14 @@ classdef mcuMask
|
|||||||
error('Не удалось открыть файл для записи.');
|
error('Не удалось открыть файл для записи.');
|
||||||
end
|
end
|
||||||
fwrite(fid, updatedText);
|
fwrite(fid, updatedText);
|
||||||
fclose(fid);
|
fclose(fid);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function name = get_name()
|
||||||
|
block = gcb;
|
||||||
|
% Получаем параметр имени S-Function из маски блока
|
||||||
|
name = get_param(block, 'sfuncName');
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,8 +8,6 @@ function res = mexing(compile_mode)
|
|||||||
delete("*.mexw64.pdb")
|
delete("*.mexw64.pdb")
|
||||||
delete(".\MCU_Wrapper\Outputs\*.*");
|
delete(".\MCU_Wrapper\Outputs\*.*");
|
||||||
set_param(gcb, 'consoleOutput', '');
|
set_param(gcb, 'consoleOutput', '');
|
||||||
% Порты S-Function
|
|
||||||
mcuPorts.write();
|
|
||||||
% Дефайны
|
% Дефайны
|
||||||
definesUserArg = parseDefinesMaskText();
|
definesUserArg = parseDefinesMaskText();
|
||||||
definesWrapperConfigArg = buildWrapperDefinesString();
|
definesWrapperConfigArg = buildWrapperDefinesString();
|
||||||
@ -30,8 +28,10 @@ function res = mexing(compile_mode)
|
|||||||
|
|
||||||
[includesArg, codeArg] = make_mex_arguments('incTable', 'srcTable');
|
[includesArg, codeArg] = make_mex_arguments('incTable', 'srcTable');
|
||||||
|
|
||||||
|
Name = mcuMask.get_name();
|
||||||
|
|
||||||
% Вызов батника с двумя параметрами: includes и code
|
% Вызов батника с двумя параметрами: includes и code
|
||||||
cmd = sprintf('.\\MCU_Wrapper\\run_mex.bat "%s" "%s" "%s" "%s" %s %s', includesArg, codeArg, definesUserArg, definesConfigArg, modeArg, echoArg);
|
cmd = sprintf('.\\MCU_Wrapper\\run_mex.bat %s "%s" "%s" "%s" "%s" %s %s', Name, includesArg, codeArg, definesUserArg, definesConfigArg, modeArg, echoArg);
|
||||||
|
|
||||||
if mcuMask.read_checkbox('extConsol')
|
if mcuMask.read_checkbox('extConsol')
|
||||||
cmdout = runBatAndShowOutput(cmd);
|
cmdout = runBatAndShowOutput(cmd);
|
||||||
|
@ -115,7 +115,7 @@ static void mdlInitializeSizes(SimStruct* S)
|
|||||||
for (int i = 0; i < IN_PORT_NUMB; i++)
|
for (int i = 0; i < IN_PORT_NUMB; i++)
|
||||||
{
|
{
|
||||||
ssSetInputPortWidth(S, i, inLengths[i]);
|
ssSetInputPortWidth(S, i, inLengths[i]);
|
||||||
ssSetInputPortDirectFeedThrough(S, i, 0); // или 1, если нужно
|
ssSetInputPortDirectFeedThrough(S, i, 0);
|
||||||
ssSetInputPortRequiredContiguous(S, i, 1);
|
ssSetInputPortRequiredContiguous(S, i, 1);
|
||||||
}
|
}
|
||||||
|
|
@ -212,13 +212,13 @@ void SIM_writeOutputs(SimStruct* S)
|
|||||||
int global_index;
|
int global_index;
|
||||||
|
|
||||||
//-------------WRITTING OUTPUT--------------
|
//-------------WRITTING OUTPUT--------------
|
||||||
for (int j = 0; j < OUT_PORT_NUMB; j++)
|
for (int arr_ind = 0; arr_ind < OUT_PORT_NUMB; arr_ind++)
|
||||||
{
|
{
|
||||||
Output = ssGetOutputPortRealSignal(S, j);
|
Output = ssGetOutputPortRealSignal(S, arr_ind);
|
||||||
for (int i = 0; i < outLengths[i]; i++)
|
for (int val_ind = 0; val_ind < outLengths[arr_ind]; val_ind++)
|
||||||
{
|
{
|
||||||
global_index = XD_OUTPUT_START + outOffsets[j] + i;
|
global_index = XD_OUTPUT_START + outOffsets[arr_ind] + val_ind;
|
||||||
Output[i] = Out_Buff[global_index];
|
Output[val_ind] = Out_Buff[global_index];
|
||||||
Out_Buff[global_index] = 0;
|
Out_Buff[global_index] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,13 +236,13 @@ void SIM_readInputs(SimStruct* S)
|
|||||||
int global_index;
|
int global_index;
|
||||||
|
|
||||||
//-------------READING INPUTS---------------
|
//-------------READING INPUTS---------------
|
||||||
for (int j = 0; j < IN_PORT_NUMB; j++)
|
for (int arr_ind = 0; arr_ind < IN_PORT_NUMB; arr_ind++)
|
||||||
{
|
{
|
||||||
Input = ssGetInputPortRealSignal(S, j);
|
Input = ssGetInputPortRealSignal(S, arr_ind);
|
||||||
for (int i = 0; i < inLengths[j]; i++)
|
for (int val_ind = 0; val_ind < inLengths[arr_ind]; val_ind++)
|
||||||
{
|
{
|
||||||
global_index = XD_INPUT_START + inOffsets[j] + i;
|
global_index = XD_INPUT_START + inOffsets[arr_ind] + val_ind;
|
||||||
In_Buff[global_index] = Input[i];
|
In_Buff[global_index] = Input[val_ind];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//------------------------------------------
|
//------------------------------------------
|
||||||
|
@ -11,11 +11,12 @@
|
|||||||
:: %4 — режим компиляции (debug/release)
|
:: %4 — режим компиляции (debug/release)
|
||||||
|
|
||||||
:: Сохраняем как переменные
|
:: Сохраняем как переменные
|
||||||
set includes_USER=%~1
|
set filename=%~1
|
||||||
set code_USER=%~2
|
set includes_USER=%~2
|
||||||
set defines_USER=%~3
|
set code_USER=%~3
|
||||||
set defines_CONFIG=%~4
|
set defines_USER=%~4
|
||||||
set compil_mode=%~5
|
set defines_CONFIG=%~5
|
||||||
|
set compil_mode=%~6
|
||||||
|
|
||||||
:: Заменяем __EQ__ на =
|
:: Заменяем __EQ__ на =
|
||||||
set defines_USER=%defines_USER:__EQ__==%
|
set defines_USER=%defines_USER:__EQ__==%
|
||||||
@ -51,15 +52,15 @@ set includes= %includes_WRAPPER% %includes_PERIPH% %includes_USER%
|
|||||||
set codes= %code_WRAPPER% %code_PERIPH% %code_USER%
|
set codes= %code_WRAPPER% %code_PERIPH% %code_USER%
|
||||||
set defines= %defines_WRAPPER% %defines_CONFIG% %defines_USER%
|
set defines= %defines_WRAPPER% %defines_CONFIG% %defines_USER%
|
||||||
:: -------OUTPUT FOLDER--------
|
:: -------OUTPUT FOLDER--------
|
||||||
set output= -outdir "."
|
set output= -outdir "." -output %filename%
|
||||||
|
|
||||||
:: если нужен дебаг, до запускаем run_mex с припиской debug
|
:: если нужен дебаг, до запускаем run_mex с припиской debug
|
||||||
IF [%1]==[debug] (set debug= -g)
|
IF %compil_mode%==debug (set debug= -g)
|
||||||
::-------------------------------------------------------------------------
|
::-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
::------START COMPILING-------
|
::------START COMPILING-------
|
||||||
if "%6"=="echo_enable" (
|
if "%7"=="echo_enable" (
|
||||||
echo Compiling...
|
echo Compiling...
|
||||||
|
|
||||||
echo ===========================
|
echo ===========================
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
**************************************************************************
|
**************************************************************************
|
||||||
* @file app_config.h
|
* @file app_config.h
|
||||||
* @brief Заголовочный файл для пользовательских конфигураций.
|
* @brief Заголовочный файл для пользовательских конфигураций.
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
#ifndef _APP_CONFIG
|
#ifndef _APP_CONFIG
|
||||||
#define _APP_CONFIG
|
#define _APP_CONFIG
|
||||||
|
BIN
mcuwrapper.mltbx
BIN
mcuwrapper.mltbx
Binary file not shown.
@ -1,19 +1,19 @@
|
|||||||
<deployment-project plugin="plugin.toolbox" plugin-version="1.0">
|
<deployment-project plugin="plugin.toolbox" plugin-version="1.0">
|
||||||
<configuration file="E:\.WORK\MATLAB\matlab_23550\McuLib\mcuwrapper.prj" location="E:\.WORK\MATLAB\matlab_23550\McuLib" name="mcuwrapper" target="target.toolbox" target-name="Package Toolbox">
|
<configuration build-checksum="2264823683" file="E:\.WORK\MATLAB\mcu_matlab\mcuwrapper.prj" location="E:\.WORK\MATLAB\mcu_matlab" name="mcuwrapper" target="target.toolbox" target-name="Package Toolbox">
|
||||||
<param.appname>mcuwrapper</param.appname>
|
<param.appname>MCU Wrapper</param.appname>
|
||||||
<param.authnamewatermark>Razvalyaev</param.authnamewatermark>
|
<param.authnamewatermark>Razvalyaev</param.authnamewatermark>
|
||||||
<param.email>wot890089@mail.ru</param.email>
|
<param.email>wot890089@mail.ru</param.email>
|
||||||
<param.company>NIO-12</param.company>
|
<param.company>NIO-12</param.company>
|
||||||
<param.summary>Library for run MCU program in Simulink</param.summary>
|
<param.summary>Library for run MCU program in Simulink</param.summary>
|
||||||
<param.description />
|
<param.description />
|
||||||
<param.screenshot />
|
<param.screenshot />
|
||||||
<param.version>1.0</param.version>
|
<param.version>1.01</param.version>
|
||||||
<param.output>${PROJECT_ROOT}\mcuwrapper.mltbx</param.output>
|
<param.output>${PROJECT_ROOT}\MCU Wrapper.mltbx</param.output>
|
||||||
<param.products.name />
|
<param.products.name />
|
||||||
<param.products.id />
|
<param.products.id />
|
||||||
<param.products.version />
|
<param.products.version />
|
||||||
<param.platforms />
|
<param.platforms />
|
||||||
<param.guid>e7dd2564-e462-4878-b445-45763482263f</param.guid>
|
<param.guid>bcf7498f-65f2-487f-b762-d3e88d9a4ebe</param.guid>
|
||||||
<param.exclude.filters />
|
<param.exclude.filters />
|
||||||
<param.exclude.pcodedmfiles>true</param.exclude.pcodedmfiles>
|
<param.exclude.pcodedmfiles>true</param.exclude.pcodedmfiles>
|
||||||
<param.examples />
|
<param.examples />
|
||||||
@ -48,7 +48,6 @@
|
|||||||
<unset>
|
<unset>
|
||||||
<param.description />
|
<param.description />
|
||||||
<param.screenshot />
|
<param.screenshot />
|
||||||
<param.version />
|
|
||||||
<param.output />
|
<param.output />
|
||||||
<param.products.name />
|
<param.products.name />
|
||||||
<param.products.id />
|
<param.products.id />
|
||||||
@ -82,22 +81,22 @@
|
|||||||
<param.additional.sw.linux.url />
|
<param.additional.sw.linux.url />
|
||||||
</unset>
|
</unset>
|
||||||
<fileset.rootdir>
|
<fileset.rootdir>
|
||||||
<file>${PROJECT_ROOT}</file>
|
<file>${PROJECT_ROOT}\McuLib</file>
|
||||||
</fileset.rootdir>
|
</fileset.rootdir>
|
||||||
<fileset.rootfiles>
|
<fileset.rootfiles>
|
||||||
<file>${PROJECT_ROOT}\install_my_library.m</file>
|
<file>${PROJECT_ROOT}\McuLib\install_my_library.m</file>
|
||||||
<file>${PROJECT_ROOT}\lib</file>
|
<file>${PROJECT_ROOT}\McuLib\lib</file>
|
||||||
<file>${PROJECT_ROOT}\m</file>
|
<file>${PROJECT_ROOT}\McuLib\m</file>
|
||||||
<file>${PROJECT_ROOT}\sl_customization.m</file>
|
<file>${PROJECT_ROOT}\McuLib\sl_customization.m</file>
|
||||||
<file>${PROJECT_ROOT}\slblocks.m</file>
|
<file>${PROJECT_ROOT}\McuLib\slblocks.m</file>
|
||||||
<file>${PROJECT_ROOT}\startup.m</file>
|
<file>${PROJECT_ROOT}\McuLib\startup.m</file>
|
||||||
<file>${PROJECT_ROOT}\templates</file>
|
<file>${PROJECT_ROOT}\McuLib\templates</file>
|
||||||
</fileset.rootfiles>
|
</fileset.rootfiles>
|
||||||
<fileset.depfun.included />
|
<fileset.depfun.included />
|
||||||
<fileset.depfun.excluded />
|
<fileset.depfun.excluded />
|
||||||
<fileset.package />
|
<fileset.package />
|
||||||
<build-deliverables>
|
<build-deliverables>
|
||||||
<file location="${PROJECT_ROOT}" name="mcuwrapper.mltbx" optional="false">E:\.WORK\MATLAB\matlab_23550\McuLib\mcuwrapper.mltbx</file>
|
<file location="${PROJECT_ROOT}" name="MCU Wrapper.mltbx" optional="false">E:\.WORK\MATLAB\mcu_matlab\MCU Wrapper.mltbx</file>
|
||||||
</build-deliverables>
|
</build-deliverables>
|
||||||
<workflow />
|
<workflow />
|
||||||
<matlab>
|
<matlab>
|
Loading…
Reference in New Issue
Block a user