Library to add minimum/maximum functions for analog values

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?

UserRevisionLine numberNew 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