Получить INT из последовательного трамвая в arduino

#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 …