Size: a a a

Maxwell's Demons

2021 February 25

GK

Grigorii Kuzmin in Maxwell's Demons
Просто все данные куда-то считывать, а потом уже отдельным потоком из разбирать
источник

A

Al in Maxwell's Demons
Grigorii Kuzmin
Может, есть смысл делать пост-обработку?
так она присутствует, но простенькая: сверяется первый и последний байты (ключи)
источник

GK

Grigorii Kuzmin in Maxwell's Demons
Al
так она присутствует, но простенькая: сверяется первый и последний байты (ключи)
Я имею в виду, не завязываться вообще на компорт и его прерывания
источник

GK

Grigorii Kuzmin in Maxwell's Demons
Пусть себе идут данные колбасой, а в отдельном потоке уже читать их и ключи проверять
источник

A

Al in Maxwell's Demons
Grigorii Kuzmin
Я имею в виду, не завязываться вообще на компорт и его прерывания
хм.
сложна.
идея здравая, если осилю то почему бы и да
источник

h

hardegor in Maxwell's Demons
Al
@Bahoo08  
разобрался откуда растут ноги :
вобщем, как и предполагалось - при нагрузке на комп (запуске чего-либо кроме сабжа) прерввание реди рид срабатывает слишком поздно, к этому моменту в avaliable уже цифра больше чем 128.
счас попытаюсь распарсить эти данные
а почему 128? сделай 1024
источник

RS

Roman Storozhenko in Maxwell's Demons
А лучше по размеру буфера, не больше
источник

A

Al in Maxwell's Demons
hardegor
а почему 128? сделай 1024
мне так много не нужно. мне всего 15 интов и 15 флоатов нужно передавать. важно успеть их обрабатывать не реже , чем каждые 10мс
источник

A

Al in Maxwell's Demons
как бы можно и мильён байтов передавать, но кампуктер по моему и так сильно напрягается от этого кьюта - не успевает вовремя получить данные.

а скорость юарта тоже сильно задирать не хочется - пол мб по моему и так много для китайского свистка и одного проводка пол метрового
источник

TK

Timur Khasanshin in Maxwell's Demons
Можно за раз несколько пачек по 128 пересылать, а на приёмной стороне уже разбирать
источник

A

Al in Maxwell's Demons
нужно не за раз.
период дискретности системы 8-10 мс. мне нужно с этой системы снять данный на ходу, на каждом шаге регулирования одни и те же параметры.
источник

A

Al in Maxwell's Demons
можно конечно буфер в мк реализовать и передавать огромную пачку раз в N секунд например, но хотелось бы отрисовывать всё на ходу.
источник

TK

Timur Khasanshin in Maxwell's Demons
Если такие периоды то надо по возможности все реакции переместить в эмбеддед, а в пк оставить медленное
источник

A

Al in Maxwell's Demons
Timur Khasanshin
Если такие периоды то надо по возможности все реакции переместить в эмбеддед, а в пк оставить медленное
согласен. теперь и сам это понял. раньше просто не сталкивался с такими мелкими периодами, потому и решил писать тупо в лоб.
источник

VK

Valentin Kornienko in Maxwell's Demons
Al
как сделано сейчас:
по сигналу readyRead останавливаю таймер, проверяю сколько байт пришло (available) , если их 128 то получаю и обрабатываю. после обработки запускаю таймер.
если их не 128, то запускаю таймер.

по прерыванию таймера чищу буфер ком порта (read all) и запускаю таймер снова
Забирайте данные всегда по сигналу, таймауты в десктопе это моветон отчасти.
источник

VK

Valentin Kornienko in Maxwell's Demons
Собирать в Лок фри очередь все и из нее в отдельном потоке выбирать на обработку данные
источник

VK

Valentin Kornienko in Maxwell's Demons
std:: atomic_bool посмотреть например зачем может быть использован тут
источник

VK

Valentin Kornienko in Maxwell's Demons
Тем более что в кьют очень приятная многопоточность
источник

A

Al in Maxwell's Demons
лол, короче нашел относительно рабочий костыль:
в диспетчере повысить приоритет процесса до "реального времени" 😆😆👍
ошибки случаются, но крайне редко
источник

A

Al in Maxwell's Demons
Valentin Kornienko
Тем более что в кьют очень приятная многопоточность
блин, звучит это всё круто, но я не дорос ни до ооп ни до кьюта, боюсь если счас начну вникать в глубины, то убью кучу времени.

обычно моих знаний более чем хватало на простые терминалки/контрол панели/плоттери и т.д. но не на таких частотах.

а счас понадобилось быстрый плоттер набросать - вот и уперёрся в эти проблемы.

на данном этапе решу костылями, т.к. нужно быстро и "на один раз" , а в дальнейшем буду осваивать все эти потоки и т.д.
источник