thermferm/thermferm.h

Thu, 31 Jul 2014 17:44:50 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 31 Jul 2014 17:44:50 +0200
changeset 158
f1b7e2ef90be
parent 157
259a018758f9
child 162
6fc9e3f7962f
permissions
-rw-r--r--

Added device configuration

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
ef4c0032b51f Can list the 1-wire bus
Michiel Broek <mbroek@mbse.eu>
parents: 83
diff changeset
31 #include <dirent.h>
79
eb9dd60aa791 Added uuid library
Michiel Broek <mbroek@mbse.eu>
parents: 78
diff changeset
32 #include <uuid/uuid.h>
74
879bd09e2b96 Reinstalled threads
Michiel Broek <mbroek@mbse.eu>
parents: 73
diff changeset
33 #ifndef HAVE_WIRINGPI_H
879bd09e2b96 Reinstalled threads
Michiel Broek <mbroek@mbse.eu>
parents: 73
diff changeset
34 #include <pthread.h>
879bd09e2b96 Reinstalled threads
Michiel Broek <mbroek@mbse.eu>
parents: 73
diff changeset
35 #endif
73
4a28de5b9b47 Changed include files
Michiel Broek <mbroek@mbse.eu>
parents: 72
diff changeset
36 #include <libxml/xmlmemory.h>
4a28de5b9b47 Changed include files
Michiel Broek <mbroek@mbse.eu>
parents: 72
diff changeset
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
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
47 #endif
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
48
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
49 #define TRUE 1
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
50 #define FALSE 0
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
51
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
52 #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
53
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
54
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
55 /*
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
56 * Fermenter units. These units are connected via the 1-wire bus.
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
57 * Each unit can have:
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
58 * a DS18B20 sensor to measure the air temperature inside the unit.
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
59 * 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
60 * 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
61 * a DS2413 to switch the fan and sense the door.
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
62 */
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
63 typedef struct _units_list {
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
64 struct _units_list *next;
89
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
65 int version; /* Record version */
76
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
66 char *uuid; /* uid code */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
67 char *name; /* friendly name */
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
68 float volume; /* Volume of this unit */
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
69 char *air_address; /* DS18B20 address */
101
1302abe92eb1 Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents: 95
diff changeset
70 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
71 int air_temperature; /* Air temperature in C * 1000 */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
72 char *beer_address; /* DS18B20 address */
101
1302abe92eb1 Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents: 95
diff changeset
73 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
74 int beer_temperature; /* Beer temperature in C * 1000 */
76
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
75 char *io1_address; /* DS2413 address */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
76 char *io2_address; /* DS2413 address */
75
4b976601737d Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents: 74
diff changeset
77 int heater_available; /* Heater available */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
78 int heater_state; /* Heater status */
75
4b976601737d Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents: 74
diff changeset
79 int cooler_available; /* Cooler available */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
80 int cooler_state; /* Cooler status */
75
4b976601737d Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents: 74
diff changeset
81 int fan_available; /* Fan available */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
82 int fan_state; /* Fan status */
76
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
83 int door_state; /* Door and light status */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
84 int mode; /* Unit mode */
76
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
85 float beer_set; /* Beer temperature setting */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
86 float fridge_set; /* Fridge temperature setting */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
87 float temp_set_min; /* Minimum temperature */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
88 float temp_set_max; /* Maximum temperature */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
89 float idle_rangeL; /* Idle temperature low */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
90 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
91 char *profile; /* Active profile uuid */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
92 time_t prof_started; /* Profile start time */
89
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
93 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
94 float prof_target; /* Profile current target temp */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
95 } units_list;
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
96
76
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
97 #define UNITMODE_OFF 0 /* Unit turned off */
d2c7b32f27d6 Can now write the fermenter units configurations
Michiel Broek <mbroek@mbse.eu>
parents: 75
diff changeset
98 #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
99 #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
100 #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
101 #define UNITMODE_PROFILE 4 /* Unit runs in profile mode */
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
102
89
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
103 #define UNITIO1_HEATER 0x01 /* Heater bit */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
104 #define UNITIO1_COOLER 0x02 /* Cooler bit */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
105 #define UNITIO2_FAN 0x01 /* Fan bit */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
106 #define UNITIO2_DOOR 0x02 /* Door status */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
107
91
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
108
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
109
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
110 /*
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
111 * Fermenting steps
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
112 */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
113 typedef struct _prof_step {
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
114 struct _prof_step *next;
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
115 int version; /* Version 1 */
92
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 91
diff changeset
116 int steptime; /* Step time to target in hours */
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 91
diff changeset
117 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
118 float target; /* Target temperature */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
119 } prof_step;
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
120
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
121 /*
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
122 * Fermenting profiles
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
123 */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
124 typedef struct _prof_list {
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
125 struct _prof_list *next;
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
126 int version; /* Version 1 */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
127 char *uuid; /* Profile uuid */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
128 char *name; /* Profile name */
136
264e5ee5abfc Profiles now have a busy state
Michiel Broek <mbroek@mbse.eu>
parents: 132
diff changeset
129 int busy; /* Profile busy == 1, free == 0 */
91
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
130 prof_step *steps; /* Profile steps */
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
131 } profiles_list;
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
132
89
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
133 #define PROFILE_OFF 0 /* Profile not active */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
134 #define PROFILE_PAUSE 1 /* Profile pause */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
135 #define PROFILE_RUN 2 /* Profile is running */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
136 #define PROFILE_DONE 3 /* Profile is finished */
8bab04a663dd Added profile states
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
137
158
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
138 /*
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
139 * External devices like sensors, relays.
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
140 */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
141 typedef struct _dev_list {
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
142 struct _dev_list *next;
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
143 int version; /* Version 1 */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
144 char *uuid; /* UUID of this device */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
145 int type; /* Device type */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
146 int direction; /* Device direction */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
147 int value; /* Device value */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
148 int present; /* Device present */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
149 char *address; /* Device address */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
150 int subdevice; /* Device sub address */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
151 int gpiopin; /* Device GPIO pin or -1 */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
152 char *description; /* Device description */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
153 int inuse; /* In use counter */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
154 char *comment; /* What we think it is */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
155 time_t timestamp; /* Last updated */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
156 } devices_list;
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
157
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
158 #define DEVTYPE_NA 0 /* Unknown device type */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
159 #define DEVTYPE_W1 1 /* 1-Wire bus */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
160 #define DEVTYPE_GPIO 2 /* GPIO I/O device */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
161 #define DEVTYPE_RC433 3 /* 433 MHz device */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
162 #define DEVTYPE_DHT 4 /* DHT type device on GPIO */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
163 #define DEVTYPE_I2C 5 /* I2C bus device */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
164 #define DEVTYPE_SPI 6 /* SPI bus device */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
165
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
166 #define DEVPRESENT_UNDEF 0 /* Precence not testable */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
167 #define DEVPRESENT_NO 1 /* Device is missing */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
168 #define DEVPRESENT_YES 2 /* Device is detected */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
169 #define DEVPRESENT_ERROR 3 /* Device is in error */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
170
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
171 #define DEVDIR_UNDEF 0 /* Undefined */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
172 #define DEVDIR_IN_BIN 1 /* Binary input */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
173 #define DEVDIR_OUT_BIN 2 /* Binary output */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
174 #define DEVDIR_IN_ANALOG 3 /* Temperature input etc. */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
175 #define DEVDIR_OUT_ANALOG 4 /* Analog steering */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
176 #define DEVDIR_OUT_PWM 5 /* PWM outout */
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
177
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
178
51
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
179 typedef struct _w1_therm {
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
180 struct _w1_therm *next;
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
181 char *master; /* Master for this device */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
182 int bus; /* Reserved for ds2482-800 */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
183 char *name; /* Name of this device */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
184 char *alias; /* Friendly name */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
185 int present; /* 1=present, 0=absent */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
186 int lastval; /* Last valid value */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
187 int update; /* Value updated */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
188 } w1_therm;
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
189
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
190 typedef struct _sys_config {
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
191 char *name; /* Configuration name */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
192 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
193 unsigned char tempFormat; /* Temperature format, C or F */
94
38ee038f4cec Fixed possible one character short on LCD. Added environment air temperature sensor
Michiel Broek <mbroek@mbse.eu>
parents: 93
diff changeset
194 char *air_address; /* 1-wire environment sensor */
101
1302abe92eb1 Made temperature sensors working in the units
Michiel Broek <mbroek@mbse.eu>
parents: 95
diff changeset
195 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
196 int air_temperature; /* Air temperature in C * 1000 */
51
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
197 w1_therm *w1therms; /* 1-wire temp sensors */
66
805f1d285acd Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents: 54
diff changeset
198 #ifdef HAVE_WIRINGPI_H
51
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
199 int lcd_cols; /* LCD display columns */
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
200 int lcd_rows; /* LCD display rows */
78
c49ab5179bf3 Added lcd i2c address to xml configuration
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
201 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
202 #endif
71
a09c5cdc4022 Removed rc-switch
Michiel Broek <mbroek@mbse.eu>
parents: 66
diff changeset
203 units_list *units; /* Fermenter units */
91
901ca9858a7a Added fermenting profiles to the configuration
Michiel Broek <mbroek@mbse.eu>
parents: 89
diff changeset
204 profiles_list *profiles; /* Ferment profiles */
158
f1b7e2ef90be Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 157
diff changeset
205 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
206 } sys_config;
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
207
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
208
a03b6dac5398 Removed library, bumped to version 0.0.7
Michiel Broek <mbroek@mbse.eu>
parents: 48
diff changeset
209
66
805f1d285acd Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents: 54
diff changeset
210 #endif

mercurial