Library to add minimum/maximum functions for analog values
analogMinMax.cpp@1:4c3825c62e96, 2019-10-07 (annotated)
- Committer:
- masterkookus
- Date:
- Mon Oct 07 12:44:34 2019 +0000
- Revision:
- 1:4c3825c62e96
- Parent:
- 0:cdaabb616422
Added percent or value option
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masterkookus | 0:cdaabb616422 | 1 | #include "analogMinMax.h" |
masterkookus | 0:cdaabb616422 | 2 | |
masterkookus | 1:4c3825c62e96 | 3 | analogMinMax::analogMinMax(float nominalVal, bool useMinLimit, bool minIsPercent, float minSetVal, bool useMaxLimit, bool maxIsPercent, float maxSetVal) |
masterkookus | 0:cdaabb616422 | 4 | { |
masterkookus | 0:cdaabb616422 | 5 | nomVal = nominalVal; |
masterkookus | 0:cdaabb616422 | 6 | maxLim=useMinLimit; |
masterkookus | 0:cdaabb616422 | 7 | minLim=useMaxLimit; |
masterkookus | 1:4c3825c62e96 | 8 | if (minIsPercent) |
masterkookus | 1:4c3825c62e96 | 9 | { |
masterkookus | 1:4c3825c62e96 | 10 | minLimVal = nominalVal*minSetVal; |
masterkookus | 1:4c3825c62e96 | 11 | } |
masterkookus | 1:4c3825c62e96 | 12 | else |
masterkookus | 1:4c3825c62e96 | 13 | { |
masterkookus | 1:4c3825c62e96 | 14 | minLimVal = minSetVal; |
masterkookus | 1:4c3825c62e96 | 15 | } |
masterkookus | 1:4c3825c62e96 | 16 | if (maxIsPercent) |
masterkookus | 1:4c3825c62e96 | 17 | { |
masterkookus | 1:4c3825c62e96 | 18 | maxLimVal = nominalVal*maxSetVal; |
masterkookus | 1:4c3825c62e96 | 19 | } |
masterkookus | 1:4c3825c62e96 | 20 | else |
masterkookus | 1:4c3825c62e96 | 21 | { |
masterkookus | 1:4c3825c62e96 | 22 | maxLimVal = maxSetVal; |
masterkookus | 1:4c3825c62e96 | 23 | } |
masterkookus | 0:cdaabb616422 | 24 | } |
masterkookus | 0:cdaabb616422 | 25 | |
masterkookus | 0:cdaabb616422 | 26 | void analogMinMax::putVal(float newval) |
masterkookus | 0:cdaabb616422 | 27 | { |
masterkookus | 0:cdaabb616422 | 28 | if (maxLim) |
masterkookus | 0:cdaabb616422 | 29 | { |
masterkookus | 0:cdaabb616422 | 30 | if (newval>maxLimVal) |
masterkookus | 0:cdaabb616422 | 31 | { |
masterkookus | 0:cdaabb616422 | 32 | return; |
masterkookus | 0:cdaabb616422 | 33 | } |
masterkookus | 0:cdaabb616422 | 34 | } |
masterkookus | 0:cdaabb616422 | 35 | if (minLim) |
masterkookus | 0:cdaabb616422 | 36 | { |
masterkookus | 0:cdaabb616422 | 37 | if (newval<minLimVal) |
masterkookus | 0:cdaabb616422 | 38 | { |
masterkookus | 0:cdaabb616422 | 39 | return; |
masterkookus | 0:cdaabb616422 | 40 | } |
masterkookus | 0:cdaabb616422 | 41 | } |
masterkookus | 0:cdaabb616422 | 42 | if (maxSet==false) |
masterkookus | 0:cdaabb616422 | 43 | { |
masterkookus | 0:cdaabb616422 | 44 | maxVal=newval; |
masterkookus | 0:cdaabb616422 | 45 | maxSet=true; |
masterkookus | 0:cdaabb616422 | 46 | } |
masterkookus | 0:cdaabb616422 | 47 | else |
masterkookus | 0:cdaabb616422 | 48 | { |
masterkookus | 0:cdaabb616422 | 49 | if (newval>maxVal) |
masterkookus | 0:cdaabb616422 | 50 | { |
masterkookus | 0:cdaabb616422 | 51 | maxVal=newval; |
masterkookus | 0:cdaabb616422 | 52 | } |
masterkookus | 0:cdaabb616422 | 53 | } |
masterkookus | 0:cdaabb616422 | 54 | if (minSet==false) |
masterkookus | 0:cdaabb616422 | 55 | { |
masterkookus | 0:cdaabb616422 | 56 | minVal=newval; |
masterkookus | 0:cdaabb616422 | 57 | minSet=true; |
masterkookus | 0:cdaabb616422 | 58 | } |
masterkookus | 0:cdaabb616422 | 59 | else |
masterkookus | 0:cdaabb616422 | 60 | { |
masterkookus | 0:cdaabb616422 | 61 | if (newval<minVal) |
masterkookus | 0:cdaabb616422 | 62 | { |
masterkookus | 0:cdaabb616422 | 63 | minVal=newval; |
masterkookus | 0:cdaabb616422 | 64 | } |
masterkookus | 0:cdaabb616422 | 65 | } |
masterkookus | 0:cdaabb616422 | 66 | } |
masterkookus | 0:cdaabb616422 | 67 | |
masterkookus | 0:cdaabb616422 | 68 | float analogMinMax::getMin(void) |
masterkookus | 0:cdaabb616422 | 69 | { |
masterkookus | 0:cdaabb616422 | 70 | return minVal; |
masterkookus | 0:cdaabb616422 | 71 | } |
masterkookus | 0:cdaabb616422 | 72 | |
masterkookus | 0:cdaabb616422 | 73 | float analogMinMax::getMax(void) |
masterkookus | 0:cdaabb616422 | 74 | { |
masterkookus | 0:cdaabb616422 | 75 | return maxVal; |
masterkookus | 0:cdaabb616422 | 76 | } |
masterkookus | 0:cdaabb616422 | 77 | |
masterkookus | 0:cdaabb616422 | 78 | void analogMinMax::resetNum(void) |
masterkookus | 0:cdaabb616422 | 79 | { |
masterkookus | 0:cdaabb616422 | 80 | maxVal=0; |
masterkookus | 0:cdaabb616422 | 81 | minVal=0; |
masterkookus | 0:cdaabb616422 | 82 | minSet=false; |
masterkookus | 0:cdaabb616422 | 83 | maxSet=false; |
masterkookus | 0:cdaabb616422 | 84 | } |
masterkookus | 0:cdaabb616422 | 85 |