【发布时间】:2020-05-03 17:05:40
【问题描述】:
正如标题所示,我正在使用以下函数来读取 SD 卡上存在的一些 g-code 文件的参数:
long parseParameters(String data, char* c){
int offset = data.indexOf(c);
int offset1 = data.lastIndexOf(" ", offset + 1);
return offset1 > 0 ? data.substring(offset + 1, offset + offset1 + 1).toInt() : data.substring(offset + 1).toInt();
}
void setup(){
Serial.begin(9600);
String q = "P3 S255"; // input
Serial.println(parseParameters(p, "S")); // output
}
void loop(){
}
直到今天,在试图读取字符串P3 S255中S的值时出现了一个小bug:
INPUT -> OUTPUT
P3 S255 -> 25 (wrong)
A20 P3 S255 -> 255 (Correct)
S255 -> 255 (Correct)
为什么?然而代码对我来说似乎是正确的......我哪里出错了?
提前感谢大家.. :)
【问题讨论】:
-
这是一个很好解决的问题,并且在您之前解决得相当严格。查找专为 Arduino 平台设计的 Marlin 或其他固件。它都是开源的,可以为您提供线索或说服您停止重新发明轮子。
-
我理解您的观点,但有时,在尝试编程语言时,即使能够重新发明轮子也不会让人感到满意.. :)
标签: c++ arduino arduino-uno arduino-c++