示例#1
0
/////////////////////////////////////////////////////////////
//respond to incoming serial
void SerialIn(long now, String str) {
	String delimStr = ",";
	
	if (str.length()==0) {
		return;
	}
	if (str == "startTrial") {
		startTrial(now);
	}
	else if (str == "stopTrial") {
		stopTrial(now);
	}
	else if (str.startsWith("getState")) {
		GetState();
	}
	else if (str.startsWith("set")) {
		//set is {set,name,value}
		int firstComma = str.indexOf(delimStr,0);
		int secondComma = str.indexOf(delimStr,firstComma+1);
		String nameStr = str.substring(firstComma+1,secondComma); //first is inclusive, second is exclusive
		String valueStr = str.substring(secondComma+1,str.length());
		SetValue(nameStr, valueStr);
	}
	else {
		Serial.println("SerialIn() did not handle:" + str);
	}
		
}
示例#2
0
void loop()
{
  //digitalWrite(LED_BUILTIN, HIGH); //so we can see if the code is running

	long now = millis();
	
	if (Serial.available() > 0) {
		String inString = Serial.readStringUntil('\n');
		SerialIn(now, inString);
	}

	//for now just simulate some data
	int a1_value = random(255);
	int a2_value = random(255);

	if (now > (trial.trialStartMillis + trial.dur)) {
		stopTrial(now);
	}
	
	if (trial.trialIsRunning==1) {
  		//Serial.println(String(millis()) + "," + "analogEvent" + "," + String (a1_value) + "," + String (a2_value)); 
	}
  
	scanImageFrame_(now);
  
  	updateMotor(now);
  	
	delay(50); //ms

	//digitalWrite(LED_BUILTIN, LOW); //so we can see if the code is running
}
示例#3
0
void AsyncProfiler::nextTrial()
{
    stopTrial();
    startTrial();
}