The Fit message can be no longer than 256 bytes. Is there no way to use max Hz of accelerometer data and gyroscope data at the same time?
I'm trying this:
... if($.RL_oSettings.bSensorAcceleration_HD and iFitFields >= 3 and iFitBytes >= 6*RL_App.SAMPLERATE_ACCELERATION_HD) { $.RL_oFitField_SensorAccelerationX_HD = oActivitySession.createField("SensorAccelerationX_HD", RL_App.FITFIELD_SENSORACCELERATIONX_HD, Fit.DATA_TYPE_SINT16, { :count => RL_App.SAMPLERATE_ACCELERATION_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorAcceleration) as String }); $.RL_oFitField_SensorAccelerationY_HD = oActivitySession.createField("SensorAccelerationY_HD", RL_App.FITFIELD_SENSORACCELERATIONY_HD, Fit.DATA_TYPE_SINT16, { :count => RL_App.SAMPLERATE_ACCELERATION_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorAcceleration) as String }); $.RL_oFitField_SensorAccelerationZ_HD = oActivitySession.createField("SensorAccelerationZ_HD", RL_App.FITFIELD_SENSORACCELERATIONZ_HD, Fit.DATA_TYPE_SINT16, { :count => RL_App.SAMPLERATE_ACCELERATION_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorAcceleration) as String }); iFitFields -= 3; iFitBytes -= 6*RL_App.SAMPLERATE_ACCELERATION_HD; // 25 bHighDefListener_Acceleration = true; } if($.RL_oSettings.bSensorGyroscope_HD and iFitFields >= 3 and iFitBytes >= 12*RL_App.SAMPLERATE_GYROSCOPE_HD) { $.RL_oFitField_SensorGyroscopeX_HD = oActivitySession.createField("SensorGyroscopeX_HD", RL_App.FITFIELD_SENSORGYROSCOPEX_HD, Fit.DATA_TYPE_FLOAT, { :count => RL_App.SAMPLERATE_GYROSCOPE_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorGyroscope) as String }); $.RL_oFitField_SensorGyroscopeY_HD = oActivitySession.createField("SensorGyroscopeY_HD", RL_App.FITFIELD_SENSORGYROSCOPEY_HD, Fit.DATA_TYPE_FLOAT, { :count => RL_App.SAMPLERATE_GYROSCOPE_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorGyroscope) as String }); $.RL_oFitField_SensorGyroscopeZ_HD = oActivitySession.createField("SensorGyroscopeZ_HD", RL_App.FITFIELD_SENSORGYROSCOPEZ_HD, Fit.DATA_TYPE_FLOAT, { :count => RL_App.SAMPLERATE_GYROSCOPE_HD, :mesgType => Fit.MESG_TYPE_RECORD as Number, :units => Ui.loadResource(Rez.Strings.unitSensorGyroscope) as String }); iFitFields -= 3; iFitBytes -= 12*RL_App.SAMPLERATE_GYROSCOPE_HD; // 25 bHighDefListener_Gyroscope = true; } ...
The code is from the open source called "connectiq-app-rawlogger" on GitHub.