Официальный сайт компании Arduino по адресу arduino.cc
HC 06 правило для чтения команд
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 16/06/2016 - 11:58
Уважаемые специ, подскажите пожалуйста правило для написания команд.
К примеру если я отправляю char 'a' для включения светодиода
и char 'b' для отключения - все идет нормально. Но если отправлю слово в котором есть и a и b то начинается ступор естественно.
Вопрос : как правильно прописать команду чтоб выполнялось при условии когда именно этот символ или только то слово. Потому что сейчас выполняется команда при любом написании символов если среди них попадается a или b .
Код секретный?
да нет конечно))
чето не подумал об этом.
Код работает совершенно адекватно - если прочитали нужный символ из порта - делаем какое-либо действие. Если вы хотите, чтобы при посыле целого слова, содержащего управляющие символы, ничего не происходило - вам надо как-то отделять управляющие символы, например, читать до разделителя какого-нибудь и потом смотреть, что пришло.
команды отправляю терминалом с андроида.
Это да, но мне нужно чтоб выполняло именно после нужного символа а не из наборра символов среди которых есть нужный
Это да, но мне нужно чтоб выполняло именно после нужного символа а не из наборра символов среди которых есть нужный
ОТветьте себе на вопрос: как Вы намерены отличать "именно нужный символ" от "нужного символа, котрый в наборе"? Вот просто - чем эти ситуации отличаются? Как только Вы ответите - больше у Вас не быдет вопросов.
Например, нужный исмвол 'a'. Если юзер вёл строку "1а1" - это неправильно?
А как правильно? ЧТобы перед a шёл перевод строки и после тоже? Или ещё как?
Т.е. сформулируйте чётко критерий и Вам всё станет понятно.
Вот ОНО! -перевод строки!
Толчек верный!
незнал этого. Вот почему начал тему. Вообще углубляясь в среду ардуино помалу вылавливаешь ньюансы. Не первый раз бьюсь о грабли. Рассчитывал что команды будут исполнятся только от нужных символов, но увы. Есть "эффект просеивания" как для себя занотировал.
Смею предположить что количество самих команд будет ограниченно. (естественно речь идёт о 1000 вариантах)
Не говорите мне сразу -"А тебе что мало?!" :)
нет, мне достаточно и 6-10. Вопрос следующий : как разделить команды в которых встречается один и тот же символ- но выполняется совсем другое. Думаю все используют неповторябщие символы.
Стоп! подробнее пожалуйста: "чтоб считало после определённого разделителя"
Как это в коде? предполагаю что будет читать символ по порядковому номеру. Например в слове будет читать только третий символ и если он нуджный команда выполняется? кусочек кода пожалуйста напишите к примеру.
maxvalin,
вы должны понимать, что Вы читаете из потока. Поток, он и есть поток, там идут подряд все символы, которые в него попали. Как их интерпретировать - дело Ваше.
Вот Вам не нравится, что в слове kaka две буквы a и типа у Вас два раза всё сработет.
Значит Вы (именно Вы - никто за Вас этого не сделает) должны определить чёткие правила какую букву следует считать командой, а какую - нет. Ч1ткие понятные правила! СЕйчас же у Вас букву a в слове ah нужно считать командой, а такую же букву в слове kaka - не нужно. Это не правила - это неосознанные хотелки. Сформулируйте чёткие и однозначные правила.
Пока Вы таких правил не сформулировали, Ваша просьба о примере кода ни о чём - какого кода Вам нужен пример? По каким правилам он должен выбирать команды?
Я понимаю ваши замечания но от собственной малограммотности в даной теме не получается правильно обьяснить. Я понял что команды это ввесь поток и там нет порядкового номера. Давайте отбросим мои хотелки. Внимательно перечитывая ответы, думаю вопросы мои закрыты. Предполагая из всего правильно будет отсылать короткие символы например в виде цифр. а в программе которая на телефоне просто создать визуальную оболочку с уже понятными командами. Да это наверное все так и делают. Думаю остался последний вопрос: я установил блютуз терминал, но есть именно графические программы с которыми идёт миниредактор позволяющий создать кнопку и назначит код который нужен для выполнения. Есть ли такая и как она зовется?
по командам нашел ЭЭЭht tp://pashkevich.me/article/6.htmlЭЭЭ на легкодоступном языке.