Для УСПОКОИТЕЛЬНОГО клиента, чтобы получить функциональные подписи функций MATLAB®, развернутых на MATLAB Production Server™ с помощью API открытия, необходимо встроить информацию о функциях MATLAB в файле JSON при упаковке развертываемого архива.
После добавления функций MATLAB, чтобы развернуться к приложению Production Server Compiler, в разделе Include MATLAB function signature file, нажимают кнопку Create File. Это действие создает шаблон файла JSON с именем .<projectName>functionSignatures.json
файл является одним объектом JSON. Это содержит версию схемы и список функциональных объектов. Каждый функциональный объект содержит список объектов подписи, и каждый объект подписи содержит список объектов аргумента.<projectName>functionSignatures.json
Если ваши функции MATLAB передают struct или cell типы данных, можно добавить их описания в файл JSON также.
Можно получить доступ к объектному файлу JSON с сервера при помощи.

Версия схемы имеет значение, которое является строкой JSON в формате <major#>.<minor#>.<patch#>, с каждым номером, заданным как неотрицательное целое число.
Функциональные объекты автоматически наследовали свое имя от имени функций MATLAB, которые вы добавили в проект. Линия цели для функционального объекта наследована от функционального описания, предоставленного в функции MATLAB. Значение каждого функционального объекта является объектом подписи.
{
"functionName1": { signatureObj1},
"functionName2": { signatureObj2}
}Объект подписи задает список аргументов ввода и вывода и поддерживаемых платформ для функции. Значение свойств является массивом объектов аргумента.
{
"functionName1":
{
"inputs": [ argumentObj1, argumentObj2 ]
}
}| Свойство | Описание | Тип данных JSON значения |
|---|---|---|
| Список входных аргументов функции | Массив объектов аргумента |
| Список выходных аргументов функции | Массив объектов аргумента |
Объекты аргумента задают информацию для каждого из аргументов ввода и вывода.
{
"functionName1":
{
"inputs":
[
{"name":"in1", "type":["double"], "purpose":"<input 1 description>"},
{"name":"in2", "type":["logical"], "purpose":"<input 2 description>"}
]
}
}functionName1 функция, in1 должен появиться перед in2.Каждый объект аргумента может включать следующие свойства.
Объект определения типа задает массивы ячеек и структуры. Это должно быть задано, только если любое из значений к объектам аргумента является ячейками или структурами. Сгенерированный шаблон файла JSON не имеет этого объекта по умолчанию. Вы, как ожидают, добавите его только если необходимый.
В схеме это обозначается с помощью имени _typedefs и его значение является именем одного или нескольких объекты структуры или ячейка. Тип совпадает с объектом аргумента.
Пример Использования Гомогенного Массива ячеек: Если функция MATLAB sortinput принимает массив ячеек как вход и возвращает массив ячеек, как выведено, и каждая ячейка во входе состоит из структуры, ее представление JSON:
{
"_schemaVersion": "1.1.0",
"_typedefs" : {
"struct_names_scores_of_students": {
"purpose": "Names and scores of students",
"type": "struct",
"fields": [
{"name": "Name", "type": "char"},
{"name": "Score", "type": ["double","size=1,1"]}
]
},
"cell_student_information": {
"purpose": "Cell representing student information",
"type": "cell",
"elements": {
"type": "struct:struct_names_scores_of_students"
}
}
},
"sortinput": {
"inputs": [
{
"name": "unsorted_input",
"type": ["cell:cell_student_information"],
"purpose": "Unsorted list of students and their scores"
}
],
"outputs": [
{
"name": "sorted_output",
"type": ["cell:cell_student_information"],
"purpose": "Sorted list of students with respect to their scores"
}
]
}
}Пример Использования Неоднородного Массива ячеек: Если функция MATLAB organize принимает массив ячеек с длиной 3 содержащий символ, квадратную матрицу и строку, как введено, и возвращается, вектор удваивается, как выведено, его представление JSON:
{
"_typedefs": {
"cell_het_mydata": {
"purpose": "cell containing character, matrix, and string",
"type" : "cell",
"elements" : [
{ "type": ["char", "size=1,1"], "purpose": "cell element 1 is a character" },
{ "type": ["double", "size=N,N"], "purpose": "cell element 2 is a square matrix" },
{ "type": "char", "purpose": "cell element 3 is a string" }
]
},
"organize": {
"inputs": [
{
"name": "data",
"type": ["cell:cell_het_mydata","size=3,1"],
"purpose": "heterogenous cell array"
}
],
"outputs": [
{
"name": "numerator",
"type": "double",
"purpose": "result of function"
}
]
}
}