Форум по автобезопасности -
автосигнализации
Контакты
Тема
:
Все по 2000
Показать сообщение отдельно
Spirit
Сенсей
Регистрация: 16.01.2007
Адрес: Москва
Сообщения: 752
Репутация:
264
06.03.2008, 13:42
#
151
Цитата:
Сообщение от
Casper
А я вообще не представляю как быть иначе? Откуда система узнает, на каком из брелоков правильное время??? Если она начнет сама брелок выббирать - вот и будет жопа полная.
Пример реализации:
1. Делаем в брелке таймер, считающий секунды с момента ручной установки времени на этом брелке. При инициализации брелка (замена батарейки) по умолчанию таймер выставляется в -1 и не изменяется, пока время вручную не выставили или не пришла синхро-посылка с базы (см. пункт 4).
2. В базе делаем регистр, где изначально запоминается значение брелочного таймера, а затем продолжается счет секунд
3. При приеме с брелка команды, синхронизирующей базу с брелком, смотрим, на переданное значение брелкового таймера и если оно больше, чем находящееся на данный момент в нашем регистре, то апдейт игнорируем, а в отчете о выполнении команды посылаем в брелок новое время.
4. В посылке "всё спокойно", если время базы было хоть раз синхронизировано с брелком, передаем также текущее время и значение регистра-счетчика. Брелок, получив посылку, сравнивает счетчик со своим и если пришедшее значение меньше местного, обновляет свое время.
Таким образом оба брелка _гарантировано_ показывают одинаковое время, в соответствии с наиболее свежим ручным обновлением времени на одном из брелков.
Меню пользователя Spirit
Посмотреть профиль
Найти ещё сообщения от Spirit