Size: a a a

2020 October 09

AW

Andrew Witwicki in ru_raspberry
Andrew Witwicki
мне надо эту функцию запускать чтоб она асинхронно гпио управляла (там немного псевдокода который показывает чего я хочу добиться), можно все через threading но мне кажется это будет не так круто и лаконично как через asyncio но я вот читаю их доки и мне кажется что в чате мне быстрее помогут чем  я найду то что мне надо, ну и плюс вопрос опыта, может через трединг производительнее будет
гпио на моторы гонять, пакеты летят например 10 раз в секунду (попадают через метод set_values), если пакет не прийдет то чтоб моторы сами отрубились, если прийдет то чтоб шим на мотор обновился (ускорение\замедление)
источник

A

Andrey Sea in ru_raspberry
ну да, цикл с условием выхода с sleep 100мс, который закидывает текущие значение в gpio
источник

A

Andrey Sea in ru_raspberry
в отдельном треде или как угодно, хоть в мейн цикле
источник

AW

Andrew Witwicki in ru_raspberry
так вот как лучше отдельный тред сделать, через thread или asyncio?
источник

AW

Andrew Witwicki in ru_raspberry
Andrey Sea
ну да, цикл с условием выхода с sleep 100мс, который закидывает текущие значение в gpio
time.sleep удобно но тогда надо чтоли пересоздавать тред каждый раз?
источник

AW

Andrew Witwicki in ru_raspberry
а через while true оно будет более лучше реагировать на изменение значений
источник

A

Alex in ru_raspberry
треды легче контролировать будет, по моему мнению

но можно и корутиной управлять(сам не пробовал)
источник

A

Andrey Sea in ru_raspberry
Andrew Witwicki
time.sleep удобно но тогда надо чтоли пересоздавать тред каждый раз?
зачем пересоздавать? тред, в нём цикл, в нём слип
источник

A

Andrey Sea in ru_raspberry
Andrew Witwicki
а через while true оно будет более лучше реагировать на изменение значений
только не тру, а условие выхода ) если прервать надо
источник

A

Andrey Sea in ru_raspberry
хотя можно и тред грохнуть... но некрасиво это
источник

AW

Andrew Witwicki in ru_raspberry
Andrey Sea
зачем пересоздавать? тред, в нём цикл, в нём слип
А если там слип стоит 100мс а новый пакет приходит через 50мс?
источник

A

Andrey Sea in ru_raspberry
обычно делают while (!isTerminated) ...
источник

A

Andrey Sea in ru_raspberry
Andrew Witwicki
А если там слип стоит 100мс а новый пакет приходит через 50мс?
отреигурет через 50мс... можешь 10 слип сделать )
источник

AW

Andrew Witwicki in ru_raspberry
Andrey Sea
обычно делают while (!isTerminated) ...
Мне кажется через asyncio можно убить поток
источник

A

Andrey Sea in ru_raspberry
один фик если не хочешь перегрева, слип надо делать
источник

AW

Andrew Witwicki in ru_raspberry
Если те моторы сгорят то я так быстрее на шаговиках попробую, мне кажется они вообще на 32 вольта рассчитаны
источник

AW

Andrew Witwicki in ru_raspberry
На 12 почти не грелся
источник

AW

Andrew Witwicki in ru_raspberry
Andrey Sea
отреигурет через 50мс... можешь 10 слип сделать )
Не думаю, слип же блокирует поток
источник

A

Andrey Sea in ru_raspberry
Andrew Witwicki
Не думаю, слип же блокирует поток
не блокирует, ставит на паузу
источник

A

Andrey Sea in ru_raspberry
блокирует бесконечный цикл без слипа ) и перегревает проц
источник