130 lines
4.6 KiB
Markdown
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,
|
|
}
|
|
]
|
|
```
|