serial принятое слово написано большими буквами или маленькими! Как отличить?
- Войдите на сайт для отправки комментариев
Вс, 14/04/2019 - 10:46
Вопрос прост! Сериал принимает слово, но не знает большими оно буквами написано или маленькими! Крайне важно! Помогите !
}
void loop(){
read_serial();
}
void read_serial() {
if (Serial.available() > 0) {
char ByteRead=Serial.read();
if (ByteRead==13) { //возврат каретки
analyzer(); //передача данных на обработку
bufer="";
} //освобождение буфера
else {
//накопление данных в буфер
if(ByteRead!=10)bufer=bufer+char(ByteRead); // символ "новая строка" \n, нам в буффере не нужен
}
}
}
void analyzer() {
if (bufer=="off") { КАК ТУТ УЗНАТЬ БОЛЬШИМИ БУКВАМИ ИЛИ МАЛЕНЬКИМИ СЛОВО НАПИСАНО ? ПОМОГИТЕ ! ОЧЕНЬ ВАЖНО! }
и после того как узнает еще как узнать есть ли в слове буква 'B' на конце !!! все спасибо!
Я вам больше скажу - он даже не отличает букв от цифр. Вообще.
Уважаемый, а скажите - в какой кодировке передается текст у Вас на серийном порту?
Если Вы это знаете, то анализируете буквы прямо на приеме (16 строка) на предмет вхождение в диапазон заглавных букв и считаете их число. Если оно равно количеству букв в слове - то значит все заглавные, иначе - не все... Букву перед последней анализируете на равенство "В". Или Вам надо программу написать - так это не сюда.
Если речь не о русских буквах, то чем не устраивают стандартные макросы?
ЕвгенийП Спасибо бошльшое ! Заработало! Как же я люблю ваши советы! Как последнюю букву в слове "видеть" ? Спасибо всем за все советы!
char слово последнюю букву у char слова как найти
Кодировка ASCII у ардуины, на английском слова. Последнюю букву как "отсчитать" не знаю
Если речь не о русских буквах, то чем не устраивают стандартные макросы?
isupper все сделал, но куда то тащит из слова букву! например слово которое он "посмотрел" стало меньшим, букву "утаскивает" этот код, было SLOVO, стало SLO, он отцапал себе 2 буквы!
Если речь не о русских буквах, то чем не устраивают стандартные макросы?
isupper все сделал, но куда то тащит из слова букву! например слово которое он "посмотрел" стало меньшим, букву "утаскивает" этот код, было SLOVO, стало SLO, он отцапал себе 2 буквы! Работает по принципу почты, когда посылка шла через их пункт, и стала другой.
как то так, вообщем из слова исчезли буквы.
А ЕвгенийП маленький баг встроил. Специально для тренировки.)
Ну пример кода с исчазющей буквой давайте, только покороче :)
Ну пример кода с исчазющей буквой давайте, только покороче :)
нижняя строчка не может увидеть в буфере SLOVO и не включает светодиод, если убрать определение большая или маленькая буква, начинает находить SLOVO, выведя в в SERIALPRINT происходящее
вот что остается от SLOVO
S
L
O
V
в коде пробовал и ByteRead и bufer
вот, одну букву прихватила себе функция, нужно что бы отдала назад
причём забирает после 4х букв все буквы себе, даже если написать SLOVO12345 оставит SLOV забрав себе всё
а слова из 4х букв и из 3х букв не забирает, !!! оставляет!!!
Вот, знаете, я верю, что Вы не специально издеваетесь, а просто из-за непонимания процесса. Но, ребята, как же задолбали! Ну, приводите Вы ПОЛНЫЕ скетчи. ПОЛНЫЕ! Которые можно просто запустить и посмотреть. Вот что мне делать с Вашим куском? Дополнять его до состояния в котором он скомпилируется? Так я могу дополнить совсем не так, как у Вас. И толку?
Вот, знаете, я верю, что Вы не специально издеваетесь, а просто из-за непонимания процесса. Но, ребята, как же задолбали! Ну, приводите Вы ПОЛНЫЕ скетчи. ПОЛНЫЕ! Которые можно просто запустить и посмотреть. Вот что мне делать с Вашим куском? Дополнять его до состояния в котором он скомпилируется? Так я могу дополнить совсем не так, как у Вас. И толку?
SLOV включает лампочку а SLOVO не включает буквы отгрызают все что больше 4х букв
Так, ну Вот ещё раз, я же просил, "чтобы можно было запустить и посмотреть". У Вас проблемы со строкой, ну и нафига Вы мне Adafruit_NeoPixel суёте? Как я его запускать-то буду?
Вы можете всё ненужное убрать, а оставить только рабор строки с печатью в Serial и всё?
Так, ну Вот ещё раз, я же просил, "чтобы можно было запустить и посмотреть". У Вас проблемы со строкой, ну и нафига Вы мне Adafruit_NeoPixel суёте? Как я его запускать-то буду?
Вы можете всё ненужное убрать, а оставить только рабор строки с печатью в Serial и всё?
Serial
.println(ByteRead); показывает, что там не загорелись лампочки из за пропажи букв, если ctrl x вырезать часть кода, определяющего какие буквы, перестают пропадать, искомая строчка и есть код "обрезания"
если вставляю в код вашу строчку, она то что ищем скорее всего, начинается "обрезание", если не делать isupper то обрезание никто больше не делает
Послушайте меня внимательно.
1. функции сравнения (isupper, islower, isalpha и т.д.) ничего не образеют. Они вообще ничего не делаютс с символом - это просто сравнение.
2. Если Вы хотите, чтобы я разбирался с Вашим кодом, сделайте так, чтобы я мог его запустить. Т.е. уберите всё связанное с NeoPixel, отсавьте только работу с сериалом. И опубликуйте его в нормально, компилируемеом виде, чтобы я мог запустить и увидеть проблему.
Послушайте меня внимательно.
1. функции сравнения (isupper, islower, isalpha и т.д.) ничего не образеют. Они вообще ничего не делаютс с символом - это просто сравнение.
2. Если Вы хотите, чтобы я разбирался с Вашим кодом, сделайте так, чтобы я мог его запустить. Т.е. уберите всё связанное с NeoPixel, отсавьте только работу с сериалом. И опубликуйте его в нормально, компилируемеом виде, чтобы я мог запустить и увидеть проблему.
удалил все лишнее, компилируется, вроде ничего не менял, но программа стала вас слушаться
Вывод на страйп с адресными светодиодами блокирует прерывания. Все, что прилетело во время этого вывода на аппаратный UART, будет прогнорировано и спущенно в null.
Послушайте меня внимательно.
1. функции сравнения (isupper, islower, isalpha и т.д.) ничего не образеют. Они вообще ничего не делаютс с символом - это просто сравнение.
2. Если Вы хотите, чтобы я разбирался с Вашим кодом, сделайте так, чтобы я мог его запустить. Т.е. уберите всё связанное с NeoPixel, отсавьте только работу с сериалом. И опубликуйте его в нормально, компилируемеом виде, чтобы я мог запустить и увидеть проблему.
Спасибо большое вам! Вставил назад neopixel и сразу заработало, без обрезаний! Не знаю как последнюю букву только определить B там или нет, пишет если slovo 5 раз "ura rabotaet !!!""ura rabotaet !!!""ura rabotaet !!!""ura rabotaet !!!""ura rabotaet !!!" сколько букв столько пишет раз, нужно очень определить последнюю букву в кодировке ANSIII эта буква 66 B последняя буква будет ли B важно очень сделать. в слове.
Буду вам должен! Помогу чем смогу. Низкий вам поклон.
длина слова так скорее всего unsigned int lastStringLength = txtMsg.length();
[Length(s)-1]
будет такое работать?
Вы как-то смешиваете String и массив чаров. Но направление верное. Последний символ - это символ по адресу lingth-1
Вы как-то смешиваете String и массив чаров. Но направление верное. Последний символ - это символ по адресу lingth-1
спасибо большое! вот так работает, удалось знать длину любого слова, следовательно номер последнего символа любого слова
Для ТС не помешает ознакомиться https://rsdn.org/article/cpp/cstr.xml
Для ТС не помешает ознакомиться https://rsdn.org/article/cpp/cstr.xml
спасибо большое!
использовал lastIndexOf
сделал так, если в конце слова нет B то firstclosingbracket получает -1, что достаточно
но lastindexof не в конце а во всем слове находит букву если есть B, что он и должен делать, находит и возвращает цифрой на каком месте от 0 отсчет находится буква, которую ищет, но не в конце слова, попробую lenght, подойдет если все слова с B на конце, не подойдет если B другом месте слова, просто сообщит что нашёл, а на конце другая может быть буква, скорее всего lenght -1
charAt() не хочет работать, bufer.charAt(4) не отдает букву
charAt() не хочет работать, bufer.charAt(4) не отдает букву
Жадный, наерна. Или ты плохо просишь.
charAt() не хочет работать, bufer.charAt(4) не отдает букву
Жадный, наерна. Или ты плохо просишь.
ардуино не отображала слова оказалось, использовал стороннюю программу serail port pro, а ардуино криво все показывала
полностью рабочий код добил! причина буфер формировался и пока формировался буфер последние буквы с каждого прилетающего символа составляли слово
перенес код куда буфер сформирован сразу заработало последняя буква найдена chartat заработал изучайте кому нужно
полностью рабочий код добил! причина буфер формировался и пока формировался буфер последние буквы с каждого прилетающего символа составляли слово
https://www.youtube.com/watch?v=oUk8uXYk_6A&feature=youtu.be&t=350