#arduino #serial-port #integer
#arduino #последовательный порт #целое число
Вопрос:
Я пытаюсь проанализировать полученный trame из Serial в моем коде Arduino.
Я получаю сообщение типа: ACTION= 24:A2: D1: 8F: 38:28 = 12
Я знаю, как разделить 3 части в строке. Теперь у меня есть одна строка с ДЕЙСТВИЕМ, одна строка с MAC-АДРЕСОМ и одна последняя строка с последним значением после последнего «=».
Но я хочу преобразовать последнее значение после «=» в INT.
Мой код :
if (Serial.available()) {
Serial.println("Recpetion en cours");
c = Serial.readString();
sixFirstChar = c.substring(0, 6);
Serial.println(c);
Serial.println(sixFirstChar);
if (sixFirstChar == "ACTION" || sixFirstChar == "SAVING" || sixFirstChar == "MASTER") {
ActionAccRqst = c.substring(7,24);
ActionToSend = c.substring(25,c.length());
Serial.println("Une action est à envoyer à : ");
Serial.print(ActionAccRqst);
Serial.print(" -> ");
Serial.println(ActionToSend);
if (sixFirstChar == "ACTION") {
myData.Type = 1;
} else if (sixFirstChar == "SAVING") {
myData.Type = 2;
} else if (sixFirstChar == "MASTER") {
myData.Type = 10;
}
myData.Message = ActionToSend.toInt();
Serial.println(myData.Type);
Serial.println(myData.Message);
}
}
Я пробовал, toInt()
где myData.Message определяется как Long, но мой SerialPrint всегда возвращает 0…
Комментарии:
1. трамвай, трамвай? что вы имеете в виду?
2. кстати, в Интернете должно быть множество руководств о том, как конвертировать числа и строки или их части туда и обратно.
3. Попробуйте сделать то же самое с присвоением int (вместо long).
4. @YigalB, оба одинаковых результата с int или long …