Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
Diff: task.cpp
- Revision:
- 8:973dcd190672
- Parent:
- 6:13d180af7501
- Child:
- 9:e136394bdb39
--- a/task.cpp Tue May 29 14:40:50 2018 +0000 +++ b/task.cpp Thu May 31 15:25:37 2018 +0000 @@ -1,6 +1,6 @@ #include "task.h" -#include "IO.h" #include "utils.h" +#include "states.h" #include "automaton.h" Task::Task(const Mode& mode): @@ -51,13 +51,13 @@ void Task::testReward() { - // Cued::turnOnReward(); - // while(Cued::phase != Cued::Done); - // LOG_REWARDED + automaton::init<TestReward>(); + automaton::run(); + IO::result("reward"); } void Task::runTrial() { - // TRIAL_STARTING + automaton::init<Delay>(); automaton::run(); } @@ -68,72 +68,3 @@ void Task::writeSettingsToSerial() { config::writeSettingsToSerial(); } - -/* -void Task::parseFromSerial() { - char in = IO::getc(); - - if (isWhitespace(in)) { - return; - } - - switch(in) { - case CMD_TEST_REWARD: - // Cued::turnOnReward(); - // while(Cued::phase != Cued::Done); - // LOG_REWARDED - IO::result("done"); - break; - - case CMD_EXECUTE: - // TRIAL_STARTING - automaton::run(); - IO::result("done"); - break; - - case '?': writeSettingsToSerial(); break; - case CMD_MODE_PAIR: mode = Pair; writeModeToSerial(); break; - case CMD_MODE_REPORT: mode = Report; writeModeToSerial(); break; - case CMD_MODE_APPEAR: mode = Appear; writeModeToSerial(); break; -#define PARSE(CHR, PARAM) case (CHR): PARAM = parseUnsignedFromSerial<uint16_t>(PARAM);\ - IO::config("%c%u",(CHR),(PARAM)); break; - - PARSE(CHR_DELAY_MIN, delay_min_ms) - PARSE(CHR_DELAY_VAR, delay_var_ms) - PARSE(CHR_PREP_DUR, prep_dur_ms) - PARSE(CHR_CUE_DUR, cue_dur_ms) - PARSE(CHR_POST_DUR, post_dur_ms) - PARSE(CHR_REWARD_DUR, reward_ms) -#undef PARSE - default: - IO::error("%c",in); - break; - } -} - - -void Task::writeSettingsToSerial() -{ - writeModeToSerial(false); - IO::write(STR_DELIMITER); -#define WRITE(CHR, PARAM, END) IO::write("%c%u",CHR,PARAM); if (END) { IO::write(STR_NEWLINE); } else { IO::write(STR_DELIMITER); } - WRITE(CHR_DELAY_MIN, delay_min_ms, false) - WRITE(CHR_DELAY_VAR, delay_var_ms, false) - WRITE(CHR_PREP_DUR, prep_dur_ms, false) - WRITE(CHR_CUE_DUR, cue_dur_ms, false) - WRITE(CHR_POST_DUR, post_dur_ms, false) - WRITE(CHR_REWARD_DUR, reward_ms, true) -#undef WRITE -} - -void Task::writeModeToSerial(bool newline){ - IO::write(IO::CONFIG_HEADER); -#define WRITE(CHR, VAL) if (mode == (VAL)) { IO::write("[%c]",CHR); } else { IO::write("%c",CHR); } - WRITE(CMD_MODE_PAIR, Pair) - WRITE(CMD_MODE_APPEAR, Appear) -#undef WRITE - if (newline) { - IO::write(STR_NEWLINE); - } -} -*/