Subversion Repositories heizung

Rev

Rev 7 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7 Rev 8
Line 28... Line 28...
28
        int pressure;
28
        int pressure;
29
        int temperature;
29
        int temperature;
30
        time_t tstamp;
30
        time_t tstamp;
31
} mpoint;
31
} mpoint;
32
 
32
 
-
 
33
int HeatStatus;
-
 
34
 
33
float GetTemp ()
35
float GetTemp ()
34
{
36
{
35
int fd;
37
int fd;
36
long anz, offset;
38
long anz, offset;
37
double delta_p;
39
double delta_p;
Line 77... Line 79...
77
         */
79
         */
78
        if (t > (mp.tstamp + 600L))
80
        if (t > (mp.tstamp + 600L))
79
        {
81
        {
80
           SwitchOff ();
82
           SwitchOff ();
81
           syslog(LOG_DAEMON, "Warning: No temperature was meassured in the last 10 minutes!");
83
           syslog(LOG_DAEMON, "Warning: No temperature was meassured in the last 10 minutes!");
82
           close (fd);
-
 
83
           return 9999.0;
84
           return 9999.0;
84
        }
85
        }
85
 
86
 
86
	// Luftdruck
87
	// Luftdruck
87
	delta_p = pow((1.0 - (6.5 * 256.0) / 288000.0), 5.255);
88
	delta_p = pow((1.0 - (6.5 * 256.0) / 288000.0), 5.255);
88
	ActPressure = (float)(mp.pressure / 10.0) / delta_p;
89
	ActPressure = (float)(mp.pressure / 10.0) / delta_p;
89
	// Temperatur
90
	// Temperatur
90
	return ((float)mp.temperature - 10.0) / 10.0;
91
	ActTemperature = ((float)mp.temperature - 10.0) / 10.0;
-
 
92
	return ActTemperature;
91
}
93
}
92
 
94
 
93
void SwitchOn ()
95
void SwitchOn ()
94
{
96
{
95
int set_bits;
97
int set_bits;
96
 
98
 
97
        if (serialDev.switch_fd < 0)
99
        if (serialDev.switch_fd < 0)
98
        {
100
        {
99
           syslog(LOG_DAEMON, "Es war kein File handle geöffnet! (EIN)");
101
           syslog(LOG_DAEMON, "Es war kein File handle geöffnet! (EIN)");
-
 
102
	   HeatStatus = 2;
100
           return;
103
           return;
101
        }
104
        }
102
 
105
 
103
        set_bits = CommandOn;
106
        set_bits = CommandOn;
104
 
107
 
105
        if (ioctl(serialDev.switch_fd, TIOCMSET, &set_bits) == -1)
108
        if (ioctl(serialDev.switch_fd, TIOCMSET, &set_bits) == -1)
-
 
109
	{
106
           syslog(LOG_DAEMON, "Fehler beim Einschalten!");
110
           syslog(LOG_DAEMON, "Fehler beim Einschalten!");
-
 
111
	   HeatStatus = 2;
-
 
112
	   return;
-
 
113
	}
107
 
114
 
108
        syslog(LOG_INFO, "Heizung EIN");
115
        syslog(LOG_INFO, "Heizung EIN (%.1f)", ActTemperature);
-
 
116
	HeatStatus = 1;
109
}
117
}
110
 
118
 
111
void SwitchOff ()
119
void SwitchOff ()
112
{
120
{
113
int set_bits;
121
int set_bits;
114
 
122
 
115
        if (serialDev.switch_fd < 0)
123
        if (serialDev.switch_fd < 0)
116
        {
124
        {
117
           syslog(LOG_DAEMON, "Es war kein File handle geöffnet! (AUS)");
125
           syslog(LOG_DAEMON, "Es war kein File handle geöffnet! (AUS)");
-
 
126
	   HeatStatus = 2;
118
           return;
127
           return;
119
        }
128
        }
120
 
129
 
121
        set_bits = CommandOff;
130
        set_bits = CommandOff;
122
 
131
 
123
        if (ioctl(serialDev.switch_fd, TIOCMSET, &set_bits) == -1)
132
        if (ioctl(serialDev.switch_fd, TIOCMSET, &set_bits) == -1)
-
 
133
	{
124
           syslog(LOG_DAEMON, "Fehler beim Ausschalten!");
134
           syslog(LOG_DAEMON, "Fehler beim Ausschalten!");
-
 
135
	   HeatStatus = 2;
-
 
136
	   return;
-
 
137
	}
125
 
138
 
126
        syslog(LOG_INFO, "Heizung AUS");
139
        syslog(LOG_INFO, "Heizung AUS (%.1f)", ActTemperature);
-
 
140
	HeatStatus = 0;
127
}
141
}