#summary Протокол Opal ---- = Общие сведения = Протокол Opal специально разрабатывался с такой целью, чтобы быть максимально простым в использовании как человеку, так и машине. Не смотря на простоту, протокол обладает большой гибкостью и лаконичностью. Описание протокола можно разделить на две части. Такое разделение связано с архитектурой проекта. Тем не менее, формат сообщений универсален. == Формат сообщения == Все сообщения строятся по одному шаблону: {{{ MethodName MessageBody }}} == Типы данных == = Соединение сервер - задача = == Запрос информации сервером == Перед запуском задачи для того, чтобы узнать какие параметры нужно передавать для корректного выполнения алгоритма, сервер запускает задачу с ключом -i или --info: `task (-i|--info)` Результатом работы будет набор строк, который описывает все доступные значения для данной задачи. Строки описываются в следующем формате: _name_ = _type_ (choice _list_) (default _value_) в будущем _name_ = _type_ (choice _list_) (default _value_) (check _expr_) В ответе обязательно должна присутствовать секция Main, в которой описываются все параметры модели. Другие секции описывают параметры доступных алгоритмов в задаче и их количество не ограничено. == Передача списка параметров == == Получение результата == == Пример сессии == Пример записи, описывающий задачу про сахарный диабет: {{{ [Main] time = period default 0 to 24 initx = float default 30.0 inity = float default 10.0 [Genetic] population = int default 1000 fitness = string choice [std, lst] default std [Bellman] xpart = partition default 0 to 100 by 1 }}} = Соединение сервер - ГИП =