Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Timer 自动运行和停止处理代码_Timer_Arduino_Processing - Fatal编程技术网

Timer 自动运行和停止处理代码

Timer 自动运行和停止处理代码,timer,arduino,processing,Timer,Arduino,Processing,我想做的就是这样;我想运行下面的处理代码,在2分钟后,它应该自动停止,并使自己再次运行,在2分钟后再次停止。我的意思是我不想手动点击run按钮来运行代码 我是一个处理方面的初学者,如果你能回答我迫切需要这个问题,我将非常高兴 import processing.serial.*; // The serial port: Serial myPort; String dataReading = ""; String [] dataOutput = {}; void setup() { si

我想做的就是这样;我想运行下面的处理代码,在2分钟后,它应该自动停止,并使自己再次运行,在2分钟后再次停止。我的意思是我不想手动点击run按钮来运行代码

我是一个处理方面的初学者,如果你能回答我迫切需要这个问题,我将非常高兴

import processing.serial.*;

// The serial port:
Serial myPort;
String dataReading = "";
String [] dataOutput = {};

void setup() {
   size(500,500);

   // Open the port you are using at the rate you want:
   myPort = new Serial(this, Serial.list()[7], 9600); 
   //in my case,the Serial port the Arduino is connected to is 9th on the serial list, hence the [8]
   //to get access to the serial list you can use >> println(Serial.list());
   myPort.bufferUntil('\n');
}

void draw() {
   //...
}

void serialEvent(Serial myPort) {
   dataReading = myPort.readString();

   if(dataReading!=null){
      dataOutput = append(dataOutput, dataReading);
      saveData();      
  } 
}

void saveData() {
   println("saving to txt file...");
   saveStrings("data/data.txt", dataOutput); 
}

为什么要每2分钟重新启动一次代码?我不明白为什么它会改变行为。因为我想将数据保存到文本文档中,并且我认为它会在代码停止后保存数据。所以我想自动完成。而且,实际上,我想把这些值替换成新的读数。但在这段代码中,它将新的附加到dataOutput数组。你知道如何用数据读取替换数据输出吗?如果我将dataOutput更改为String而不是array,是否有效?否,只要调用
saveStrings()
,文件就会被写入。是,将dataOutput更改为
字符串
并替换
dataOutput=append(dataOutput,dataReading)带有
dataOutput=dataReading应该做你想做的。你的保存是对的。我不必停止保存代码。但是dataOutput=dataReading不起作用,因为saveData方法中的saveStrings只接受字符串数组,我想:(你是对的。尝试将字符串包装到数组中,然后:
saveStrings(“data/data.txt”,newstring[]{dataOutput});