fast-feedback virtual target task code on STM Nucleo

Dependencies:   mbed

Committer:
gwappa
Date:
Mon May 14 17:37:26 2018 +0000
Revision:
1:871d3066c2ab
Child:
2:0c241937eabd
separated task-related parameters

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gwappa 1:871d3066c2ab 1 #ifndef TASK_H_
gwappa 1:871d3066c2ab 2 #define TASK_H_
gwappa 1:871d3066c2ab 3
gwappa 1:871d3066c2ab 4 #include "mbed.h"
gwappa 1:871d3066c2ab 5
gwappa 1:871d3066c2ab 6 /*
gwappa 1:871d3066c2ab 7 * command characters
gwappa 1:871d3066c2ab 8 */
gwappa 1:871d3066c2ab 9 #define CMD_MODE_PAIR 'P'
gwappa 1:871d3066c2ab 10 #define CMD_MODE_APPEAR 'A'
gwappa 1:871d3066c2ab 11 #define CMD_TEST_REWARD 'T'
gwappa 1:871d3066c2ab 12 #define CMD_EXECUTE 'x'
gwappa 1:871d3066c2ab 13
gwappa 1:871d3066c2ab 14 #define CHR_DELAY_MIN 'm'
gwappa 1:871d3066c2ab 15 #define CHR_DELAY_VAR 'v'
gwappa 1:871d3066c2ab 16 #define CHR_PREP_DUR 'p'
gwappa 1:871d3066c2ab 17 #define CHR_CUE_DUR 'c'
gwappa 1:871d3066c2ab 18 #define CHR_POST_DUR 'n'
gwappa 1:871d3066c2ab 19 #define CHR_REWARD_DUR 'r'
gwappa 1:871d3066c2ab 20
gwappa 1:871d3066c2ab 21 #define STR_DELIMITER ";"
gwappa 1:871d3066c2ab 22 #define STR_NEWLINE "\r\n"
gwappa 1:871d3066c2ab 23
gwappa 1:871d3066c2ab 24 enum Mode {
gwappa 1:871d3066c2ab 25 Pair,
gwappa 1:871d3066c2ab 26 Appear
gwappa 1:871d3066c2ab 27 };
gwappa 1:871d3066c2ab 28
gwappa 1:871d3066c2ab 29 struct Task {
gwappa 1:871d3066c2ab 30 Mode mode; // the trial mode.
gwappa 1:871d3066c2ab 31
gwappa 1:871d3066c2ab 32 uint16_t delay_min_ms; // the minimum duration for the delay.
gwappa 1:871d3066c2ab 33
gwappa 1:871d3066c2ab 34 uint16_t delay_var_ms; // the average for the (exponential) variable
gwappa 1:871d3066c2ab 35 // duration of the delay.
gwappa 1:871d3066c2ab 36
gwappa 1:871d3066c2ab 37 uint16_t prep_dur_ms; // the duration of the "preparatory period",
gwappa 1:871d3066c2ab 38 // during which licking is not allowed.
gwappa 1:871d3066c2ab 39
gwappa 1:871d3066c2ab 40 uint16_t cue_dur_ms; // the cue duration.
gwappa 1:871d3066c2ab 41
gwappa 1:871d3066c2ab 42 uint16_t post_dur_ms; // the post-reward recording duration.
gwappa 1:871d3066c2ab 43
gwappa 1:871d3066c2ab 44 uint16_t reward_ms; // the duration of reward.reward_ms
gwappa 1:871d3066c2ab 45
gwappa 1:871d3066c2ab 46 explicit Task(const Mode& mode=Pair);
gwappa 1:871d3066c2ab 47
gwappa 1:871d3066c2ab 48 void parseFromSerial();
gwappa 1:871d3066c2ab 49
gwappa 1:871d3066c2ab 50 private:
gwappa 1:871d3066c2ab 51 void writeModeToSerial(bool newline=true);
gwappa 1:871d3066c2ab 52 void writeSettingsToSerial();
gwappa 1:871d3066c2ab 53 };
gwappa 1:871d3066c2ab 54 #endif