Hi, and welcome!
This looks pretty good! A few minor nits.
Please use GPL2. As this is a derived work of ours, I'm able to defend our legal position better if the license isn't diluted with multiple licenses and if I'm at least one of the owners of the code.
Instead of a verbose flag, please use global_opts.debug_level.
Don't torture yourself with struct tm; use the native Qt Date/Time/DateTime facilities. That'll get you sub-second support, too, which it looks like you're computing and then dropping ont he floor. You can construct a QDate(year, month, date) directly from workoutDateStart.
Since this isn't a serial device, there's no real reason to use masked_object; just read anything you can find int he file.
Please pump up the doc a little bit with a list of supported devices and clues on how to get the files from the devices and other things that users would like to know.
Thanx for taking this on. it's not far at all from being committable.