Быстрое чтение Serial порта

dron3903
Offline
Зарегистрирован: 14.07.2022

Здравствуйте, дамы и господа, есть проблема, у моего друга есть проблема, ему на работе поствили задачу, мол тебе прилетает на Serial длинная сторка, тебе задача считать ее, и отправить сообщение что ты обработал, и все это за 500 миллисекунд.

Мы пробовали разные способы, при помощи Serial.readString, Serial.readBytes, и различные их вариации и хотелеи бы получить вашего совета, может кто знает как ускорить считывание?

dron3903
Offline
Зарегистрирован: 14.07.2022

dron3903 пишет:

Здравствуйте, дамы и господа, есть проблема, у моего друга есть проблема, ему на работе поствили задачу, мол тебе прелиетает на Serial длинная сторка, тебе задача считать ее, и отправить сообщение что ты обработал, и все это за 500 миллисекунд.

Мы пробывали разные способы, при помощи Serial.readString, Serial.readBytes, и различные их вариации и хотеле бы получить вашего совета, может кто знает как ускорить считывание?

Забыл добавить что сейчас читение Serial занимвет 3 секунды

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Serial.begin(стотыщмильенов);

svm
Offline
Зарегистрирован: 06.11.2016

dron3903 пишет:

Здравствуйте, дамы и господа, есть проблема, у моего друга есть проблема, ему на работе поствили задачу, мол тебе прелиетает на Serial длинная сторка, тебе задача считать ее, и отправить сообщение что ты обработал, и все это за 500 миллисекунд.

Мы пробывали разные способы, при помощи Serial.readString, Serial.readBytes, и различные их вариации и хотеле бы получить вашего совета, может кто знает как ускорить считывание?

А если строка летит 10 секунд, то ее тоже надо за полсекунды принять? Обычно такие темы поднимаются в пятницу.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

dron3903 пишет:
что сейчас читение

Виремя на  читение совсэм чка! (просто добрая шутка! без шовинизма! )

dron3903
Offline
Зарегистрирован: 14.07.2022

Скажем так он занят ревер инженеренгом, и на том устройстве все обрабатывется в пределах 500 миллисекунд

svm
Offline
Зарегистрирован: 06.11.2016

wdrakula пишет:

dron3903 пишет:
что сейчас читение

Виремя на  читение совсэм чка! (просто добрая шутка! без шовинизма! )

Это производное от читер.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Хоть бы пример строки привёл, скорости на которых пытались считать, ну и схема подключения тоже желательна. Чем ещё МК «занят»? Как читаете? Столько вопросов возникает сразу, даже не знаешь какой первым задать. А ведь ПРАВИЛЬНО заданный вопрос - это половина ответа (а часто и сам ответ).

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

begin(500000) у меня работает

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

на скорости 115200 - 500 байт это 43 мс

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

на скорости 115200 - 500 байт это 43 мс

да понятно, что дело не в принять, а в обработать, ESP32 на частоте 240 может потянет?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Что там и как надо обработать не известно. 500 мс это ДОХРЕНА !!!

b707
Offline
Зарегистрирован: 26.05.2017

Дрон, сколько буковок в строке, хотя примерно?

b707
Offline
Зарегистрирован: 26.05.2017

dron3903 пишет:

кто знает как ускорить считывание?


учится программировать... Судя по использованным функциям readString и readBytes у друга с этим не очень.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:
Дрон, сколько буковок в строке, хотя примерно?

#7

dron3903
Offline
Зарегистрирован: 14.07.2022

120 примерно, только что бы считать и записать ее в переменную у нас минимкм кходило, 1 с половиной секунда. Мы как делали, брали serial.read и по буквенно записывали в строку. Это самое быстрое что смогли придкмать.

 

b707
Offline
Зарегистрирован: 26.05.2017

dron3903 пишет:

120 примерно, только что бы считать и записать ее в переменную у нас минимкм кходило, 1 с половиной секунда. Мы как делали, брали serial.read и по буквенно записывали в строку. Это самое быстрое что смогли придкмать.

 

Показывайте свой код, как делали. Не на что тут тратить целую секунду... Скорее всего не Serial.read() использовали, а Serial.readString() - это детская ошибка

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Может у вас обмен идёт на скорости 4800 или 1200 ???

b707
Offline
Зарегистрирован: 26.05.2017

Komandir пишет:

Может у вас обмен идёт на скорости 4800 ???

даже на скорости 4800 должны были уложиться в 0.3 сек максимум :)

Green
Offline
Зарегистрирован: 01.10.2015

Ха. Иной раз высокая скорость тоже доставляет проблемы.) К примеру 2000000. Казалось бы класс, но не все успевают, однако.)))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

dron3903 пишет:

120 примерно, только что бы считать и записать ее в переменную у нас минимкм кходило, 1 с половиной секунда. Мы как делали, брали serial.read и по буквенно записывали в строку. Это самое быстрое что смогли придкмать.

 

dron3903, судя по тому, что Вы пишете, у Вас в программе какая-то глупая ошибка.

Вы всерьез думаете, что кто-то, не видя кода, сможет угадать, какая именно?

sadman41
Offline
Зарегистрирован: 19.10.2016

Дак тут все ясно, по-моему: складывают байты в String.

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:
Дак тут все ясно, по-моему: складывают байты в String.

не, не так.... уже давно ничего не складывают, плюнули на это дело, ушли пиво пить.

А вы тут гадаете...