Revision 44 logic/trunk/src/logics/conditions.c
conditions.c | ||
---|---|---|
1 | 1 |
#include "conditions.h" |
2 | 2 |
#include <stdio.h> |
3 |
#include <math.h> |
|
3 | 4 |
|
4 | 5 |
int evaluateAdditionalConditions(cond_lst *cl, device *dev) |
5 | 6 |
{ |
... | ... | |
61 | 62 |
// TODO check this one again |
62 | 63 |
float getNewWeightedMeasurement(float oldval, float newval, float alpha) |
63 | 64 |
{ |
64 |
printf("getNewWeightedMeasurement(float oldval, float newval, float alpha)\n"); |
|
65 |
printf("=== buffer %f, device buffer %f, alpha %f\n", oldval, newval, alpha); |
|
66 |
printf("%f\n",oldval*alpha+newval*(1-alpha)); |
|
67 | 65 |
return oldval*alpha+newval*(1-alpha); |
68 | 66 |
} |
67 |
|
|
68 |
int getPowerPercentage(int a, int b, int o, float *val, int func) |
|
69 |
{ |
|
70 |
int pwr; |
|
71 |
printf( "getPowerPercentage(%d, %d, %d, %.2f, %d)\n",a,b,o,*val,func); |
|
72 |
if(func == FUNCTION_STATIC) |
|
73 |
{ |
|
74 |
if(*val>o) // right |
|
75 |
{ |
|
76 |
pwr=100; |
|
77 |
} |
|
78 |
else //left |
|
79 |
{ |
|
80 |
pwr=0; |
|
81 |
} |
|
82 |
} |
|
83 |
else if(func == FUNCTION_LINEAR) |
|
84 |
{ |
|
85 |
if(*val>o) // right |
|
86 |
{ |
|
87 |
pwr=(int)((*val-o)/(b-o)*100); |
|
88 |
} |
|
89 |
else //left |
|
90 |
{ |
|
91 |
pwr=(int)((1-(*val-a)/(o-a))*100); |
|
92 |
} |
|
93 |
} |
|
94 |
else if(func == FUNCTION_LOGARITHMIC) |
|
95 |
{ |
|
96 |
if(*val>o) // right |
|
97 |
{ |
|
98 |
pwr=(int)((*val-o)/(b-o)*100); |
|
99 |
} |
|
100 |
else //left |
|
101 |
{ |
|
102 |
pwr=(int)((1-(*val-a)/(o-a))*100); |
|
103 |
} |
|
104 |
} |
|
105 |
else if(func == FUNCTION_QUADRATIC) |
|
106 |
{ |
|
107 |
if(*val>o) // right |
|
108 |
{ |
|
109 |
pwr=(int)((*val-o)/(b-o)*100); |
|
110 |
} |
|
111 |
else //left |
|
112 |
{ |
|
113 |
pwr=(int)((1-(*val-a)/(o-a))*100); |
|
114 |
} |
|
115 |
} |
|
116 |
else |
|
117 |
{ |
|
118 |
pwr=-1; |
|
119 |
} |
|
120 |
|
|
121 |
if(pwr>100) |
|
122 |
pwr=100; |
|
123 |
|
|
124 |
return pwr; |
|
125 |
} |
|
69 | 126 |
/*TODO morda dodaj preverbo pravilnosti conditionov (kot podatkov v strukturi)*/ |
Also available in: Unified diff