public void OnHomeButtonClicked(bool modeOn, bool statusOn) { ConnectionState connState = g_BLEAdapter.GetConnectionState(); if (ConnectionState.Connected == connState) { /* Send fitness command with status flag */ for (int i = 0; i < 4; i++) { SendCommand_Fitness(statusOn); } ClearCalibrationData(); g_waitingCmdRspFitness = new CmdRsp_fitness() { waitingFlag = true, modeOn = modeOn, statusOn = statusOn }; /* Update fragment buttons with current values */ g_homeFragment.SetButtons(g_runtimeData.Mode, g_runtimeData.Status); } else { g_runtimeData.Mode = modeOn; g_runtimeData.Status = false; /* Update fragment buttons */ g_homeFragment.SetButtons(g_runtimeData.Mode, g_runtimeData.Status); } }
/************************************/ /* BLE Incoming Commands Processors */ /************************************/ private void ProcessAckCmd(int seqNo, byte[] payld) { if ((null != g_waitingCmdRspFitness) && (true == g_waitingCmdRspFitness.waitingFlag)) { /* Update runtime data */ g_runtimeData.Mode = g_waitingCmdRspFitness.modeOn; g_runtimeData.Status = g_waitingCmdRspFitness.statusOn; g_runtimeData.RemainingRepetitionsCount = g_wearableSettingsIB.RemainingRepetitionsCount; /* Update home fragment */ g_homeFragment.UpdateRepetitionsCount(g_runtimeData.RemainingRepetitionsCount); g_homeFragment.SetButtons(g_runtimeData.Mode, g_runtimeData.Status); g_waitingCmdRspFitness = null; } }
public void OnHomeCalibrationEnd() { /* Send fitness command with status flag */ ConnectionState connState = g_BLEAdapter.GetConnectionState(); if (ConnectionState.Connected == connState) { for (int i = 0; i < 10; i++) { SendCommand_Fitness(false); } } g_waitingCmdRspFitness = new CmdRsp_fitness() { waitingFlag = true, modeOn = false, statusOn = false }; /* Decide which axis presents maximum variance */ double xVar = MathHelper.Variance(g_ax_varCal); double yVar = MathHelper.Variance(g_ay_varCal); double zVar = MathHelper.Variance(g_az_varCal); if (xVar > yVar && xVar > zVar) { g_runtimeData.ActiveAxis = 0; CalculateThresholds(g_ax_meanCal.ToArray()); } else if (yVar > xVar && yVar > zVar) { g_runtimeData.ActiveAxis = 1; CalculateThresholds(g_ay_meanCal.ToArray()); } else { g_runtimeData.ActiveAxis = 2; CalculateThresholds(g_az_meanCal.ToArray()); } ClearCalibrationData(); }