Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
Diff: trial.cpp
- Revision:
- 2:0c241937eabd
- Child:
- 3:991c6d5ce19d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trial.cpp Mon May 14 18:07:57 2018 +0000 @@ -0,0 +1,48 @@ +#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); +} \ No newline at end of file