Fri, 20 Mar 2015 16:56:07 +0100
Added support for all 1-wire temperature sensors that are in the Linux kernel source.
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | /***************************************************************************** |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | * Copyright (C) 2008-2014 |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | * |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | * Michiel Broek <mbroek at mbse dot eu> |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | * |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | * This file is part of the mbsePi-apps |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | * |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | * This is free software; you can redistribute it and/or modify it |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | * under the terms of the GNU General Public License as published by the |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | * Free Software Foundation; either version 2, or (at your option) any |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | * later version. |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | * |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | * mbsePi-apps is distributed in the hope that it will be useful, but |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
16 | * General Public License for more details. |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
17 | * |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
19 | * along with ThermFerm; see the file COPYING. If not, write to the Free |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
20 | * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
21 | *****************************************************************************/ |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | #include "thermferm.h" |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
24 | #include "simulator.h" |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | #ifdef USE_SIMULATOR |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
27 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
28 | extern int my_shutdown; |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
29 | extern int debug; |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
30 | extern sys_config Config; |
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
31 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
32 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
33 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
34 | #ifdef HAVE_WIRINGPI_H |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | PI_THREAD (my_simulator_loop) |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
36 | #else |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | void *my_simulator_loop(void *threadid) |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | #endif |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | { |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
40 | simulator_list *simulator; |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
41 | time_t now, last = (time_t)0; |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
42 | int seconds = 0; |
265
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
43 | double k_room_air, k_beer_air, sqm_room_air, sqm_beer_air, thick_room_air, thick_beer_air, air_heat_transfer, beer_heat_transfer; |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
44 | double air_change, beer_change, vhc_air = 0.00121, vhc_water = 4.1796; |
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | syslog(LOG_NOTICE, "Thread my_simulator_loop started"); |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | if (debug) |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | fprintf(stdout, "Thread my_simulator_loop started\n"); |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | for (;;) { |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
51 | for (simulator = Config.simulators; simulator; simulator = simulator->next) { |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
52 | if (my_shutdown) |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
53 | break; |
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
55 | now = time(NULL); |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
56 | if (now != last) { |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
57 | last = now; |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
58 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
59 | * Each second |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
60 | */ |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
61 | seconds++; |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
62 | |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
63 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
64 | * First, calculate temperature difference between the room and the air in the |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
65 | * fridge. We use the volume air to roughly calculate the total area between |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
66 | * the in and outside. Calculate the effect and shift the air temperature towards |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
67 | * the room temperature. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
68 | */ |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
69 | sqm_room_air = (cbrtl(simulator->volume_air) * cbrtl(simulator->volume_air) * 6) / 100; /* square meters all fridge sides */ |
264
91c358556ecf
LIST LOG also output lines on state changes
Michiel Broek <mbroek@mbse.eu>
parents:
263
diff
changeset
|
70 | thick_room_air = 0.04; /* 4 cm walls */ |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
71 | k_room_air = 0.03; /* Polystrene */ |
265
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
72 | air_heat_transfer=(k_room_air * sqm_room_air * (simulator->room_temperature - simulator->air_temperature)) / thick_room_air; |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
73 | air_change = air_heat_transfer / (vhc_air * ((simulator->volume_air - simulator->volume_beer) * 1000)); |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
74 | simulator->air_temperature += air_change; |
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
75 | |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
76 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
77 | * If heating, calculate temperature of the heating plate. If heating is off but |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
78 | * the plate is warmer then the air, calculate the cooling down temperature. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
79 | * Finally, calculate the new air and plate temperature. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
80 | */ |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
81 | |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
82 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
83 | * If cooling, calculate temperature of the cooling plate. If cooling is off but |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
84 | * the plate is colder then the air, calculate the warming up temperature. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
85 | * Finsally, calculate the new air and plate temperature. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
86 | */ |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
87 | |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
88 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
89 | * Calculate the extra beer temperatur rise to simulate the heat produced by the |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
90 | * fermentation process. Peak about one day after start and slowly decrease after |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
91 | * that. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
92 | */ |
265
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
93 | sqm_beer_air = (cbrtl(simulator->volume_beer) * cbrtl(simulator->volume_beer) * 6) / 100; /* Simple, the beer is in a cubic box */ |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
94 | thick_beer_air = 0.001; |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
95 | k_beer_air = 0.5; /* HDPE */ |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
96 | beer_heat_transfer=(k_beer_air * sqm_beer_air * (simulator->air_temperature - simulator->beer_temperature)) / thick_beer_air; |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
97 | beer_change = 0; |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
98 | |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
99 | /* |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
100 | * Calculate final temperature of the beer and the air. |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
101 | */ |
265
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
102 | if (debug) |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
103 | fprintf(stdout, "sqm_room_air=%f air=%f air_heat_transfer=%f air_change=%f sqm_beer_air=%f beer=%f beer_heat_transfer=%f\n", |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
104 | sqm_room_air, simulator->air_temperature, air_heat_transfer, air_change, |
63a003914b72
More math for the simulator. Web interface changes for heater in graph.
Michiel Broek <mbroek@mbse.eu>
parents:
264
diff
changeset
|
105 | sqm_beer_air, simulator->beer_temperature, beer_heat_transfer); |
262
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
106 | } |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
107 | usleep(100000); |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
108 | } |
d0014ccec615
Simulation of fridge cold loss to the room added for testing.
Michiel Broek <mbroek@mbse.eu>
parents:
259
diff
changeset
|
109 | usleep(50000); |
259
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
110 | } |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
111 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
112 | syslog(LOG_NOTICE, "Thread my_simulator_loop stopped"); |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
113 | if (debug) |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
114 | fprintf(stdout, "Thread my_simulator_loop stopped\n"); |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
115 | return 0; |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
116 | } |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
117 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
118 | |
b7c967359771
Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
119 | #endif |