Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
trial.cpp
- Committer:
- gwappa
- Date:
- 2018-05-14
- Revision:
- 2:0c241937eabd
- Child:
- 3:991c6d5ce19d
File content as of revision 2:0c241937eabd:
#include "trial.h" #include "IO.h" #include "random.h" void Trial::reset(const Task& task){ // reset score response = TrialFlags::Clear; // set delay duration delay_dur_ms = task.delay_min_ms + random::exponential(task.delay_var_ms, task.delay_var_ms*3); // set stim size switch(task.mode) { case Appear: if (random::unif(2) == 1) { response |= TrialFlags::Cues; } break; case Pair: default: response |= TrialFlags::Cues; break; } // TODO: reset interrupt events // LICK::clearEvents(); // WHISK::clearEvents(); } void Trial::writeToSerial() { switch(response){ #define WRITE_SCORE(SC,REPR) case SC: IO::write("%c%s;",IO::RESULT_HEADER,REPR); break; WRITE_SCORE(Responses::Hit, "hit") WRITE_SCORE(Responses::Miss, "miss") WRITE_SCORE(Responses::Catch, "catch") WRITE_SCORE(Responses::Reject, "reject") WRITE_SCORE(Responses::Reset, "reset") WRITE_SCORE(Responses::NA, "na") #undef WRITE_SCORE } IO::write("wait%u\r\n",waiting); //unsigned long zero = (response == Responses::Reset)? starting : cuestarting; //Serial.print("whisk"); WHISK::writeLogToSerial(zero); Serial.print(DELIMITER); //Serial.print("lick"); LICK::writeLogToSerial(zero); Serial.print(DELIMITER); }