Динамический обмен данными (DDE), страница 8

 rc=ddepoke(chan1,'r2c2','=SIN(B1)');

 rc=ddepoke(chan1,'r2c3','=SIN(C1)');

 % Запишем в Ячейки строки 3 команды  суммированиЯ Excel

 rc=ddepoke(chan1,'r3c1','=СУММ(A1:A2)');

 rc=ddepoke(chan1,'r3c2','=СУММ(B1:B2)');

 rc=ddepoke(chan1,'r3c3','=СУММ(C1:C2)');

 rc=ddepoke(chan1,'r4c3','=СУММ(A3:C3)');

 rc=ddeexec(chan1,'[formula.goto("r1c1")]')

 % Считаем данные после суммированиЯ  Excel в матрицу z2 MATLAB

 z2=ddereq(chan1,'r1c1:r3c3')

 % Считаем расчитанные данные диапазона  Excel в матрицу z3 MATLAB в текстовом формате

 z3=ddereq(chan1,'r1c1:r3c3',[1 1])

 zs1=ddereq(chan1,'r4c3')

 zs2=ddereq(chan1,'r5c3')

 % Закроем канал

 rc = ddeterm(chan1)

catch

   disp('Не уcтановлено DDE соединение');

end


Доступ к MATLAB Как Серверу

Приложение-клиент может обратиться к MATLAB как серверу DDE следующими способами, в зависимости от приложения-клиента:

Если Вы используете приложение, которое обеспечивает функции или макросы, чтобы провести сеансы связи DDE, то Вы можете использовать эти функции. Например, Microsoft Excel, Word для Windows, и Visual Basic обеспечивает функции DDE.

Рисунок ниже иллюстрирует, как MATLAB функционирует как сервер. DDE функциии в приложении-клиенте, связываются с модулем сервера DDE MATLAB'а . Функции DDE клиента могут быть обеспечены или приложением или специальной Машинной Библиотекой MATLABа.

Иерархия Имен DDE

Когда Вы обращаетесь к MATLABу  как серверу, Вы должны определить его имя службы, раздел, и элемент. Рисунок ниже иллюстрирует иерархию имен DDE MATLAB . Разделы и элементы описаны более подробно ниже.

Имеется два раздела MATLAB  - Системный и Машинный.

Системный Раздел MATLAB (System)

Системный раздел позволяет пользователям просматривать список разделов, список системных элементов раздела и  список форматов, поддерживающихся сервером.

MATLAB Системный раздел поддерживает следующие элементы:

  • Системные элементы (SysItems)
    Обеспечивает разграниченный позицией табуляции список элементов, поддерживающихся  Системным разделом.
  • Формат (Format)
    Обеспечивает разграниченный позицией табуляции список строковых имен всех форматов, поддержавших сервером. MATLAB поддерживает Text, Metafilepict, и XLTable. Эти форматы описаны в разделе "Форматы буфера обмена".
  • Разделы (Topics)
    Обеспечивает разграниченный позицией табуляции список имен разделов, поддержавших MATLAB.

 Машинный раздел MATLAB (Engine)

Машинный раздел позволяет пользователям использовать MATLAB как сервер, передавая  команды, чтобы выполнить их, запрашивать данные, или выполнить отправку данных.

MATLAB Машинный раздел поддерживает следующие  элементы:

  • EngEvalString
    Определяет имя элемента, когда Вы посылаете команду MATLAB для выполнения.
  • EngStringResult
    Обеспечивает строковый результат выполнения команды DDE , когда Вы запрашиваете данные от MATLAB.
  • EngFigureResult
    Обеспечивает графический результат выполнения команды DDE , когда Вы запрашиваете данные от MATLAB.
  • <имя матрицы >
    При требовании данных от MATLAB, это - имя матрицы, для которой данные запрашиваются.
    При отправке данных в MATLAB, это - имя матрицы, которая будет создана или модифицирована.

 Машинный раздел MATLAB поддерживает три операции, которые могут использоваться приложениями с интерфейсом клиента DDE.

Эти операции включают инициализацию канала связи, посылку команд в MATLAB для выполнения, требование данных от MATLAB, и отправки данных в MATLAB.