I'd like to activate a TTL signal and turn it off all within a single adapter. I would like the on and off times of the TTL signal to be at any time of my choosing within the scene. In my custom-written adapter, I have this line to switch the signal on: PORT = 1; register(,'TTL',p.DAQ.TTLInvert(PORT)); Then a few frames later (e.g., 100ms duration) to turn it off: putvaby lucast4 - Questions and Answers
ok got it, I will run some more tests to try to isolate the problemby lucast4 - Questions and Answers
I have also analyzed the saved data and there is no increase in the size of data.UserVars over trials...by lucast4 - Questions and Answers
No I don't think so. On each trial I am converting some adapters into structs and then saving them using bhv_variable(). I do this because the adapters hold relevant data. One of them is a custom Adapter. Maybe I am not destroying all of this Adapter's graphics properly? Could this possibly lead to some accumulation of data across trials?by lucast4 - Questions and Answers
Thanks for the quick reply. I am indeed using bhv2... I save most of the data using bhv_variable(). And some in TrialRecord.User. Would any of those slow things down?by lucast4 - Questions and Answers
The ITI is about 1.5sec at the start of the session, then gradually increases over trials. At trial ~500, the ITI is around 5sec. Is this due to the data file size getting too large? It is about 600MB for 1000 trials. I believe this delay is in the monkeylogic ITI, not in any of the timing file code. Do you have any suggestions where to begin looking?by lucast4 - Questions and Answers
When closing the "IO Test" dialog box by clicking the on the window, the expt crashed, printing this error mesage: If we close using ESC on keyboard it doesnt crash.by lucast4 - Questions and Answers
what I would like to do is actually delay the fini() for all adapters. So really what I need is a Sequential() chain, where there is a TimeCounter in between the two adaptors for which I would like to impose a delay? Also, a question, does doing the pause() just block, or just delay, the fini() for other adapters. Thanks!by lucast4 - Questions and Answers
I added a pause(DELAY) statement in an adapter's fini() method, with the goal of simply adding a delay in the trial structure. DELAY is <0.4 seconds. Is there a fundamental reason I should avoid this? I have checked closely and nothing seems messed up (in runtime or in the data). I understand that using another adapter, like TimeCounter() is better practice, but I wanted something toby lucast4 - Questions and Answers
Yes it works! thank you so muchby lucast4 - Questions and Answers
Thanks! that's a very helpful hint. I'll test things out as you suggestby lucast4 - Questions and Answers
OK, I think this might be useful info. I am testing this with touch tracker, since it shows the same problem. At line 52 to 57 in TouchTracker.m, I set a breakpoint. xy=reshape(obj.XYData(end,,2,[])'; nxy=size(xy,1); status=~isnan(xy(:,1)); mglactivategraphic(obj.Screen.TouchCursor(1:nxy),status); mglsetorigin(obj.Screen.TouchCursor(1:nxy),xy); obj.Success=any(status); On triby lucast4 - Questions and Answers
Would you be able to give me a little more advice? I have set breakpoints on the adapters and walked through, but I am not sure what to look for, since it is not these adapters that are controlling the location of the eye and hand cursors on the experiment screen. Like is there a line of code in ML2 where the eye dot is rendered? And I could work from there? Thanksby lucast4 - Questions and Answers
I think it should run if you set your path to include everything I sent you (including subfolders). What is the missing function?by lucast4 - Questions and Answers
Sorry for the inconvenience - it should run if you use the ML2 version that is included in the download I sent you. I agree with your suggestion, but the task depends highly on the custom adapters, so I am not sure if it possible to remove them one by one - the task will break. Do you have another suggestion? Maybe you could direct me to the relevant code that is computing/rendering the eyby lucast4 - Questions and Answers
It doesn't happen in other tasks. I see it on all computers. Perhaps it relates to a bunch of custom adaptors I wrote? I will PM you the task files right now. Thanks!by lucast4 - Questions and Answers
Hi, On the experimenter screen, the dot representing eye tracking shows only on the first trial. It is not visible on subsequent trials. Coincidentally, the same thing is true for (i) hand cursor (touchscreen) and (ii) DASHBOARD() messages. Do you know what's going on? Or point me to the best way to debug this? Thanks!by lucast4 - Questions and Answers
you're totally right - this solved the problem. thanks, I should have checked this first!by lucast4 - Questions and Answers
Here is a link to download:by lucast4 - Questions and Answers
I received this error when trying to convert from .bhv2 to .h5: convert_format('h5', filepath) Error using mlbhv2/read_variable (line 291) An error occurred while reading the variable, 'MLConfig'. An error occurred while reading the variable, 'EyeTransform'. An error occurred while reading the variable, ''. An error occurred while readingby lucast4 - Questions and Answers
Hi, I was the one with the similar problem in the previous post. Can you tell me which PCIe card you used that solves the problem? Thanks!by lucast4 - Questions and Answers
Thanks that makes sense. The CPU is Intel Core i5-1035G1 1Ghz, 4 Cores. Can you tell from this whether I should just get a better CPU? It seems like there are no alternative solutions?by lucast4 - Questions and Answers
Update: no errors if I sample at 250 Hz. This is an OK temporary fix, as I would like to get to 500 Hz if possible.by lucast4 - Questions and Answers
I got this error message in between trials. Error using mldaq/MinSamplesAvailable (line 531) NI_AITask::fetch_data:AQmxReadAnalogF64, The application is not able to keep up with the hardware acquisition. Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem. Property:by lucast4 - Questions and Answers
Yes I am able to reproduce the error. In fact you are correct - if I place my palm on one corner, I am able to touch with a finger on the opposite corner. But my touches close to the palm do not register. There seems to be a no-touch zone surrounding the palm, with radius about 2/3 screen size. It does not seem to be due to overlap of XY locations. Do you have any suggestions?by lucast4 - Questions and Answers
Yes it does. The problem is that if the entire palm is on the screen, then there is no hand icon on the screen at all, and the touch analogdata is filled with nans. Indeed, my goal is to train them to keep hands off. This works fine for other animals, since the multitouch works well for detecting multiple fingertips.by lucast4 - Questions and Answers
He places the palms of both hands on the screen. I want him to keep his hands off the screen. The main point is that I would like to be able to detect that this is occuring, so that I can have the task respond appropriately (e..g, by imposing a timeout, or reduced rewards). However, the problem is that when his palm is on the screen, no touches are registered at all. A simple solution is I couby lucast4 - Questions and Answers
In some cases I would prefer palm rejection even if there is delay. Is there a straightforward way for me to turn this back on?by lucast4 - Questions and Answers
I see - thanks for the infoby lucast4 - Questions and Answers
Hi, If the monkey places his entire palm on the touchscreen, then no touches are registered. But if he places a few fingers, then they are registered. This does not seem to be an issue with the touchscreen itself - i.e., it works even with palms on, outside of ML2. Do you know if this might be due to something in Monkey Logic? Thanks, Lucasby lucast4 - Questions and Answers