Команда start

Команда start при первом подключении создает новую модель для заданного пользователя с заданным алгоритмом. При повторном запуске с теми же параметрами она подключается к уже запущенной модели.

Схема запроса

Поля запроса команды start

ПолеТип поляНазначение
CommandJSONКорневой элемент, содержащий собственно текст запроса
CommandTypestringТип команды. В случае команды start, нужно указать значение start
CommandIdstringИдентификатор команды, для удобства отладки. Используется на усмотрение разработчика программы-агента. Можно указать любой текст, например UUID. Это опциональное поле
ArgsJSONАргументы команды
AccessTokenstringТокен доступа, который необходимо получить с помощью API авторизации
ModelIdstringНазвание модели, которая должна использоваться для расчетов. Название должно соответствовать одному из существующих конфигурационных файлов, имеющихся на сервере.

В этом поле нужно указать одну из моделей, указанных в списке доступных моделей, в соответствии с их прикладным назначением.

Существует сценарий, в котором это поле остается пустым, а конфигурация модели передается в поле Model. Однако на практике данный способ используется редко, поскольку отладка модели требует отдельной квалификации и обычно выполняется при поддержке психофизиологов компании.
ModelstringВ этом поле можно передать XML-конфигурацию, задающую алгоритм обработки данных. Это альтернативный способ по отношению к ModelId, который используется крайне редко.

По умолчанию, устанавливается значение «<modules/>».

Описание XML API для задания алгоритмов расчета приведено в разделе API вычислительных моделей.
RunModulesbooleanДиректива для запуска вычислительных модулей после старта самой модели. Стороннему разработчику всегда следует устанавливать этот параметр в true.

Запуск и остановка вычислительных модулей могут быть осуществлены отдельной командой, но эта функция нужна только для отладки самой Платформы

Пример запроса команды start

Пример запроса, содержащий команду start:

{
  "Command": {
    "CommandType": "start",
    "CommandId": "61f0c404-5cb3-11e7-907b-a6006ad3dba0",
    "Args": {
      "AccessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjMmQzOWZlN2NlMWE2NTMwNWRlZjJiNjAzMTNhYjVhIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE2Nzk0ODk4MDksImV4cCI6MTY4MDc4NTgwOSwiaXNzIjoiaHR0cHM6Ly9jZGIubmV1cm9wLm9yZyIsImF1ZCI6ImFwaSIsImNsaWVudF9pZCI6IjMiLCJzdWIiOiIxMiIsImF1dGhfdGltZSI6MTY3OTQ4OTgwOSwiaWRwIjoiUFdEIiwibmFtZSI6ItCV0LPQvtGAINCQ0L_RgNC10LvRjNGB0LrQuNC5Iiwicm9sZSI6IkdMT0JBTF9BRE1JTiIsImp0aSI6IjIyQTQ2MzUzNzBGNjY5Mzc1QTVBNDhERDAwMTM2RjcxIiwiaWF0IjoxNjc5NDg5ODA5LCJzY29wZSI6WyJhcGkiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsiY3VzdG9tIl19.qRxwyW3Xq1-LF-NDTnrqiPFKebbHIh68KmjIimVnaJBTxaXOYEWf5awdAyYtzPThw4FRNUW4C5LFGAT5woQyju4WACRNMqMoj7BvbyzuEnbnOSJPazDhjuLm50jLhQfT7JPo0nU1tfK4BX6jklJOQn6F74AThaedvxXMCZn5lyXEc_n6M5rGZWXuYm9fyqud_2c4lICFJtBu_mQPOQ1xxRbROMBL0GFmhe4oOmMv6tkzP1F3MU9BdpsuvzcSZSqvhDeltuXADd9ar36G7qbLby-I_IasCboNxoHhVuHt35R1rTakeYhrswkZliJOuk8gc9hQHpu4KGZL_hV0wZ3vsQ",
      "ModelId": "muse_basemodel",
      "Model": "<modules/>",
      "RunModules": true
    }
  }
}

Схема ответа

Поля ответа команды start

ПолеТип поляНазначение
ResponseJSONКорневой элемент для ответа
CommandJSONПолное повторение команды, пришедшей от клиента, со всеми дочерними полями
StatusintegerСтатус выполнения команды (0 — успешное выполнение, 1 — ошибка)
ErrorCodestringСимволический код ошибки, в соответствии со справочником кодов ошибок Websockets API
BodyJSONДополнительная информация о результатах выполнения команды
RunIdstringУникальный идентификатор работающей модели (вычислителя), запущенной в результате выполнения команды start
ClientConfigstringКлиентская конфигурация модулей вычислительной модели. Сторонний разработчик может игнорировать данное поле.

Поле используется нативными клиентскими приложениями Платформы. Позволяет понять, какие параметры могут быть настроены для данной модели.

Пример ответа команды start

Пример ответа, возвращающегося в результате выполнения команды start:

{
  "Response": {
    "Command": {
      "CommandType": "start",
      "CommandId": "61f0c404-5cb3-11e7-907b-a6006ad3dba0",
      "Args": {
        "AccessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjMmQzOWZlN2NlMWE2NTMwNWRlZjJiNjAzMTNhYjVhIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE2Nzk0ODk4MDksImV4cCI6MTY4MDc4NTgwOSwiaXNzIjoiaHR0cHM6Ly9jZGIubmV1cm9wLm9yZyIsImF1ZCI6ImFwaSIsImNsaWVudF9pZCI6IjMiLCJzdWIiOiIxMiIsImF1dGhfdGltZSI6MTY3OTQ4OTgwOSwiaWRwIjoiUFdEIiwibmFtZSI6ItCV0LPQvtGAINCQ0L_RgNC10LvRjNGB0LrQuNC5Iiwicm9sZSI6IkdMT0JBTF9BRE1JTiIsImp0aSI6IjIyQTQ2MzUzNzBGNjY5Mzc1QTVBNDhERDAwMTM2RjcxIiwiaWF0IjoxNjc5NDg5ODA5LCJzY29wZSI6WyJhcGkiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsiY3VzdG9tIl19.qRxwyW3Xq1-LF-NDTnrqiPFKebbHIh68KmjIimVnaJBTxaXOYEWf5awdAyYtzPThw4FRNUW4C5LFGAT5woQyju4WACRNMqMoj7BvbyzuEnbnOSJPazDhjuLm50jLhQfT7JPo0nU1tfK4BX6jklJOQn6F74AThaedvxXMCZn5lyXEc_n6M5rGZWXuYm9fyqud_2c4lICFJtBu_mQPOQ1xxRbROMBL0GFmhe4oOmMv6tkzP1F3MU9BdpsuvzcSZSqvhDeltuXADd9ar36G7qbLby-I_IasCboNxoHhVuHt35R1rTakeYhrswkZliJOuk8gc9hQHpu4KGZL_hV0wZ3vsQ",
        "ModelId": "muse_basemodel",
        "Model": "<modules/>",
        "RunModules": true
      }
    },
    "Status": 0,
    "ErrorCode": "NPE001",
    "Body": {
      "RunId": "90e1880e-ba17-46b3-b3d5-8605849559f3",
      "ClientConfig": "<modules><module><type>Np.Engine.Modules.MuseBle.MuseBleModule<\/type><description>Получение данных от Muse<\/description><settings><Configuration><GlobalEvents>true<\/GlobalEvents><IsPersistent>false<\/IsPersistent><Mac>0<\/Mac><LogEegAf7>true<\/LogEegAf7><LogEegAf8>true<\/LogEegAf8><LogEegTp9>false<\/LogEegTp9><LogEegTp10>false<\/LogEegTp10><LogEegAux>false<\/LogEegAux><LogGyro>false<\/LogGyro><LogAcc>false<\/LogAcc><LogDeviceStatus>false<\/LogDeviceStatus><\/Configuration><\/settings><\/module><\/modules>"
    }
  }
}