/// <summary> /// Stops sensing /// </summary> /// <param name="theSummit">Summit System</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 or false if unsuccessful</returns> public bool StopSensing(SummitSystem theSummit, bool showErrorMessage) { if (theSummit == null) { return(false); } bool success = true; APIReturnInfo bufferReturnInfo; try { _log.Info("Stop Sensing"); bufferReturnInfo = theSummit.WriteSensingState(SenseStates.None, 0x00); if (!CheckForReturnError(bufferReturnInfo, "Turn off Sensing", showErrorMessage)) { success = false; } } catch (Exception error) { _log.Error(error); success = false; } return(success); }
/// <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); }