ΣSigmaStudio English

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 и ниже
  1. Убедитесь, что на вашей машине доступно приложение RegAsm.exe. Оно должно находиться в «C:\Windows\Microsoft.NET\Framework\v2.0.50727\». Если оно не установлено, загрузите и установите «.NET Framework 2.0 Software Development Kit (SDK)», доступный у Microsoft.
  2. Откройте командную строку (от имени администратора)
    • Если вы используете 32-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework\v2.0.50727»
    • Если вы используете 64-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework64\v2.0.50727»
  3. Выполните следующую команду для регистрации файла сборки: 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 и новее
  1. Убедитесь, что на вашей машине доступно приложение RegAsm.exe. Оно должно находиться в «C:\Windows\Microsoft.NET\Framework\v4.0.30319». Если оно не установлено, загрузите и установите «.NET Framework 4.7 Software Development Kit (SDK)», доступный у Microsoft.
  2. Откройте командную строку (от имени администратора)
    • Если вы используете 32-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework\v4.0.30319»
    • Если вы используете 64-разрядную версию MATLAB, измените рабочий каталог на «C:\Windows\Microsoft.NET\Framework64\v4.0.30319»
  3. Выполните следующую команду для регистрации файла сборки: 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 перед запуском вашего клиента [Python или LabView/Matlab].

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)