Serial Wombat Arduino Library
SerialWombatPulseOnChange.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 Copyright 2022 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 
31 class SerialWombat;
32 
83 {
84 public:
88 
89 
98  int16_t begin(uint8_t pin, SerialWombatPinState_t activeMode = SW_HIGH, SerialWombatPinState_t inactiveMode = SW_LOW, uint16_t pulseOnTime = 50, uint16_t pulseOffTime = 50, uint8_t orNotAnd = 1, uint16_t PWMperiod = 0, uint16_t PWMdutyCycle = 0x8000);
99 
106  int16_t setEntryOnChange(uint8_t entryID, uint8_t sourcePin);
107 
114  int16_t setEntryOnIncrease(uint8_t entryID, uint8_t sourcePin);
115 
122  int16_t setEntryOnDecrease(uint8_t entryID, uint8_t sourcePin);
123 
131  int16_t setEntryOnEqualValue(uint8_t entryID, uint8_t sourcePin, uint16_t value);
132 
140  int16_t setEntryOnLessThanValue(uint8_t entryID, uint8_t sourcePin, uint16_t value);
148  int16_t setEntryOnGreaterThanValue(uint8_t entryID, uint8_t sourcePin, uint16_t value);
149 
157  int16_t setEntryOnNotEqualValue(uint8_t entryID, uint8_t sourcePin, uint16_t value);
158 
166  int16_t setEntryOnPinsEqual(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin );
167 
175  int16_t setEntryOnPinsNotEqual(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin );
176 
184  int16_t setEntryOnPinGTPin(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin );
185 
193  int16_t setEntryOnPinLTPin(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin );
194 /*
202  int16_t setEntryOnPinCrossValue(uint8_t entryID, uint8_t sourcePin, uint16_t value);
203 
211  int16_t setEntryOnPinCrossAscending(uint8_t entryID, uint8_t sourcePin, uint16_t value);
212 
220  int16_t setEntryOnPinCrossDescending(uint8_t entryID, uint8_t sourcePin, uint16_t value);
221 
230  int16_t setEntryOnPinWithinRange(uint8_t entryID, uint8_t sourcePin, uint16_t lowValue, uint16_t highValue);
231 
240  int16_t setEntryOnPinOutsideRange(uint8_t entryID, uint8_t sourcePin, uint16_t lowValue, uint16_t highValue);
241  */
242 private:
243  int16_t setEntryParams(uint8_t entryID, uint16_t firstParam, uint16_t secondParam);
244  int16_t setEntryMode(uint8_t entryID, uint8_t pin, uint8_t mode);
245 };
246 
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:267
SerialWombatPulseOnChange::setEntryOnPinsNotEqual
int16_t setEntryOnPinsNotEqual(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin)
Configure a change entry to pulse when a pin or public data is not equal to a second pin or public da...
Definition: SerialWombatPulseOnChange.cpp:96
SerialWombatPulseOnChange::setEntryOnLessThanValue
int16_t setEntryOnLessThanValue(uint8_t entryID, uint8_t sourcePin, uint16_t value)
Configure a change entry to pulse when a pin or public data is below a specified value.
Definition: SerialWombatPulseOnChange.cpp:72
SerialWombatPulseOnChange::setEntryOnNotEqualValue
int16_t setEntryOnNotEqualValue(uint8_t entryID, uint8_t sourcePin, uint16_t value)
Configure a change entry to pulse when a pin or public data is not equal to a specified value.
Definition: SerialWombatPulseOnChange.cpp:84
SerialWombat.h
SW_HIGH
@ SW_HIGH
Definition: SerialWombat.h:43
SerialWombatPulseOnChange::setEntryOnDecrease
int16_t setEntryOnDecrease(uint8_t entryID, uint8_t sourcePin)
Configure a change entry to pulse when a pin or public data Decreases.
Definition: SerialWombatPulseOnChange.cpp:61
SerialWombatPulseOnChange::setEntryOnPinGTPin
int16_t setEntryOnPinGTPin(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin)
Configure a change entry to pulse when a pin or public data is greater than a second pin or public da...
SerialWombatPulseOnChange::setEntryOnEqualValue
int16_t setEntryOnEqualValue(uint8_t entryID, uint8_t sourcePin, uint16_t value)
Configure a change entry to pulse when a pin or public data equals a specified value.
Definition: SerialWombatPulseOnChange.cpp:66
SerialWombatPulseOnChange::SerialWombatPulseOnChange
SerialWombatPulseOnChange(SerialWombatChip &serialWombat)
Class constructor for SerialWombatPulseOnChange.
Definition: SerialWombatPulseOnChange.cpp:3
SerialWombatPin
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombat.h:727
SerialWombatPulseOnChange::setEntryOnChange
int16_t setEntryOnChange(uint8_t entryID, uint8_t sourcePin)
Configure a change entry to pulse when a pin or public data changes.
Definition: SerialWombatPulseOnChange.cpp:51
SerialWombatPulseOnChange::setEntryOnGreaterThanValue
int16_t setEntryOnGreaterThanValue(uint8_t entryID, uint8_t sourcePin, uint16_t value)
Configure a change entry to pulse when a pin or public data is above a specified value.
Definition: SerialWombatPulseOnChange.cpp:78
SerialWombatPinState_t
SerialWombatPinState_t
Definition: SerialWombat.h:40
SerialWombatPulseOnChange::begin
int16_t begin(uint8_t pin, SerialWombatPinState_t activeMode=SW_HIGH, SerialWombatPinState_t inactiveMode=SW_LOW, uint16_t pulseOnTime=50, uint16_t pulseOffTime=50, uint8_t orNotAnd=1, uint16_t PWMperiod=0, uint16_t PWMdutyCycle=0x8000)
Initialization routine for SerialWombatPulseOnChange.
Definition: SerialWombatPulseOnChange.cpp:8
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombat.h:789
SerialWombat
This class name is depricated. Do not use for new development. Use SerialWombatChip instead.
Definition: SerialWombat.h:710
SW_LOW
@ SW_LOW
Definition: SerialWombat.h:42
SerialWombatPulseOnChange
Monitors other pin(s) or public data in the Serial Wombat chip and generates a pin pulse on change.
Definition: SerialWombatPulseOnChange.h:82
SerialWombatPulseOnChange::setEntryOnPinsEqual
int16_t setEntryOnPinsEqual(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin)
Configure a change entry to pulse when a pin or public data equals a second pin or public data's valu...
Definition: SerialWombatPulseOnChange.cpp:90
SerialWombatPulseOnChange::setEntryOnPinLTPin
int16_t setEntryOnPinLTPin(uint8_t entryID, uint8_t sourcePin, uint8_t secondPin)
Configure a change entry to pulse when a pin or public data is less than a second pin or public data'...
SerialWombatPulseOnChange::setEntryOnIncrease
int16_t setEntryOnIncrease(uint8_t entryID, uint8_t sourcePin)
Configure a change entry to pulse when a pin or public data increases.
Definition: SerialWombatPulseOnChange.cpp:56