I was having the same issue, but I found something just as I was writing a reply for this post.
I did not read your code. But for me the problem was on the init sequence.
Before, I had the following sequence:
bsec_get_version() bsec_init() bsec_update_subscription() bsec_set_configuration()
When then you call bsec_sensor_control(), the returned bsec_sensor_settings will be mostly empty, except the next call setting which will be correct (for the config mode you configured). All of the rest will be 0.
If instead your init sequence is like this:
bsec_get_version() bsec_init() bsec_set_configuration() bsec_update_subscription()
meaning you set the configuration and then call the update subscription, then when I call bsec_sensor_control() the returned sensor settings are not empty anymore.
Hope it helps.
Sorry for the inconvience.
It is on going to checking when we could release the C code. It needs some time to integrate it and verity it, we will let you know if the software is ready.