///////////////////////////////////////////////////////////// //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); } }
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 }
void AsyncProfiler::nextTrial() { stopTrial(); startTrial(); }