Closed iandol closed 4 years ago
Sorry I was away for hols, should be much more responsive now. It should definitely be possible to reverse engineer the settings from the behavioural logs generated, as each trial should be logging all relevant information so that it can be analysed afterwards. I understand this isn't ideal though.
I currently handle this by writings tasks such that they log all these relative parameters in the CSV on a trial by trial basis. For me the advantages of this are:
I can see there are drawbacks however:
For me the advantages outweigh the disadvantages but i'm definitely open to altering it if you feel the opposite? And actually as writing this I'm thinking it could be a really useful debugging tool, e.g. your recent cameraSavePhoto issue, particularly for me helping remote users.
It is not always easy to know ahead of time which prefs may be relevant. As an example, if by accident you misclick the background colour to be the same as the target, monkey performance drops but you have no objective record why (yes, we can solve it by looking, but sometimes the tablet is on-cage and not easy to observe). Saving the prefs enables one to problem solve this kind of potential blunder from the files themselves.
Logging is not exclusive to prefs saving, so you could log the main important settings, and still save the prefs "as-they-were" when that task started. It provides a more complete record, even if you may not have to parse it for basic analysis when everything is working. In MATLAB I could solve this in a second, but Android is still opaque enough to me (the prefs system looks super convoluted), that I'm not sure where to get all prefs. As I said on another issue, prefsManager isn't a singleton, and I'm not sure (given my shaky android knowledge) how that affects the ability to easily serialise this object to a format like JSON?
Fair points, I'll have a look at how feasible it is
Now implemented in 7719e5eff2a5ae56b1b714e970b228af1ddc142f
Hi James, when a task starts it would be really helpful if alongside the task log, a copy of the prefManager settings was also saved. It means we can evaluate what settings were used when collecting the data, which currently is not really possible. I assume there is some way to serialise the object to JSON or some other format?