Ниже приведено описание внешних интерфейсов для программного и пользовательского взаимодействия с генератором конфигураций для плат Марсоход.
Для работы всех утилит требуется python >= 3.6. На версиях ниже указанной работоспособность не проверялась. Версиии 2.* не поддержаны намеренно как устаревшие.
Все запросы делаются на адрес, где запущен сервис. На текущий момент поддержано только http соединение. Планируется поддержать HTTPS/TLS1.2.
Метод | Тип | Параметры | Описание | Ответ |
---|---|---|---|---|
/boards |
GET | Список поддерживаемых плат. | {"supported boards": ["...", ...]} |
|
/board/<board> |
GET | board - одна из поддерживаемых плат |
Список возможных пользовательских настроек для платы. | {"board": <имя платы>, "params": {...}} |
/mips |
GET | Список поддерживаемых версий ядра SchoolMIPS. | {"supported mips types": ["...", ...]} |
|
/functions |
GET | Список поддерживаемых дополнительных функций и их параметров. | {"supported functions": ["...", ...], "configurations": {...}} |
|
generate |
GET, POST | * | Генерация проекта для указанной платы. | Архив с проектом (GET)/Сгенерированные файлы в виде объекта (POST) |
Параметры generate
:
board
(обязательный) - тип платы, для которой будет сгенерирован проект. Поддерживаемые на данный момет типы плат можно получить через вызов метода/boards
.name
- имя генерируемого проекта. При отсутствии, используется имя по умолчанию.mips
- версия процессорного ядра SchoolMIPS. Поддерживаемые на данный момет версии ядра можно получить через вызов метода/mips
.conf
- список параметров платы, которые необходимо сконфигурировать для проекта. Не указанные параметры не будут доступны (отключены) в проекте.func
- список поддерживаемых функций, которые необходимо включить в проект.params
- объект конфигураций параметров для дополнительных функций в виде пар строка: число (имя параметра: значение).
Пример запроса:
curl http://<host>/generate?board=marsohod2&mips=simple
Клиент был создан для быстрого ручного тестирования работоспособности новых функций. Использование в личных целях возможно, но не рекомендуется. Предпочтительно использовать API клиент или WEB интерфейс.
Для получения актуальной справки по использованию утилиты используется флаг -h
.
Использование:
cli_client.py [-h] [--name PROJECT NAME] [--archive] [--path PATH]
[--mips SCHOOL MIPS VERSION] [--config CONFIG]
BOARD NAME
Обязательные аргументы:
BOARD NAME
- тип платы, для которой будет сгенерирован проект. Поддерживаемые на данный момет типы плат указаны в подсказке при просмотре помощи через аргумент-h
.
Опциональные аргументы:
-h
,--help
- просмотр помощи по использованию команды.--name PROJECT NAME
,-n PROJECT NAME
- имя генерируемого проекта. При отсутствии, используется имя по умолчанию.--archive
,-a
- при использовании флага проект будет запакован и сохранен в архив.--path PATH
,-p PATH
- место для сохранения сгенерированного проекта. Могут быть использованы как относительные так и абсолютные пути.--mips SCHOOL MIPS VERSION
,-m SCHOOL MIPS VERSION
- версия процессорного ядра SchoolMIPS. Поддерживаемые на данный момет версии ядра указаны в подсказке при просмотре помощи через аргумент-h
.--config CONFIG
,-c CONFIG
- путь к конфигурационному файлу (json).
Формат конфигурационного файла - json объект с опциональными ключами:
func
- список поддерживаемых функций, которые необходимо включить в проект.conf
- список параметров платы, которые необходимо сконфигурировать для проекта. Не указанные параметры не будут доступны (отключены) в проекте.params
- объект конфигураций параметров для дополнительных функций в виде пар строка: число (имя параметра: значение).
Пример конфигурационного файла:
{
"func": [
"Seven",
"Uart8"
],
"conf": [
"clock",
"key",
"led"
],
"params": {
"delay": 100
}
}
Унифицированные внутренний API для взаимодействия с движком генератора на программном уровне на данный момент отсутствует.