Вопрос: Я новичок в C++, и после написания следующего кода кажется, что должен быть способ сократить его. Может быть, каким-то образом совпадающим с строкой? Как это будет сделано?Упрощение функции на основе соответствия шаблону строки
Функция принимает строку message
, полученную через последовательный порт, и устанавливает значение определенного элемента массива pinValues[]
в зависимости от message
. Значение, которое будет установлено, определяется последним символом H
или L
непосредственно перед \n
.
Строка картина: (a number)(H or L)\n
Например: message == "4H\n"
будет установлен 5-й элемент pinValues[4]
в HIGH
. Номер в начале строки может быть От 1 до 2 цифр.
void setPinValues(String message) {
if(message == "1H\n") {
pinValues[1] = HIGH;
}
if(message == "1L\n") {
pinValues[1] = LOW;
}
if(message == "2H\n") {
pinValues[2] = HIGH;
}
if(message == "2L\n") {
pinValues[2] = LOW;
}
if(message == "3H\n") {
pinValues[3] = HIGH;
}
if(message == "3L\n") {
pinValues[3] = LOW;
}
if(message == "4H\n") {
pinValues[4] = HIGH;
}
if(message == "4L\n") {
pinValues[4] = LOW;
}
if(message == "5H\n") {
pinValues[5] = HIGH;
}
if(message == "5L\n") {
pinValues[5] = LOW;
}
if(message == "6H\n") {
pinValues[6] = HIGH;
}
if(message == "6L\n") {
pinValues[6] = LOW;
}
}
Вы должны использовать зЬй :: Карта – Borgleader