Files
smart-lift-docs/WebSocket-ControllerMessages.md
2024-10-02 10:53:03 +03:00

130 lines
4.6 KiB
Markdown

# Сообщения контролера
## Входящие (контроллер->сервер)
### config
+ **type** - ```config```
+ **data** - Не *null*
```javascript
{
// Список лифтов
"lifts":
[
{
"id": "QW12345",
"name": "Большой грузовой лифт",
// Тип лифта. Может быть одним из следующих значений
// - UNIVERSAL
// - PASSENGER
// - CARGO
"type": "CARGO",
// Этажи, на которорых лифт может останавливаться
"allowed":
[
-5,-4,-3,-2,-1,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10,11,12,13,14,15,16,17,18,19,
20,21,22
],
"vip": [23],
"lobby": [0],
"tech": [10, 20]
}
],
// Список считывателей установленных в группе
"readers":
[
{
// Идентификатор считывателя (уникальный для группы)
"id": "reader1",
// Название
"name": "Считыватель в кабине большого грузового лифта",
// Расположение считывателя
// Возмжные значения:
// - ENTRANCE
// - PARKING
// - LOBBY
// - CABIN
// Если указан тип CABIN поле lift_id должно быть не null
"location": "CABIN",
// Идентификатор лифта, в котором установлен считыватель
// Значение должно соответствовать одному из значений в списке лифтов
"lift_id": "QW12345"
},
{
"id": "reader2",
"name": "Считыватель в холе",
"location": "HALL"
},
{
"id": "reader3",
"name": "Считыватель на парковке",
"location": "PARKING"
}
]
}
```
## Исходяшие (сервер->контроллер)
### cmd
- **type** - `cmd`
- **data** - Не *null*
```javascript
{
// Команда
// В данный момент call единственная поддерживаемая команда
// Вызывает лифт на указанный этаж
"cmd": "call",
// String, Обязательный параметр
// Идентификатор предпочитаемого лифта
"lift_id": "<lift_id>"
// Int, Обязательный параметр
// Этаж на который необходимо вызвать лифт
"floor": 1,
// UUID, Обязательный параметр
// Идентификатор пользователя вызывающего лифт
"user_id": "<user_id>"
}
```
### users
Сервер присылает сообщение сразу после подключения, а так же каждый раз при измении списка пользователей, имееющих доступ к данной группе лифтов
- **type** - `cmd`
- **data** - Не *null*. Cписок пользователей, имеющих доступ к данной группе лифтов
```javascript
[
{
// Идентификатор пользователя,
// используется для идентификации пользователя считывателем
// UUID, обязательный параметр
"user_id": "<user_id>",
// Идентификатор предпочитаемого лифта
// String, не обязательный параметр
"favorite_lift": "QW12345",
// Домашний этаж пользователя
// Int, не обязательный параметр
"home_floor": 1,
// Предпочитаемый этаж лобби
// Int, не обязательный параметр
"lobby_floor": 0
},
{
"user_id": "<user_id>"
"favorite_lift": "QW12345",
"home_floor": 4,
"lobby_floor": 0,
}
]
```