Revision 44 logic/trunk/src/logics/conditions.c

View differences:

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