Anonymous
local websocket = require 'websocket' local client = websocket.client.copas({timeout=2}) connected, err = client:connect('wss://testapp.hhx', 'echo', ssl) function listen(msg) while connected do wait(0) local message, opcode = client:receive() if message then print('msg', message, opcode) else print('connection closed') end end end Вообще правильно всё делаю?
mva
os.time() оперирует временем в UTC
mva
и то, сколько прибавлять для привода к текущему часовому поясу решает на основе is_dst
mva
когда ты запускал инстанс lua - его "дефолт" был в одном положении
mva
во время работы же система оказалась в другом "DST-состоянии"
mva
а вот в lua-инстансе он остался в старом
Vlad 👁‍🗨
До секунд, опять таки.
Ты прав, с секундами работает как надо. Но ПОЧЕМУ???
Snusmumriken
Ты прав, с секундами работает как надо. Но ПОЧЕМУ???
Потому что os.time() возвращает количество секунд с 1970 года от текущей или указанной даты.
Anonymous
Какой-то косяк.
Косяк в моём коде?
Anonymous
ну по идее всё логично.
Snusmumriken
А я хз. Если успевает проработать — значит надо больше чекнуть мануалы по вебсокету. Возможно оно и без копаса нормально работает.
Vlad 👁‍🗨
Snusmumriken
В os.time(пикер) я указывал атрибут isdst системы.
Карочи. Просто используй везде результат os.time(). Ему плевать на часовые пояса, на високосные года и переводы времени. Пользователь что-то ввёл — сразу переводи в os.time(). Передавай куда хочешь и используй, просто как os.time(). Когда надо отобразить — переведи в дату, но не более.
Vlad 👁‍🗨
Карочи. Просто используй везде результат os.time(). Ему плевать на часовые пояса, на високосные года и переводы времени. Пользователь что-то ввёл — сразу переводи в os.time(). Передавай куда хочешь и используй, просто как os.time(). Когда надо отобразить — переведи в дату, но не более.
Спасибо за рекомендацию, так и стараюсь делать. Время только в unix timestamp храню. Сейчас с секундами пытаюсь разобраться, проверяю чтобы ничего не сломалось, раньше ведь я их не использовал, везде sec = 0 указывал при работе с пикерами.
Snusmumriken
Ну и нормально.
mva
не, локальным
НЯП, внутри - таки в UTC, потом приводит его к локальному
mva
но могу путать
mva
🤷‍♂️
Tony
Я уже теперь ни в чём не уверен
Anonymous
А я хз. Если успевает проработать — значит надо больше чекнуть мануалы по вебсокету. Возможно оно и без копаса нормально работает.
Я сейчас попробовал в этом цикле просто вывести что-то в print() работает отлично, ничто не зависает. Но вот при вызове метода recieve начинаются проблемы.
Anonymous
Попробовал слать вебсокет месседж на сервер и если успешно, вызывать метод recieve. Но теперь начались проблемы с производительностью. Как лучше реализовать это?
🐅🤦‍♂️
Попробовал слать вебсокет месседж на сервер и если успешно, вызывать метод recieve. Но теперь начались проблемы с производительностью. Как лучше реализовать это?
Проблема с производительностью - высокая загрузка процессора и(или) низкая скорость приема/передачи данных?
Alxius
Я сегодня в Гаграх смог старинные часы на вокзале которые 31 год стоят как СССР не стало запустить на целых 5 минут. )) Так рад. И я понял примерно что для них нужно ) проблема только в том что нужно будет импульсный генератор выдающий импульс раз в минуту откуда то достать либо сделать на основе Ардуино мини. А я с арудино даже простенькое что то не делал.
Alxius
Alxius
Может кто посоветует как на Ардуино это накодить? Я дуб дубом в нем. Вообще надо все разжевывать
Tony
Может кто посоветует как на Ардуино это накодить? Я дуб дубом в нем. Вообще надо все разжевывать
Думаю, что здесь не нужна Ардуина, такие генераторы достаточно простые
Tony
Думаю, их можно найти на Али
Tony
Погодите, это вторичные часы, верно?
Tony
Я читал несколько раз статьи про них на Хабре и Пикабу
Tony
Думаю, тоже сможете там найти
A
Может кто посоветует как на Ардуино это накодить? Я дуб дубом в нем. Вообще надо все разжевывать
У Ардуино ооочень низкая стабильность тактового генератора. Не советую! Надо брать нечто, имеющее возможность синхронизации с NTC. Ну и потом, не надо забывать про то, что здесь царит Lua!!! Значит LogicMachine ))
Alxius
Подскажите куда писать в какой группе поподробней помогут. Интернета там нет
Oleg
какое напряжение?
Oleg
длительность импульса?
Oleg
точность?
Snusmumriken
Может кто посоветует как на Ардуино это накодить? Я дуб дубом в нем. Вообще надо все разжевывать
https://www.arduino.cc/reference/en/language/functions/time/millis/ Берёшь такой, и в цикле проверяешь переход на следующую секунду по миллису. "Если текущее значение больше чем предыдущее+1, то выдать импульс и запомнить округлённое текущее".
Snusmumriken
Не delay потому что будет накапливающаяся ошибка расхождения во времени, потому что между delay'ями что-то будет происходить, например выполняться код, он занимает время и каждую секунду будет задержка.
Alxius
цель какая?
Запустить часы чтобы они ходили . И при этом постараться уложиться в 500-1000руб. интернета у устройства не будет
Alxius
какое напряжение?
От 12в до 17. Проверяли разные напряжения наугад
Alxius
От любых стрелка перемещается
Alxius
длительность импульса?
Подключаем БП. Выходим из здания смотрим захо дим в здание.
Alxius
точность?
Тут совсем плохо. Никакая
Oleg
поищи реле времени готовое
Alxius
поищи реле времени готовое
Что такое реле для совсем тупых?
Oleg
железка дает импульсы заданной длительности
Oleg
питается от 220,24,12
Oleg
короче разные есть
Oleg
но в 1к не уложишься - зато решение будет промышленное
Oleg
или программируемое реле - но это еще дороже
Oleg
зато там больше возможностей и точность на высоте
Oleg
у меня такое реле убегало за год на 2-3 минуты
Alxius
Спасибо
Oleg
Спасибо
Вот подешевле. https://rele.ru/catalog/rele-vremeni-razlichnogo-naznacheniya/rele-vremeni/rele-vremeni-vl-46m1.html
BC
Привет Всем. два вопроса. 1. Можно ли как -то в луа скрипт сделать инклуд пхп? (в пхп обычный вывод массива) 2. Помочь Переписать пхп в луа. простой пхп $cats = array( "bmw", "toyota", "opel", "vw" ); shuffle ($cats); $cats = array_slice($cats, 0, 3); sort($cats); foreach ($cats as $value) { echo '<li><a style="font-size:18px;" href="/category/'.$value.'/">'.str_replace('-',' ',$value).'</a></li> '; }
Leon174
Вот подешевле. https://rele.ru/catalog/rele-vremeni-razlichnogo-naznacheniya/rele-vremeni/rele-vremeni-vl-46m1.html
Прекрасный вариант. И никаких ардуинок и малинок.
Oleg
Прекрасный вариант. И никаких ардуинок и малинок.
Я спросил коллег железячников - точности ардуинки хватит, но надо аккуратно писать прогу и нужен доп обвес в виде опторазвязанного реле или ключа. Так что по деньгам одинаково а гемороя с ардуиной будет побольше.
Snusmumriken
Привет Всем. два вопроса. 1. Можно ли как -то в луа скрипт сделать инклуд пхп? (в пхп обычный вывод массива) 2. Помочь Переписать пхп в луа. простой пхп $cats = array( "bmw", "toyota", "opel", "vw" ); shuffle ($cats); $cats = array_slice($cats, 0, 3); sort($cats); foreach ($cats as $value) { echo '<li><a style="font-size:18px;" href="/category/'.$value.'/">'.str_replace('-',' ',$value).'</a></li> '; }
Какой код интерпретирует интерпретатор луа? Луёвый. Какой код интерпретирует интерпретатор пхп? Пыховый. Вопросы? Запускай интерпретатор пыха отдельно, гоняй в нём файл. Или сделай общение пайпами. Или сделай общение сокетами. Или сделай общение шаред-мемори.
Leon174
Я спросил коллег железячников - точности ардуинки хватит, но надо аккуратно писать прогу и нужен доп обвес в виде опторазвязанного реле или ключа. Так что по деньгам одинаково а гемороя с ардуиной будет побольше.
Даже если бы дороже было, я бы эту релюху выбрал. Промышленное изделие против хоббийной по сути фитюльки с костылями. Еще с питанием решать. Если там интернета нет, то и в качестве сети я не уверен. И все это штуку уложить. Ну-ну...
A
Запустить часы чтобы они ходили . И при этом постараться уложиться в 500-1000руб. интернета у устройства не будет
Единственный более-менее приемлемый вариант - микросхема DS3231. Модуль стоит рублей двести. Никакого программирования. Надо просто покурить даташит, выставить одноминутный (секундный?) интервал по протоколу I2C. В дополнение к этому - хороший блок питания и простое реле. Дополнений уже на 1500 рублей )))
🐅🤦‍♂️
Кажется ресив каждую итерацию, не есть хорошо
Поищи в группе по ключевому слову receive. Год назад или более обсуждались сокеты. Можно попробовать сделать сокет с небольшим таймаутом. И в цикл обработки добавить небольшой sleep для отдыха процессора.
Snusmumriken
Сокет с таймаутом не очень, потому что от количества клиентов начинает расти задержка. А вот небольшой слип в конце цикла обработки — топчик.
🐅🤦‍♂️
Сокет с таймаутом не очень, потому что от количества клиентов начинает расти задержка. А вот небольшой слип в конце цикла обработки — топчик.
Я тут соорудил многопоточность в игровом движке на лавке. Основной поток - прокачка событий и рендер. Игровой поток - обработка событий и посыл команд рендера в игровой поток. Игрался со слипами и пришел к выводу, что без них можно получить высокое значение фпс, более 3000, но видна загрузка цпу. Со слипами(их два, в основном и игровом потоке) - ограничивается фпс, но загрузка снижается. В целом на многоядерной машине тормозов незаметно вообще, даже если совсем задержку убрать.
Igor
Я тут соорудил многопоточность в игровом движке на лавке. Основной поток - прокачка событий и рендер. Игровой поток - обработка событий и посыл команд рендера в игровой поток. Игрался со слипами и пришел к выводу, что без них можно получить высокое значение фпс, более 3000, но видна загрузка цпу. Со слипами(их два, в основном и игровом потоке) - ограничивается фпс, но загрузка снижается. В целом на многоядерной машине тормозов незаметно вообще, даже если совсем задержку убрать.
Не стоит, кстати, забывать, что если включен параметр vsync, то количество тиков основного потока будет строго ограничено под герцовку монитора. Если дочерний поток будет основному слать инфу слишком быстро, то у основного потока могут возникнуть проблемы с приёмом (если он не осуществляется в обособленном бесконечном цикле, конечно). Так что времечко тиков желательно синхронизировать между потоками.
🐅🤦‍♂️
Не стоит, кстати, забывать, что если включен параметр vsync, то количество тиков основного потока будет строго ограничено под герцовку монитора. Если дочерний поток будет основному слать инфу слишком быстро, то у основного потока могут возникнуть проблемы с приёмом (если он не осуществляется в обособленном бесконечном цикле, конечно). Так что времечко тиков желательно синхронизировать между потоками.
Я отключил vsync. Но совершенно не подумал, что будет если его включить😁В игровом потоке у меня стоит простейший таймер на ограничение частоты вызовов рисования. Сами потоки также соединены блокирующим сообщением. Поэтому если я выставляю посылать скажем 100 фпс в игровом потоке, то основной будет также ограничиваться 100 фпс. На самом деле я ещё не производил реального нагрузочного тестирования. Проект ещё пишется и пишется.
Tony
Блин, опять какие-то приколы. Как одна и та же функция может не работать 5 перезапусков подряд и заработать на шестой?
Tony
Чтобы потом опять не сработать несколько перезапусков подряд?
Джифорсович
код покажи
Tony
код покажи
Функция библиотечная, код закрытый т_т
Tony
Подозреваю, что там внутри есть RNG
Tony
Причём раньше работала без нареканий
Tony
Реверс-инжиниринг уже какой-то, ей-богу