Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Toybox.WatchUi as Ui;
- using Toybox.System as Sys;
- using Toybox.FitContributor as Fit;
- using Toybox.Application as App;
- const CURRENT_SGV_FIELD_ID = 0;
- const LAP_SGV_FIELD_ID = 1;
- const AVG_SGV_FIELD_ID = 2;
- class SGVFitContributor {
- private const TAG = "SGVFitContributor";
- // FIT Contributions variables
- hidden var mCurrentSgvField = null; //Instantaneous values
- hidden var mLapAverageSgvField = null; //Lap average
- hidden var mSessionAverageSgvField = null; //Session average
- // Variables for storing averages for the contribution:
- hidden var contrLapAverage = 0.0;
- hidden var contrSessionAverage = 0.0;
- hidden var contrLapRecordCount = 0;
- hidden var contrSessionRecordCount = 0;
- // Constructor
- function initialize(dataField) {
- Sys.println(TAG + "-> initialize.");
- mCurrentSgvField = dataField.createField("Current_SGV", CURRENT_SGV_FIELD_ID, Fit.DATA_TYPE_FLOAT, { :nativeNum=>54, :mesgType=>Fit.MESG_TYPE_RECORD, :units=>"mmol/l" });
- mLapAverageSgvField = dataField.createField("Lap_average_SGV", LAP_SGV_FIELD_ID, Fit.DATA_TYPE_FLOAT, { :nativeNum=>84, :mesgType=>Fit.MESG_TYPE_LAP, :units=>"mmol/l"});
- mSessionAverageSgvField = dataField.createField("Session_average_SGV", AVG_SGV_FIELD_ID, Fit.DATA_TYPE_FLOAT, { :nativeNum=>95, :mesgType=>Fit.MESG_TYPE_SESSION, :units=>"mmol/l"});
- mCurrentSgvField.setData(0.0);
- mLapAverageSgvField.setData(0.0);
- mSessionAverageSgvField.setData(0.0);
- Sys.println("FIT field initialized.");
- }
- function compute(fitData) {
- Sys.println(TAG + "-> compute");
- Sys.println(fitData);
- if( fitData != null ) {
- //Log current value:
- mCurrentSgvField.setData(fitData);
- Sys.println("ContrLapAverage= "+contrLapAverage);
- Sys.println("ContrSessionAverage = "+contrSessionAverage);
- Sys.println("Lap record count = "+contrLapRecordCount);
- Sys.println("Sgv lap average= "+contrLapAverage/contrLapRecordCount);
- Sys.println("Sgv session average = "+contrSessionAverage/contrSessionRecordCount);
- // Log lap/session FIT Contributions
- mLapAverageSgvField.setData(contrLapAverage/contrLapRecordCount);
- mSessionAverageSgvField.setData(contrSessionAverage/contrSessionRecordCount);
- Sys.println("FIT data recorded!");
- }
- }
- function updateAverages(lapAverage,sessionAverage,lapRecordCount,sessionRecordCount){
- contrLapAverage = lapAverage;
- contrSessionAverage = sessionAverage;
- contrLapRecordCount = lapRecordCount;
- contrSessionRecordCount = sessionRecordCount;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment