Serial Wombat Arduino Library
SerialWombatAnalogInput.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 Copyright 2020-2021 Broadwell Consulting Inc.
4 
5 "Serial Wombat" is a registered trademark of Broadwell Consulting Inc. in
6 the United States. See SerialWombat.com for usage guidance.
7 
8 Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14 
15 The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17 
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24  * OTHER DEALINGS IN THE SOFTWARE.
25 */
26 
27 
28 #include <stdint.h>
29 #include "SerialWombat.h"
30 
41 };
42 
81 {
82 public:
87 
88 
89 
90 
91 
101  int16_t begin(uint8_t pin, uint16_t averageSamples = 64, uint16_t filterConstant = 0xFF80, AnalogInputPublicDataOutput output = AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Raw);
102 
109  uint16_t readVoltage_mV();
110 
124  uint16_t readCounts();
125 
132  uint16_t readFiltered_mV();
133 
141  uint16_t readFilteredCounts();
142 
149  uint16_t readAveraged_mV();
150 
162  uint16_t readAveragedCounts();
163 
165  uint16_t updateSupplyVoltage_mV();
166 
168 
176  uint16_t readMaximum_mV(bool resetAfterRead = false);
177 
185  uint16_t readMaximumCounts(bool resetAfterRead = false);
186 
194  uint16_t readMinimum_mV(bool resetAfterRead = false);
195 
203  uint16_t readMinimumCounts(bool resetAfterRead = false);
204 
205 
206 private:
207 
208 };
209 
212 {
213 public:
214 
216 
217  uint8_t pin() { return _pin; }
218  uint8_t swPinModeNumber() { return _pinMode; }
219 };
220 
SerialWombatAnalogInput::readVoltage_mV
uint16_t readVoltage_mV()
Retreive a raw A/D measurement and convert it to mV.
Definition: SerialWombatAnalogInput.cpp:24
SerialWombatAnalogInput_18AB::SerialWombatAnalogInput_18AB
SerialWombatAnalogInput_18AB(SerialWombatChip &serialWombat)
Definition: SerialWombatAnalogInput.cpp:140
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:267
SerialWombatAnalogInput_18AB::swPinModeNumber
uint8_t swPinModeNumber()
Used for ineheritance.
Definition: SerialWombatAnalogInput.h:218
SerialWombatAnalogInput::readFilteredCounts
uint16_t readFilteredCounts()
Retreive a filtered A/D measurement.
Definition: SerialWombatAnalogInput.cpp:50
AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Filtered
@ AnalogInputPublicDataOutput_Filtered
The Filtered A/D reading is displayed as public data (default)
AnalogInputPublicDataOutput
AnalogInputPublicDataOutput
Definition: SerialWombatAnalogInput.h:35
AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Maximum
@ AnalogInputPublicDataOutput_Maximum
The Maximum A/D reading is displayed as public data (default)
SerialWombatAnalogInput::begin
int16_t begin(uint8_t pin, uint16_t averageSamples=64, uint16_t filterConstant=0xFF80, AnalogInputPublicDataOutput output=AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Raw)
Initialize an analog input on a given pin.
Definition: SerialWombatAnalogInput.cpp:10
SerialWombatAnalogInput_18AB
This class extends SerialWombatAnalogInput with SW18AB specific capabilities.
Definition: SerialWombatAnalogInput.h:211
SerialWombatAnalogInput::updateSupplyVoltage_mV
uint16_t updateSupplyVoltage_mV()
Provides a wrapper around the readSupplyVoltage_mV() method for the SerialWombat chip hosting this pi...
Definition: SerialWombatAnalogInput.cpp:82
SerialWombatAnalogInput
A class to make analog measurements with the Serial Wombat.
Definition: SerialWombatAnalogInput.h:80
AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Averaged
@ AnalogInputPublicDataOutput_Averaged
The Averaged A/D reading is displayed as public data (default)
SerialWombatAnalogInput::readAveraged_mV
uint16_t readAveraged_mV()
Retreive an averaged A/D measurement and convert it to mV.
Definition: SerialWombatAnalogInput.cpp:60
SerialWombatAnalogInput_18AB::pin
uint8_t pin()
Used for inheritance.
Definition: SerialWombatAnalogInput.h:217
SerialWombatAnalogInput::readAveragedCounts
uint16_t readAveragedCounts()
Retreive an averaged A/D measurement.
Definition: SerialWombatAnalogInput.cpp:68
SerialWombat.h
SerialWombatAnalogInput::SerialWombatAnalogInput
SerialWombatAnalogInput(SerialWombatChip &SerialWombatChip)
Constructor for the SerialWombatAnalogInput class.
Definition: SerialWombatAnalogInput.cpp:4
SerialWombatAnalogInput::readMinimum_mV
uint16_t readMinimum_mV(bool resetAfterRead=false)
Retreive the minimum single sample A/D value in mV.
Definition: SerialWombatAnalogInput.cpp:132
SerialWombatPin
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombat.h:727
SerialWombatPin::_pinMode
uint8_t _pinMode
Definition: SerialWombat.h:799
SerialWombatAnalogInput::readMinimumCounts
uint16_t readMinimumCounts(bool resetAfterRead=false)
Retreive the maximum single sample A/D value in counts.
Definition: SerialWombatAnalogInput.cpp:106
AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Raw
@ AnalogInputPublicDataOutput_Raw
The raw A/D reading is displayed as public data (default)
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombat.h:789
SerialWombatAnalogInput::readMaximumCounts
uint16_t readMaximumCounts(bool resetAfterRead=false)
Retreive the maximum single sample A/D value in counts.
Definition: SerialWombatAnalogInput.cpp:92
SerialWombatAbstractProcessedInput
SerialWombatAnalogInput, SerialWombatPulseTimer, SerialWombatResistanceInput and others inherit from ...
Definition: SerialWombatAbstractProcessedInput.h:79
SerialWombatPin::_pin
uint8_t _pin
Definition: SerialWombat.h:797
AnalogInputPublicDataOutput::AnalogInputPublicDataOutput_Minimum
@ AnalogInputPublicDataOutput_Minimum
The Minimum A/D reading is displayed as public data (default)
SerialWombatAnalogInput::readFiltered_mV
uint16_t readFiltered_mV()
Retreive a filtered A/D measurement and convert it to mV.
Definition: SerialWombatAnalogInput.cpp:41
SerialWombatAnalogInput::readMaximum_mV
uint16_t readMaximum_mV(bool resetAfterRead=false)
Retreive the maximum single sample A/D value in mV.
Definition: SerialWombatAnalogInput.cpp:123
SerialWombatAnalogInput::readCounts
uint16_t readCounts()
Retreive a raw A/D measurement.
Definition: SerialWombatAnalogInput.cpp:36
SerialWombatAnalogInput::~SerialWombatAnalogInput
~SerialWombatAnalogInput()
Definition: SerialWombatAnalogInput.cpp:87