/** * Get the number of active channels. * * This is an internal function to allow the atomic update of both the * number of active channels and the sample rate. * * When the number of channels changes, use the new value. Otherwise, * return the curent value. * * @return Value to write to the active channels field. */ uint32_t getAnalogNumChannelsToActivate(int32_t* status) { if (analogNumChannelsToActivate == 0) return getAnalogNumActiveChannels(status); return analogNumChannelsToActivate; }
/** * Get the current sample rate. * * This assumes one entry in the scan list. * This is a global setting for the Athena and effects all channels. * * @return Sample rate. */ float getAnalogSampleRate(int32_t *status) { uint32_t ticksPerConversion = analogInputSystem->readLoopTiming(status); uint32_t ticksPerSample = ticksPerConversion * getAnalogNumActiveChannels(status); return (float)kTimebase / (float)ticksPerSample; }