terminator пишет:shev пишет:В Виалоне время не совсем является уникальным идентификатором события. Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано. Проще говоря, если хотя бы один параметр отличается от предыдущего сообщения с таким же временем, то оно будет зарегистрировано. То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.
Минимальный шаг событий 1 секунда, всё верно. Формат времени UTC, следовательно отсчёт с 01.01.1970. (этот момент будет добавлен в протокол).
Давайте рассмотрим две реальные ситуации, одна из них совсем жизненная.
1.
shev пишет:Если на сервер придёт сообщение с другими координатами но, с тем же временем, оно будет зарегистрировано.
Вот терминал зарегистрировал три точки с координатами, мы хотим отобразить клиенту трек не из точек, а из линий, как нам связать эти три точки на плоскости карты? Выборка из базы может произойти не в хронологическом порядке.
Хотя с этим можно бороться, регистрируя на сервере уникальный последовательный идентификатор события, раз этого нет в протоколе.
2.
shev пишет:То есть, прибору ничего не мешает отправлять несколько сообщений в секунду.
работает терминал, выключили у него питание, села батарейка часов, часы сбились, после включения время ушло в далёкое или не очень прошлое. Что будет с такими данными? две разные точки в одно и то же время, как будет строиться такой трек? что увидит пользователь?
Имея же уникальный, нарастающий идентификатор, у пользователя будет возможность восстановить порядок событий, даже не имея точного времени.
Уважаемый, terminator.
Описанная вами ситуация действительно может иметь место.
Единственно верный способ, который позволит построить все сообщения в хронологическом порядке, это если устройство будет хранить номер уникального сообщения у себя в памяти. Соответственно после перезагрузки трекера, либо отключения батареи этот порядок сообщений не должен сбиваться. На уровне протокола, возможность передачи порядкового номера сообщения уже реализована: Seq — Порядковый номер (циклический 0 — 65535). Зарегистрировать этот параметр на Виалоне не составит труда, вопрос лишь в устройстве.
Любой другой способ нумерации сообщений не будет успешен.
Если устройство будет считать порядковый номер сообщения в рамках сессии, в этом случае мы не застрахованы от перезагрузки устройства. А если считать сообщения только усилиями сервера, то эти данные вообще не будут иметь никакого смысла, т.к неизвестно в каком порядке действительно трекер отправил сообщение.
Best regards,
Evgeny Shatilo
Gurtam HW Development Team Lead