Не удается проверить равенство со строкой полученной от модуля bluetooth

Я пытаюсь держать программу в цикле до тех пор, пока пользователь не введет "ок" в приложении Bluefruit Connect. Я использую функцию ReadString() для чтения из объекта bluetooth (ble). Перед этим циклом моя строковая командная переменная инициализируется как пустая. Вот мой код:

while(!command.equalsIgnoreCase("ok"))
{
  while(ble.available())
    command = ble.readString()
}

Я подтвердил, что могу получать данные, так как могу выводить командную переменную на последовательный монитор. Почему условие для этого цикла всегда возвращает true (т. е. почему строковая командная переменная никогда не равна строковому литералу "ok", игнорируя регистр)?

, 👍1

Обсуждение

выведите длину переменной команды на последовательный монитор ... это может быть не то, что вы ожидаете ... всегда делайте это при отладке кода, @jsotola

@jsotola Wow вы правы. Когда я отправляю строку "ok", она говорит, что длина равна 3. Это символ новой строки, отправленный с ним, или что-то еще? Как я буду удалять этот дополнительный символ в строке?, @Cem Adatepe

это может помочь ... https://majenko.co.uk/blog/reading-serial-arduino, @jsotola

@jsotola Теперь работает! Большое вам спасибо!, @Cem Adatepe