Mon, 11 Aug 2014 11:09:23 +0200
Do not use 100% cpu on a system without devices
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
1 | #ifndef _MBSELIB_H |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
2 | #define _MBSELIB_H |
26
9322c619c525
Added coolers program, first draft
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | |
9322c619c525
Added coolers program, first draft
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | |
9322c619c525
Added coolers program, first draft
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | #define TRUE 1 |
9322c619c525
Added coolers program, first draft
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | #define FALSE 0 |
9322c619c525
Added coolers program, first draft
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
8 | #include "../config.h" |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
9 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
10 | #include <stdlib.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
11 | #include <stdio.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
12 | #include <stdint.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
13 | #include <stdarg.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
14 | #include <string.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
15 | #include <ctype.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
16 | #include <sys/types.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
17 | #include <sys/stat.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
18 | #include <sys/time.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
19 | #include <time.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
20 | #include <fcntl.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
21 | #include <syslog.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
22 | #include <unistd.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
23 | #include <errno.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
24 | #include <signal.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
25 | #include <getopt.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
26 | #include <limits.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
27 | #include <sys/socket.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
28 | #include <arpa/inet.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
29 | #include <netdb.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
30 | #include <poll.h> |
84 | 31 | #include <dirent.h> |
79 | 32 | #include <uuid/uuid.h> |
74 | 33 | #ifndef HAVE_WIRINGPI_H |
34 | #include <pthread.h> | |
35 | #endif | |
73 | 36 | #include <libxml/xmlmemory.h> |
37 | #include <libxml/parser.h> | |
75
4b976601737d
Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents:
74
diff
changeset
|
38 | #include <libxml/encoding.h> |
4b976601737d
Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents:
74
diff
changeset
|
39 | #include <libxml/xmlwriter.h> |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
40 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
41 | #ifdef HAVE_WIRINGPI_H |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
42 | /* wiringPi */ |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
43 | #include <wiringPi.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
44 | #include <pcf8574.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
45 | #include <lcd.h> |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
46 | |
215
5ad534c79a22
Do not use 100% cpu on a system without devices
Michiel Broek <mbroek@mbse.eu>
parents:
214
diff
changeset
|
47 | |
214
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
48 | #define MENU_NONE 0 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
49 | #define MENU_TOP_DEFAULT 1 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
50 | #define MENU_TOP_UNITS 2 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
51 | #define MENU_UNITS 21 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
52 | #define MENU_MODE_OFF 211 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
53 | #define MENU_MODE_NONE 212 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
54 | #define MENU_NONE_HEAT 2121 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
55 | #define MENU_NONE_COOL 2122 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
56 | #define MENU_NONE_FAN 2123 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
57 | #define MENU_MODE_BEER 213 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
58 | #define MENU_BEER_TEMP 2131 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
59 | #define MENU_MODE_FRIDGE 214 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
60 | #define MENU_FRIDGE_TEMP 2141 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
61 | #define MENU_MODE_PROFILE 215 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
62 | #define MENU_PROFILE_SELECT 2151 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
63 | #define MENU_PROFILE_START 2152 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
64 | #define MENU_PROFILE_PAUSE 2153 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
65 | #define MENU_PROFILE_ABORT 2154 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
66 | #define MENU_PROFILE_RESUME 2155 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
67 | #define MENU_PROFILE_GOOFF 2156 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
68 | #define MENU_TOP_SYS 3 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
69 | #define MENU_SYS_HALT 31 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
70 | #define MENU_SYS_REBOOT 32 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
71 | #define MENU_SYS_MASH 33 |
37d1eb0e1d66
Added a bunch of panel menus
Michiel Broek <mbroek@mbse.eu>
parents:
209
diff
changeset
|
72 | #define MENU_SYS_THERMS 34 |
205 | 73 | |
215
5ad534c79a22
Do not use 100% cpu on a system without devices
Michiel Broek <mbroek@mbse.eu>
parents:
214
diff
changeset
|
74 | #endif |
205 | 75 | |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
76 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
77 | #define TRUE 1 |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
78 | #define FALSE 0 |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
79 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
80 | #define MBSE_SS(x) (x)?(x):"(null)" |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
81 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
82 | |
71 | 83 | /* |
84 | * Fermenter units. These units are connected via the 1-wire bus. | |
85 | * Each unit can have: | |
86 | * a DS18B20 sensor to measure the air temperature inside the unit. | |
87 | * a DS18B20 sensor to measure the beer temperature. | |
76
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
88 | * a DS2413 to turn the cooler and heater on or off. |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
89 | * a DS2413 to switch the fan and sense the door. |
71 | 90 | */ |
91 | typedef struct _units_list { | |
92 | struct _units_list *next; | |
89 | 93 | int version; /* Record version */ |
76
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
94 | char *uuid; /* uid code */ |
71 | 95 | char *name; /* friendly name */ |
96 | float volume; /* Volume of this unit */ | |
97 | char *air_address; /* DS18B20 address */ | |
101
1302abe92eb1
Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents:
95
diff
changeset
|
98 | int air_state; /* 0=ok, 1=missing, 2=error */ |
1302abe92eb1
Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents:
95
diff
changeset
|
99 | int air_temperature; /* Air temperature in C * 1000 */ |
71 | 100 | char *beer_address; /* DS18B20 address */ |
101
1302abe92eb1
Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents:
95
diff
changeset
|
101 | int beer_state; /* 0=ok, 1=missing, 2=error */ |
1302abe92eb1
Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents:
95
diff
changeset
|
102 | int beer_temperature; /* Beer temperature in C * 1000 */ |
175
b73490398368
Units editing is more or less complete. Changed structures for heating, cooling, fan and door. Updated the web interface to confuigure all these things.
Michiel Broek <mbroek@mbse.eu>
parents:
165
diff
changeset
|
103 | char *heater_address; /* Heater relay or PWM */ |
71 | 104 | int heater_state; /* Heater status */ |
175
b73490398368
Units editing is more or less complete. Changed structures for heating, cooling, fan and door. Updated the web interface to confuigure all these things.
Michiel Broek <mbroek@mbse.eu>
parents:
165
diff
changeset
|
105 | char *cooler_address; /* Cooler relay or PWM */ |
71 | 106 | int cooler_state; /* Cooler status */ |
175
b73490398368
Units editing is more or less complete. Changed structures for heating, cooling, fan and door. Updated the web interface to confuigure all these things.
Michiel Broek <mbroek@mbse.eu>
parents:
165
diff
changeset
|
107 | char *fan_address; /* Fan relay or PWM */ |
71 | 108 | int fan_state; /* Fan status */ |
175
b73490398368
Units editing is more or less complete. Changed structures for heating, cooling, fan and door. Updated the web interface to confuigure all these things.
Michiel Broek <mbroek@mbse.eu>
parents:
165
diff
changeset
|
109 | char *door_address; /* Door input address */ |
76
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
110 | int door_state; /* Door and light status */ |
71 | 111 | int mode; /* Unit mode */ |
76
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
112 | float beer_set; /* Beer temperature setting */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
113 | float fridge_set; /* Fridge temperature setting */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
114 | float temp_set_min; /* Minimum temperature */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
115 | float temp_set_max; /* Maximum temperature */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
116 | float idle_rangeL; /* Idle temperature low */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
117 | float idle_rangeH; /* Idle range high */ |
132
8bd209d1c020
Added some profile commands to the server. Profile names can be changed from the web interface. Removed obsolete commands.
Michiel Broek <mbroek@mbse.eu>
parents:
106
diff
changeset
|
118 | char *profile; /* Active profile uuid */ |
71 | 119 | time_t prof_started; /* Profile start time */ |
89 | 120 | int prof_state; /* Profile OFF|PAUSE|RUN|DONE */ |
157
259a018758f9
Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents:
136
diff
changeset
|
121 | float prof_target; /* Profile current target temp */ |
194
9eaaba49450f
Added some ideas about profiles.
Michiel Broek <mbroek@mbse.eu>
parents:
191
diff
changeset
|
122 | time_t prof_paused; /* Profile total pause time */ |
185 | 123 | float PID_I_err; /* PID Intergal error */ |
176
8c7d87a2c094
Initial code for a simple PID controller.
Michiel Broek <mbroek@mbse.eu>
parents:
175
diff
changeset
|
124 | float PID_err_old; /* PID old error value */ |
71 | 125 | } units_list; |
126 | ||
76
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
127 | #define UNITMODE_OFF 0 /* Unit turned off */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
128 | #define UNITMODE_NONE 1 /* Unit on but does nothing */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
129 | #define UNITMODE_FRIDGE 2 /* Unit acts as a fridge */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
130 | #define UNITMODE_BEER 3 /* Unit acts as beer cooler */ |
d2c7b32f27d6
Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents:
75
diff
changeset
|
131 | #define UNITMODE_PROFILE 4 /* Unit runs in profile mode */ |
71 | 132 | |
91
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
133 | |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
134 | /* |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
135 | * Fermenting steps |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
136 | */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
137 | typedef struct _prof_step { |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
138 | struct _prof_step *next; |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
139 | int version; /* Version 1 */ |
92 | 140 | int steptime; /* Step time to target in hours */ |
141 | int resttime; /* Rest time on target in hours */ | |
91
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
142 | float target; /* Target temperature */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
143 | } prof_step; |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
144 | |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
145 | /* |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
146 | * Fermenting profiles |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
147 | */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
148 | typedef struct _prof_list { |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
149 | struct _prof_list *next; |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
150 | int version; /* Version 1 */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
151 | char *uuid; /* Profile uuid */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
152 | char *name; /* Profile name */ |
136
264e5ee5abfc
Profiles now have a busy state
Michiel Broek <mbroek@mbse.eu>
parents:
132
diff
changeset
|
153 | int busy; /* Profile busy == 1, free == 0 */ |
191
c74bbc24a1c8
Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents:
185
diff
changeset
|
154 | float inittemp; /* Temp target before start */ |
91
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
155 | prof_step *steps; /* Profile steps */ |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
156 | } profiles_list; |
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
157 | |
89 | 158 | #define PROFILE_OFF 0 /* Profile not active */ |
159 | #define PROFILE_PAUSE 1 /* Profile pause */ | |
160 | #define PROFILE_RUN 2 /* Profile is running */ | |
161 | #define PROFILE_DONE 3 /* Profile is finished */ | |
162 | ||
158 | 163 | /* |
164 | * External devices like sensors, relays. | |
165 | */ | |
166 | typedef struct _dev_list { | |
167 | struct _dev_list *next; | |
168 | int version; /* Version 1 */ | |
169 | char *uuid; /* UUID of this device */ | |
170 | int type; /* Device type */ | |
171 | int direction; /* Device direction */ | |
172 | int value; /* Device value */ | |
209
c5b1dfd83e81
Added offset value for sensor that need it
Michiel Broek <mbroek@mbse.eu>
parents:
206
diff
changeset
|
173 | int offset; /* Device offset value */ |
158 | 174 | int present; /* Device present */ |
175 | char *address; /* Device address */ | |
176 | int subdevice; /* Device sub address */ | |
177 | int gpiopin; /* Device GPIO pin or -1 */ | |
178 | char *description; /* Device description */ | |
179 | int inuse; /* In use counter */ | |
180 | char *comment; /* What we think it is */ | |
181 | time_t timestamp; /* Last updated */ | |
182 | } devices_list; | |
183 | ||
184 | #define DEVTYPE_NA 0 /* Unknown device type */ | |
185 | #define DEVTYPE_W1 1 /* 1-Wire bus */ | |
186 | #define DEVTYPE_GPIO 2 /* GPIO I/O device */ | |
187 | #define DEVTYPE_RC433 3 /* 433 MHz device */ | |
188 | #define DEVTYPE_DHT 4 /* DHT type device on GPIO */ | |
189 | #define DEVTYPE_I2C 5 /* I2C bus device */ | |
190 | #define DEVTYPE_SPI 6 /* SPI bus device */ | |
191 | ||
192 | #define DEVPRESENT_UNDEF 0 /* Precence not testable */ | |
193 | #define DEVPRESENT_NO 1 /* Device is missing */ | |
194 | #define DEVPRESENT_YES 2 /* Device is detected */ | |
195 | #define DEVPRESENT_ERROR 3 /* Device is in error */ | |
196 | ||
197 | #define DEVDIR_UNDEF 0 /* Undefined */ | |
198 | #define DEVDIR_IN_BIN 1 /* Binary input */ | |
199 | #define DEVDIR_OUT_BIN 2 /* Binary output */ | |
200 | #define DEVDIR_IN_ANALOG 3 /* Temperature input etc. */ | |
201 | #define DEVDIR_OUT_ANALOG 4 /* Analog steering */ | |
202 | #define DEVDIR_OUT_PWM 5 /* PWM outout */ | |
162
6fc9e3f7962f
Added Raspberry GPIO devices
Michiel Broek <mbroek@mbse.eu>
parents:
158
diff
changeset
|
203 | #define DEVDIR_INTERN 6 /* Internal function */ |
71 | 204 | |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
205 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
206 | typedef struct _sys_config { |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
207 | char *name; /* Configuration name */ |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
208 | int my_port; /* my client/server port */ |
77
143077e54255
Added old configuration to write xml config
Michiel Broek <mbroek@mbse.eu>
parents:
76
diff
changeset
|
209 | unsigned char tempFormat; /* Temperature format, C or F */ |
206
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
210 | char *temp_address; /* Environment temperature */ |
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
211 | int temp_state; /* 0=ok, 1=missing, 2=error */ |
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
212 | int temp_value; /* Air temperature in C * 1000 */ |
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
213 | char *hum_address; /* Environment huminity */ |
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
214 | int hum_state; /* 0=ok, 1=missing, 2=error */ |
78fb6f99e473
Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents:
205
diff
changeset
|
215 | int hum_value; /* Huminity in % * 1000 */ |
66
805f1d285acd
Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents:
54
diff
changeset
|
216 | #ifdef HAVE_WIRINGPI_H |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
217 | int lcd_cols; /* LCD display columns */ |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
218 | int lcd_rows; /* LCD display rows */ |
78
c49ab5179bf3
Added lcd i2c address to xml configuration
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
219 | int lcd_address; /* LCD display i2c address */ |
66
805f1d285acd
Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents:
54
diff
changeset
|
220 | #endif |
71 | 221 | units_list *units; /* Fermenter units */ |
91
901ca9858a7a
Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents:
89
diff
changeset
|
222 | profiles_list *profiles; /* Ferment profiles */ |
158 | 223 | devices_list *devices; /* Sensors and switches */ |
51
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
224 | } sys_config; |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
225 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
226 | |
a03b6dac5398
Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
227 | |
66
805f1d285acd
Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents:
54
diff
changeset
|
228 | #endif |