Wolf_Yout
@Wolf_Yout

Не работает смена режимов, в чём моя ошибка?

Код(Гитхаб потому что моё любимое ограничение в 30 к символов) https://github.com/Wolfchik/ArduinoLamp/blob/main/...

Это код от блютуз светильника, я решил попробовать устанавливать режим через com порт, и когда я ввожу номер режима в порт, он мне сначала возвращает то что я отправил, а потом возвращает 0:
unknown.png
В чём проблема?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
Подозреваю, что вот эта функция void BluetoothTick() вызывается слишком часто, а в терминал блютуз а отправляется символ конца строки и переноса каретки. Таким образом, возможна обработка сначала цифры, и функция ее возвращает, а потом отдельно символ конца строки. Он не является числом, поэтому parseInt вернёт ноль, он же вернётся в терминал и переключит режим. Если вводить двузначное число, вернёт двузначное или два однозначных? Если в терминале отключить отправку символа конца строки?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kalapanga
У Вас будет более 255 режимов? Если нет, то зачем тут вообще parseInt? Читайте себе всё подряд по байтику, на нужные реагируйте.
А с parseInt Константин Зайцев скорее всего в правильную сторону думает, особенно про концы строк. Вот только мне казалось, что там и так посторонние символы по умолчанию игнорироваться должны.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы