Содержание
SigmaStudio как MATLAB® COM сервер
Чтобы использовать MATLAB в качестве клиента сервера SigmaStudio, оба приложения должны быть установлены и запущены на одной машине.
В этой конфигурации MATLAB является COM-клиентом автоматизации, а SigmaStudio (через SigmaStudioServer) становится COM-сервером автоматизации. Для работы с COM необходимо сначала зарегистрировать SigmaStudioServer как COM-объект.
Регистрация SigmaStudioServer как COM-объекта
Автоматическая регистрация COM-объекта
Если вы установили SigmaStudio в каталог по умолчанию (C:\Program Files\Analog Devices\SigmaStudio X.xx, где X.xx — версия), и ваш .NET framework обновлен, вы можете воспользоваться утилитой регистрации SigmaStudioServer. Щелкните здесь правой кнопкой мыши и выберите «Сохранить ссылку как…», затем запустите сохраненный файл от имени администратора. Вам потребуется ввести версию SigmaStudio (например, «3.17» для версии 3.17), а также указать, используете ли вы 32- или 64-разрядную версию MATLAB.
SigmaStudio 3.16 и ниже
- Убедитесь, что на вашей машине доступно приложение RegAsm.exe. Оно должно находиться в «C:\Windows\Microsoft.NET\Framework\v2.0.50727\». Если оно не установлено, загрузите и установите «.NET Framework 2.0 Software Development Kit (SDK)», доступный у Microsoft.
- Откройте командную строку (от имени администратора)
- Если вы используете 32-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework\v2.0.50727»
- Если вы используете 64-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework64\v2.0.50727»
- Выполните следующую команду для регистрации файла сборки: RegAsm «C:\Program Files\Analog Devices\SigmaStudio 3.xx\Analog.SigmaStudioServer.dll» /codebase
Примечание: здесь xx в 3.xx должно соответствовать текущей версии SigmaStudio, например 3.15.
После регистрации файла сборки вы должны получить сообщение «Type registered successfully».
SigmaStudio 3.17 и новее
- Убедитесь, что на вашей машине доступно приложение RegAsm.exe. Оно должно находиться в «C:\Windows\Microsoft.NET\Framework\v4.0.30319». Если оно не установлено, загрузите и установите «.NET Framework 4.7 Software Development Kit (SDK)», доступный у Microsoft.
- Откройте командную строку (от имени администратора)
- Если вы используете 32-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework\v4.0.30319»
- Если вы используете 64-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework64\v4.0.30319»
- Выполните следующую команду для регистрации файла сборки: RegAsm «C:\Program Files\Analog Devices\SigmaStudio 3.xx\Analog.SigmaStudioServer.dll» /codebase
Примечание: здесь xx в 3.xx должно соответствовать текущей версии SigmaStudio, например 3.15.
После регистрации файла сборки вы должны получить сообщение «Type registered successfully».
Создание процесса SigmaStudioServer в MATLAB
- SigmaSetup.m
% SigmaSetup.m % ВАЖНО: Сначала запустите приложение SigmaStudio! % Добавьте каталог установки SigmaStudio в path path(path, 'C:\Program Files\Analog Devices\SigmaStudio 4.5'); % Создайте экземпляр сервера SigmaStudio и вызовите интерфейс ss = actxserver('Analog.SigmaStudioServer.SigmaStudioServer'); ss_server = ss.invoke('ISigmaStudioServer'); % Закройте проект ss_server.CLOSE_PROJECT(); % Загрузите файл примера проекта ss_server.OPEN_PROJECT( "C:\Users\SReddy2\Downloads\Matlab Test\MatLabTest.dspproj"); % Скомпилируйте и загрузите программу в hardware ss_server.COMPILE_PROJECT(); % Установите параметр Gain ss_server.PARAMETER_WRITE("IC 1",22, 8,24,2.0);
SigmaStudio как MATLAB® .NET сервер
Документацию по вызову .NET библиотек можно найти здесь. Документацию по вызову методов (функций) в .NET библиотеках можно найти здесь.
Настройте взаимодействие следующим образом.
try
theDir = dir('/Program Files/Analog Devices/* */Analog.SigmaStudioServer.dll');
if (isempty(theDir))
fprintf('ERROR: Cannot find Analog.SigmaStudioServer.dll\n');
return;
end
catch
fprintf('ERROR: Cannot find Analog.SigmaStudioServer.dll\n');
return;
end
theFile = fullfile(theDir(end).folder,'Analog.SigmaStudioServer.dll');
theAssembly = NET.addAssembly(theFile); % load assembly
SSclass = Analog.SigmaStudioServer.SigmaStudioServer; % handle to class
Затем вы можете запросить у DLL список реализованных методов с помощью
methods SSclass
или, для получения удобной таблицы с аргументами и возвращаемыми значениями, используйте
methodsview(SSclass)