从arduino的串行电车获取INT

问题描述

我正在尝试在我的Arduino代码中分析从Serial收到的故障。

我收到了一个像ACTION = 24:A2:D1:8F:38:28 = 12

我知道如何将字符串的3部分分开。我现在有了一个带有ACTION的字符串,一个带有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 ...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)