/// <summary> /// Checks if adaptive is running /// </summary> /// <param name="localSummit">Summit system</param> /// <returns>true if adaptive is running, false if not or errors</returns> private bool CheckIsAdaptiveRunning(SummitSystem localSummit) { SensingState state; int counter = 5; while (counter > 0) { try { localSummit.ReadSensingState(out state); if (state == null) { counter--; } else if (state.State.ToString().Contains("DetectionLd0") || state.State.ToString().Contains("DetectionLd1")) { return(true); } else { return(false); } } catch (Exception error) { _log.Error(error); } } if (counter == 0) { _log.Warn("Could not stop sensing before configure sensing. Returning false"); return(false); } return(false); }
/// <summary> /// Starts sensing and streaming. Skips starting sensing if Adaptive running. /// </summary> /// <param name="theSummit">Summit System</param> /// <param name="senseConfig">Sense Model</param> /// <param name="showErrorMessage">True if you want a popup message on errors or false if show no error popup</param> /// <returns>True if success and false if unsuccessful</returns> public bool StartSensingAndStreaming(SummitSystem theSummit, SenseModel senseConfig, bool showErrorMessage) { APIReturnInfo bufferReturnInfo; try { _log.Info("Start Sensing and Streaming"); //This checks to see if sensing is already enabled. //If it is, then skip write sensing state and just start streaming SensingState state; theSummit.ReadSensingState(out state); if (!state.State.ToString().Contains("DetectionLd0") && !state.State.ToString().Contains("DetectionLd1")) { _log.Info("Detection is off. Turn sensing on with LD0/LD1 off"); // Start sensing //LDO is false because if it is in adaptive then it will bypass this. If not in adaptive, don't need it. bufferReturnInfo = theSummit.WriteSensingState(ConfigConversions.TDSenseStatesConvert( senseConfig.SenseOptions.TimeDomain, senseConfig.SenseOptions.FFT, senseConfig.SenseOptions.Power, false, false, senseConfig.SenseOptions.AdaptiveState, senseConfig.SenseOptions.LoopRecording, senseConfig.SenseOptions.Unused), ConfigConversions.FFTChannelConvert(senseConfig)); if (!CheckForReturnError(bufferReturnInfo, "Write Sensing State", showErrorMessage)) { return(false); } } else { _log.Warn("Detection is on. SKIP SENSING AND START STREAMING!"); } // Start streaming bufferReturnInfo = theSummit.WriteSensingEnableStreams( senseConfig.StreamEnables.TimeDomain, senseConfig.StreamEnables.FFT, senseConfig.StreamEnables.Power, senseConfig.StreamEnables.AdaptiveTherapy, senseConfig.StreamEnables.AdaptiveState, senseConfig.StreamEnables.Accelerometry, senseConfig.StreamEnables.TimeStamp, senseConfig.StreamEnables.EventMarker); if (!CheckForReturnError(bufferReturnInfo, "Stream Enables", showErrorMessage)) { return(false); } } catch (Exception error) { _log.Error(error); return(false); } return(true); }