Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: trial.cpp
- Revision:
- 14:af3adf5d5ddf
- Parent:
- 13:8ea85a33e37a
- Child:
- 15:20f7f737c256
--- a/trial.cpp Mon Jun 25 13:20:00 2018 +0000
+++ b/trial.cpp Mon Jun 25 14:47:41 2018 +0000
@@ -2,6 +2,7 @@
#include "rig.h"
#include "IO.h"
#include "random.h"
+#include "events.h"
const uint64_t MicrosecondsInSecond = 1000000;
@@ -17,6 +18,7 @@
// generate visual stimulus
if ((task.mode.value == Report) || (task.mode.value == Associate)) {
+ visualOut.attachTurnOnCallback(&events::gate);
assignRandomStim(task);
} else {
vis_cued = false;
@@ -33,18 +35,20 @@
{
const uint32_t phasedur_us = ms_to_us(task.aud_dur_ms.value);
const uint32_t respdur_us = ms_to_us(task.resp_dur_ms.value);
+ const uint32_t avgdur_us = ms_to_us(task.vis_avg_ms.value);
const uint32_t mindur_us = ms_to_us(task.vis_min_ms.value);
const double failure_perc = (double)(task.vis_fail_perc.value);
const double validphase = (double)(phasedur_us - respdur_us - mindur_us);
- const double taudenom = 2.0 - ::log(failure_perc);
- const uint32_t tau = (uint32_t)(validphase/taudenom + 0.5);
+ const double taudenom = ::log(100.0) - ::log(failure_perc);
+ const double ftau = validphase/taudenom;
+ const uint32_t tau = (uint32_t)(ftau + 0.5);
const uint32_t onset = random::exponential(tau, validphase);
if (onset < validphase) {
// generate duration
const uint32_t durvar = validphase - onset;
- const uint32_t duration = random::unif(durvar) + mindur_us;
+ const uint32_t duration = random::exponential(avgdur_us, durvar) + mindur_us;
visualOut.setDuration(duration);
visualOut.setOnset(onset);