我想使用处理将arduino上连续接收的数据保存到文本文件中。 现在我的代码用于处理如下所示。
import processing.serial.*;
Serial myPort;
int val;
void setup()
{
myPort = new Serial (this, "COM3", 1200);
}
void draw()
{
if ( myPort.available() > 0)
{
val = myPort.read();
print((char)val);
}
}
arduino收到了aaaaaaaa,并且也通过这样的处理收到了。 如何将其保存到文本文件中?有人可以修改我的代码吗?我对处理有点新意。
另外,如果我收到的文字是:aaaaaaaaa bbbbbbbbbb
那么如何将新段落保存为文本文件中的新段落?
所有帮助表示赞赏。 谢谢!
跟进:
import processing.serial.*;
Serial mySerial;
//import java.text.*;
//import java.util.*;
PrintWriter output;
String[] list;
void setup() {
size(720,700);
background(255);
mySerial = new Serial( this, "COM3", 1200 );
output = createWriter("test5.txt");
}
void draw() {
if (mySerial.available() > 0 ) {
String value = mySerial.readString();
if ( value != null ) {
fill(50);
text(value,10,10,700,700);
output.println(value);
saveStrings("test5.txt", value);
}
}
}
//void keyPressed() {
//output.flush(); // Writes the remaining data to the file
//output.close(); // Finishes the file
//exit(); // Stops the program
//}
我尝试使用此代码将数据保存到文本文件中并出现错误,表示" PApplet类型中的方法saveString(String,String [])不适用于参数(String,String)& #34;
答案 0 :(得分:2)
在阅读之前,请确保您已成功将Arduino中的数据读入String value
。您只需执行以下操作即可确认:
println(value);
以上行将String
打印到PDE的命令行。如果你什么也看不见,这意味着你的Arduino没有通过任何东西喂食。在这种情况下,你需要修复其他事情。
此外,为了确保上述工作没有任何其他因素妨碍,请注释掉存在问题或执行任何文件I / O的行。
如果您已确认收到Arduino的输入,请继续阅读。
您正在错误地使用方法saveStrings()
。根据此处的文档:http://www.processing.org/reference/saveStrings_.html您应该将String输入转换为数组,然后将其提供给方法。
现在你有以下一行:
String value = mySerial.readString();
之后添加以下内容:
String[] valueArray = split(value, ' ');
以上内容直接来自文档,并在每个空格处分割输入String
并将其保存在数组中。在此之后,只需将数组传递给saveStrings()
方法,您应该好好去,如下:
saveStrings("myTextFile.txt", valueArray);
从文档中,这个“[W]将一个字符串数组命名为一个文件,每个字符串一行”。
您收到的错误消息:
“PApplet类型中的方法saveString(String,String [])不是 适用于参数(String,String)“
非常清楚地告诉您,您正在提供saveString()
方法二Strings
(saveString(String, String)
),而它期望的是String
和String
数组( saveString(String, String[])
)。