romanetz
т.е. андроид коннектится к mqtt и железка коннектится к mqtt и забирает с него цифирки - и всё ок, при этом RTT 150 мсек, и это вообще незаменто
romanetz
кружочек loading не зря придумали
SetPf
Господа, проблема не в том, что бы донести до пользователя сколько конкретно секунд осталось\прошло. Ему на единицы секунд вообще похрену зачастую.
SetPf
Вопрос был про то как лучше сделать синхронизированную смену этих секунд.
SetPf
синхронизированную с чем?
С сервером. Ладно забейте, Zlo в принципе ответил.
Resident
синхронизированную с чем?
Что бы на странице и на сервере счёт был одинаковый
romanetz
отображать на странице то, что показывает сервер
Resident
Так и отдавай время в сокет раз в сек
romanetz
ну
SetPf
Что бы на странице и на сервере счёт был одинаковый
Да вот тут понимаешь даже глубже проблема, в принципе похрену одинаковый он или нет. Но его разсинхронизированость в принципе может привести к тому, что интерфейс сам по себе херню будет отображать.
romanetz
таймер считает на сервере, логика - на сервере
SetPf
это как?
Это в контексте ассинхронного отображения же. Например ведется отсчет до включения. Время еще считает, а состояние уже переключилось.
romanetz
нет )
romanetz
увидели включенное состояние, когда время досчиталось
romanetz
да хрень это если наблюдаешь ЛОКАЛЬНО за состоянием физического процесса - есть и локальный канал с миллисекундным пингом
romanetz
если наблюдаешь через интернет за локальным процессом -видишь задержанные данные относительно реального процесса
romanetz
если, скажем, звонишь по телефону с одного ухо в другое -сам себя услышишь раньше, чем по телефону, ну так и что
SetPf
увидели включенное состояние, когда время досчиталось
Ну вот это 2ой вариант ответа, который я в первом посту предложил.
SetPf
Часть логики на клиенте.
romanetz
нет
romanetz
нету логики на клиенте
romanetz
уже выше объяснил, почему
romanetz
зачем?
SetPf
Если клиент знает, что там отобразить отключенным при окончании таймера, это логика на клиенте.
romanetz
нет отображается таймер с сервера и логика с сервера
romanetz
проблемы со связью - видим задержанные значения...
romanetz
иначе при обрыве связи нарушится логика вообще
romanetz
в процессе - одно, на экране - другое
SetPf
проблемы со связью - видим задержанные значения...
Это придется реализовывать гарантию того, что обновления на веб отоправляются в той же последовательности, в которой приходят\происходят на устройство\е.
romanetz
TCP
romanetz
этим занимается
romanetz
если нужная буферизация данных при обрыве связи - тоже на сервере делается
SetPf
TCP
При условии что я отправляю все сразу как оно поменялось и в правильной очередности. Я про то, что конкретно на аяксовые запросы и дельту состояния на серваке, которую мне нужно отправлять придется отслеживать в правильном порядке.
romanetz
а в какой очерёдности оно может отправиться?
romanetz
какой-то придуманный, изменённый порядок что ли появится?
SetPf
а в какой очерёдности оно может отправиться?
Да я даже не знаю. Потому что не отслеживал. Может это просчет с архитектурной точки конечно. У меня есть назовем БазаДанных, где собственно записано состояние устройства. Есть ДельтаБазыДанных Есть вебсервачок, который обрабатывает аякс запросы. Вот при изменении параметров, БазаДанны наполняет ДельтуБазыДанных, откуда собственно изменения забирает вебсервак при запросе. Это дело связано очередями асинхронными, че там заполнится и когда - я не знаю.
SetPf
Вернее не могу гарантировать.
SetPf
Извините, лучше не придумал =)
romanetz
ORDER BY timestamp
romanetz
и timestamp сделать первичным ключом
Sid
Как угодно можно сделать, tcp seq можно посмотреть например, или как реализовано в voip
Sid
С учетом что голос часто идет через удп и часто пакеты в одном фрейме приходят не в исходном порядке
romanetz
tcp seq? а он доступен при работе с сокетами?
Sid
Востановить последовательность сама по себе задача тривиальная в общем виде
Sid
tcp seq? а он доступен при работе с сокетами?
Ну я просто для примера, там же ад и израиль в плане порядка прихода пакетов в конечную точку когда есть несколько путей)
romanetz
tcp/ip
Sid
Нагляднее и в юзер спейсе потоковое мультимедиа
Sid
Зная стартовые сиквенсы которые задаются при хендшейке просто ставит пакеты по порядку
Sid
Seq+size
Sid
В самом простом случае
Sid
так с этим стек борется
Он не борется, он в основном превзнемогает😂
Ruslan
Ruslan
Ruslan
Прикиньте, lan8720 на этой плате битый, чип возвращает нули, а не то, что описывают в затащитесь в качестве phy идентификаторов.
Ruslan
Ну и даже после старта эзернета, роутер нифига не видит и на самой плате не зажигаются светодиоды сети
Ruslan
Сцуки!
Alexey
Прикиньте, lan8720 на этой плате битый, чип возвращает нули, а не то, что описывают в затащитесь в качестве phy идентификаторов.
Как-то работал с похожей платой от этого производителя (Gateway). Была проблемма с пайкой компонентов... после перепайки заработало
Ruslan
старый пример завёлся
Ruslan
но не могу перенести к себе
Ruslan
/project/build/../main/main.c:254: undefined reference to `tcpip_adapter_init'
Ruslan
инклуд сделал
Anonymous
Салазки для тайм-лапса кто-нибудь делал? После погодной станции хочу за них взяться если ничего более срочного не нарисуется.
Anonymous
Так я и думаю что на профилях, просто решил что на ремнях не стану делать, возьму рейку под шестерню или ось с резьбой. Чтобы вертикально можно было ставить и вешать на площадку любую камеру. Из тех что приколола эта pocketslider.de. Возьму её за основу. Там 3 степени свободы - по направляющим, поворот и тилт по высоте.
Bakosh
Bakosh
Можно на такое без ремня, нужно как-то прикрепить шаговик
Anonymous
Можно на такое без ремня, нужно как-то прикрепить шаговик
Не, я решил что на оси с резьбой или с зубчатой рейкой буду делать.