Start/stop data logging without immediate download
Hi all,
While we patiently wait for the update to allow MMS data download via USB, I am wondering if anyone has a simple solution to this problem. Is there a way, or has anyone developed a simple app, that will allow the user to log data to the MMS board, stop the logging, then download the logged data at a later time? I know it will have to be wireless (and slow) for now, but if I am able to at least log data without having to download it immediately after stopping the logging, this would be a big help.
It really seems like something that must be available already, and if this is the case, I apologise for the simple question but would greatly appreciate the answer.
Thanks!
Comments
I'd also be very interested in a solution to this. What I've been doing is starting the download then cancelling the download immediately, trusting that nothing will be deleted unless everything has been successfully downloaded.
I then do the full download at a later date.
Interesting, does that work reliably? How do you download later on?
It seems to work. Although I would hessitate to say reliably - i only do it when I have no other choice.
You can connect to the sensor on any Metabase app and the 'download data' option should still be available.
Ah this is brilliant!!
From my little test just now, the data logging appears to stop when the download button is first pressed (and subsequently cancelled), which is what I was wanting. The app seems to indicate that data is still being logged (by the little red dot next to the sensor), but my test suggests this isn't actually the case.
Thanks @jamieward, this is a great interim solution to use until the USB download option is released.
The immediate download is just the way MetaBase is written. If your sensor is configured in a custom app or with a script, the download can be delayed as long as you like. However, if the device is reset in the interim, the correlation between logged time and real time may be lost.
Regarding the lost data, you should generally be safe if you stop the download immediately. Log data is read out in chunks of the flash erase block size. If there is an issue in downloading before a block is completely read out, the firmware will roll back to the start of the block on future downloads. There are a couple of handshakes involved per block, to guarantee that the downloading device fully receives a block before it is erased.
It would be rare that an immediate cancel of the download causes data loss -- only a very short block that managed to finish before being cancelled would result in data loss. Only the handful of entries at the beginning of the log would be lost.
@jamieward @ThomasMcGuckian there is example of this in our new MetaWear App: https://github.com/mbientlab/MetaWear-iOS-MetaWear-App
In this app you can log and stop the logger (and download later).
I also made some fake logging test (and have the fail to download and restart the download):
https://github.com/mbientlab/MetaWear-SDK-iOS-macOS-tvOS/blob/master/MetaWear/Tests/Integration/RandomLoggingTests.swift