Terminate Character
- Войдите на сайт для отправки комментариев
Ср, 03/07/2019 - 17:19
Ребята, подскажите пож, можно ли в скетче сделать переопределение (как?) для признака конца команды, переданой через COM-port?
"По умолчанию" предполагается, что используется Line feed (\n), но __хотелось__бы__ чтобы скетч юзал \r на входе.
Итак, если ДА, то как настроить?
if (Serial.read() == '\r') {...}
спасибо за такую оперативность))
да-да, все было бы хорошо, если бы задача распадалось на такие подробные куски.
Однако, скетч написан по другому принципу (писался не мной, потому и пришлось идти на форум со своими вопросами):
В скетче задается новая команда (та самая, что придет через COM-port >>>> :DATA?), т.е. идет обращение к встроенной процедуре cmd.addCommand создать новую команду и описан код по ее обработке cmd_data
cmd.addCommand(":DATA?", cmd_data);
----
На этом этапе К СОЖАЛЕНИЮ нет ни одного места, где можно было бы модифицировать ТО, о чем я пишу(((
Отсюда у меня и возник вопрос КАК изменить некие "дефолтные" установки, чтобы процедура, которую вызывает мой скетч, юзала не \n, а \r ???
Ну, или как вариант, ЭТО НЕ ВОЗМОЖНО в данной конкретной ситуации...
Ничо не понял. Но, вполне вероятно, это я просто непроходимо туп.
Вы хотите, чтобы кто-то подсказал, как исправить дефолтные установки скетча, который в глаза не видел - я правильно понимаю?
Вот - привел код )))
Вы понимаете правильно, но акцент выставляете неверный)))
Я не даром поставил слово ДЕФОЛТНЫЕ настройки в кавычки.
Если идет обращение к стандартным библилтекам, то можно было бы от них ожидать некоторой гибкости...
Поэтому я и спросил: возможно ли как-то повлиять на эту ситуацию извне (может есть какой-то дополнительный необязательный параметр, или еще нечто)?
Первая ссылка на библиотеку из гугля https://github.com/kroimon/Arduino-SerialCommand/blob/master/SerialCommand.cpp , навскидку - строка #33.
Глобальных дефолтовых настроек на этот счёт нет.
"По умолчанию" предполагается, что используется Line feed (\n), но __хотелось__бы__ чтобы скетч юзал \r на входе.
Ссылку на используемую библиотеку Вы не дали. Но судя по той, что я видел, там в одном месте заменить '\n' на '\r', промахнуться негде.
Да, sadman41, я уже тоже глянул на это и готов-таки пойти этим путем (переделать "под себя" библиотеку).
Но меня очень смутила ремарка:
" // default terminator for commands, newline character "
... как раз в ключе моего топика: казалось бы, если есть такое понятие, как дефолтное значение, то должен быть и способ воздействия на него (не столь брутальный, что мы щас обсуждаем)!
Неизвестно, что имел в виду автор. Может он был пьян. См. строку #80
а-ха-ха! )))
строка 80 - просто шедевральна...
Ладно, буду идти на таран (хотя это и не красиво) - просто заменю библиотеку...
Ладно, буду идти на таран (хотя это и не красиво) - просто заменю библиотеку...
что в этом "некрасивого"? Библиотеки зачастую пишут такие же чайники, как вы или я - и поменять что-то в библиотеке под свои нужды вовсе не подвиг, я так постоянно делаю :)
Все, ребята, все сделал - работает...
)))
Всем спасибо за конструктивное обсуждение и успехов!