Keisuke Sehara
/
STM32_Whisking
fast-feedback virtual target task code on STM Nucleo
task.cpp
- Committer:
- gwappa
- Date:
- 2018-05-31
- Revision:
- 8:973dcd190672
- Parent:
- 6:13d180af7501
- Child:
- 9:e136394bdb39
File content as of revision 8:973dcd190672:
#include "task.h" #include "utils.h" #include "states.h" #include "automaton.h" Task::Task(const Mode& mode): mode(mode), delay_min_ms(CHR_DELAY_MIN, 3000), delay_var_ms(CHR_DELAY_VAR, 3000), prep_dur_ms (CHR_PREP_DUR, 3000), cue_dur_ms (CHR_CUE_DUR, 3000), post_dur_ms (CHR_POST_DUR, 4000), reward_ms (CHR_REWARD_DUR,10), test_reward (CMD_TEST_REWARD, callback(this, &Task::testReward)), run (CMD_EXECUTE, callback(this, &Task::runTrial)) { } ModeSelection::ModeSelection(const Mode& defaultValue): value(defaultValue) { config::addCommand(CMD_ID_MODE, this); } ModeSelection::~ModeSelection() { config::removeCommand(CMD_ID_MODE); } bool ModeSelection::parse(const char& c) { switch(c) { case CMD_MODE_PAIR: value = Pair; return true; case CMD_MODE_REPORT: value = Report; return true; case CMD_MODE_APPEAR: value = Appear; return true; default: return false; } } bool ModeSelection::writeSettings() { #define WRITE(CHR, VAL) if (value == (VAL)) { IO::write("[%c]",CHR); } else { IO::write("%c",CHR); } WRITE(CMD_MODE_PAIR, Pair) WRITE(CMD_MODE_REPORT, Report) WRITE(CMD_MODE_APPEAR, Appear) #undef WRITE return true; } void ModeSelection::echoback() { IO::write(IO::CONFIG_HEADER); writeSettings(); IO::write("\r\n"); } void Task::testReward() { automaton::init<TestReward>(); automaton::run(); IO::result("reward"); } void Task::runTrial() { automaton::init<Delay>(); automaton::run(); } void Task::parseFromSerial() { config::handleSerial(); } void Task::writeSettingsToSerial() { config::writeSettingsToSerial(); }