thermferm/server.c

Sun, 05 May 2024 17:24:54 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 05 May 2024 17:24:54 +0200
changeset 730
6eba006ed8f5
parent 727
78744b7e6021
permissions
-rw-r--r--

Much faster shutdown of the websocket service.

42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*****************************************************************************
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
2 * Copyright (C) 2008-2024
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * Michiel Broek <mbroek at mbse dot eu>
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * This file is part of the mbsePi-apps
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 *
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * This is free software; you can redistribute it and/or modify it
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * under the terms of the GNU General Public License as published by the
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * Free Software Foundation; either version 2, or (at your option) any
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * later version.
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 *
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * mbsePi-apps is distributed in the hope that it will be useful, but
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * General Public License for more details.
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 *
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
213
2317b8d644fa Code cleanup, streamlined error messages.
Michiel Broek <mbroek@mbse.eu>
parents: 209
diff changeset
19 * along with ThermFerm; see the file COPYING. If not, write to the Free
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 *****************************************************************************/
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
106
1bd9a16f5061 Added .h files
Michiel Broek <mbroek@mbse.eu>
parents: 101
diff changeset
23 #include "rdconfig.h"
46
000399c64d3f More client/server communications
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
24 #include "thermferm.h"
652
16d3d4b58b5b Moved all delay functions into a new general file.
Michiel Broek <mbroek@mbse.eu>
parents: 646
diff changeset
25 #include "delay.h"
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
26 #include "one-wire.h"
184
db997a04fde3 Fixed switching problems
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
27 #include "devices.h"
106
1bd9a16f5061 Added .h files
Michiel Broek <mbroek@mbse.eu>
parents: 101
diff changeset
28 #include "server.h"
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
29 #include "simulator.h"
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
30 #include "lcd-buffer.h"
106
1bd9a16f5061 Added .h files
Michiel Broek <mbroek@mbse.eu>
parents: 101
diff changeset
31 #include "xutil.h"
499
602d9968960f Created mqtt sourcefiles. Use flags to trigger publish messages. The main source does not know and does not care if MQTT messages will be sent. Version 0.5.5
Michiel Broek <mbroek@mbse.eu>
parents: 493
diff changeset
32 #include "mqtt.h"
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33
58
e8e7b46b705b Fixed compilation without wiringpi
Michiel Broek <mbroek@mbse.eu>
parents: 54
diff changeset
34
75
4b976601737d Writes a basic xml configuration next to the plain ascii config file
Michiel Broek <mbroek@mbse.eu>
parents: 74
diff changeset
35 extern int debug;
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
36 extern int run_pause;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
37 extern int run_hold;
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
38 extern sys_config Config;
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
39 extern w1_list *w1_devices;
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
40 extern const char UNITMODE[5][8];
566
776a605befa5 Added Carbonation stage.
Michiel Broek <mbroek@mbse.eu>
parents: 564
diff changeset
41 extern const char UNITSTAGE[4][12];
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
42 extern const char DEVTYPE[8][6];
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
43 extern const char DEVPRESENT[4][6];
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
44 extern const char DEVDIR[7][11];
217
2922d439ff63 Added profile state ABORT
Michiel Broek <mbroek@mbse.eu>
parents: 213
diff changeset
45 extern const char PROFSTATE[5][6];
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
46 extern pthread_mutex_t mutexes[5];
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
47
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
49 int my_server_state = 0; /* Thread running state */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
50 int my_server_shutdown = 0; /* Thread shutdown */
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
51 int ls; /* listen socket */
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
53 struct sockaddr_in myaddr_in; /* for local socket address */
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
54 struct sockaddr_in peeraddr_in; /* for peer socket address */
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
55
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
56 struct hostent *hp;
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
57
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
58 #define SS_BUFSIZE 4096
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
59 #define SS_TIMEOUT 300
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60
389
584d40bb4b09 Graph lines logging can handle longer logfiles and has a safety limit.
Michiel Broek <mbroek@mbse.eu>
parents: 381
diff changeset
61 #define MAX_INTERVALS 10
584d40bb4b09 Graph lines logging can handle longer logfiles and has a safety limit.
Michiel Broek <mbroek@mbse.eu>
parents: 381
diff changeset
62 const int GRAPH_INTERVAL[MAX_INTERVALS] = { 0, 1, 5, 15, 30, 60, 120, 240, 480, 960 };
584d40bb4b09 Graph lines logging can handle longer logfiles and has a safety limit.
Michiel Broek <mbroek@mbse.eu>
parents: 381
diff changeset
63 const int GRAPH_DATALINES[MAX_INTERVALS] = { 0, 800, 3200, 12000, 24000, 48000, 96000, 192000, 384000, 768000 };
329
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
64 const char MONTH[12][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
65
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
66
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
67 typedef struct _ls_list {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
68 struct _ls_list *next; /* Next record pointer */
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
69 char d_name[256]; /* File name */
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
70 mode_t mode; /* File mode */
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
71 off_t size; /* File size */
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
72 time_t mtime; /* File modification time */
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
73 } ls_list;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
74
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
75
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
76
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
77 void tidy_lslist(ls_list **);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
78 void fill_list(ls_list **, char *, mode_t, off_t, time_t);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
79 int comp(ls_list **,ls_list **);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
80 void sort_list(ls_list **);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
81
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
82
46
000399c64d3f More client/server communications
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
83
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
84 /*
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
85 * Send message to client
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
86 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
87 int srv_send(int s, const char *format, ...)
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
88 {
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
89 char out[SS_BUFSIZE];
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
90 va_list va_ptr;
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
91
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
92 if (s == -1)
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
93 return -1;
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
95 va_start(va_ptr, format);
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
96 vsnprintf(out, SS_BUFSIZE-1, format, va_ptr);
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
97 va_end(va_ptr);
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
98
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
99 // if (debug) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
100 // syslog(LOG_NOTICE, "send: \"%s\"", out);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
101 // }
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
102
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
103 if (send(s, out, strlen(out), 0) != strlen(out)) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
104 syslog(LOG_NOTICE, "srv_send failed");
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
105 return -1;
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
106 }
80
81bf78a7618e Switched to xml configuration
Michiel Broek <mbroek@mbse.eu>
parents: 79
diff changeset
107
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
108 if (send(s, (char *)"\r\n", 2, 0) != 2) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
109 syslog(LOG_NOTICE, "srv_send failed");
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
110 return -1;
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
111 }
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
112
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
113 return 0;
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
114 }
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
115
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
116
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117
88
12259362595b Added SET commands
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
118 /*
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
119 * Send unlimited size message
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
120 */
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
121 int large_send(int s, char *out)
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
122 {
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
123 if (s == -1)
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
124 return -1;
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
125
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
126 if (send(s, out, strlen(out), 0) != strlen(out)) {
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
127 syslog(LOG_NOTICE, "large_send failed");
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
128 return -1;
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
129 }
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
130
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
131 if (send(s, (char *)"\r\n", 2, 0) != 2) {
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
132 syslog(LOG_NOTICE, "large_send failed");
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
133 return -1;
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
134 }
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
135
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
136 return 0;
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
137 }
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
138
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
139
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
140
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
141 /*
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
142 * Argument is a buffer of size SS_BUFSIZE.
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
143 * Return -1 if error, else the number of received
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
144 * character. \n is line end, ignore \r.
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
145 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
146 int srv_recv(int s, char *buffer)
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
147 {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
148 int bytesloaded = 0;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
149 ssize_t ret;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
150 unsigned char buf;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
151 socklen_t fromlen;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
152
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
153 memset(buffer, 0, SS_BUFSIZE);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
154
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
155 while(1) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
156 /*
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
157 * read a single byte
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
158 */
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
159 fromlen = sizeof(peeraddr_in);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
160 ret = recvfrom(s, &buf, 1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
368
ac27038f4c70 Fix for server crash
Michiel Broek <mbroek@mbse.eu>
parents: 364
diff changeset
161 if (ret < 0) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
162 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
163 return -1; /* error */
368
ac27038f4c70 Fix for server crash
Michiel Broek <mbroek@mbse.eu>
parents: 364
diff changeset
164 } else if (ret == 0) {
ac27038f4c70 Fix for server crash
Michiel Broek <mbroek@mbse.eu>
parents: 364
diff changeset
165 return -1; /* no data */
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
166 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
167
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
168 if (buf == '\n')
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
169 break;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
170
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
171 if (buf != '\r') {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
172 buffer[bytesloaded] = buf;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
173 bytesloaded++;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
174 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
175 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
176
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
177 // if (debug) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
178 // syslog(LOG_NOTICE, "recv: %d `%s'", bytesloaded, buffer);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
179 // }
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
180 return bytesloaded;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
181 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
182
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
183
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
184
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
185 /*
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
186 * Update the device inuse counter.
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
187 */
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
188 void device_count(int plus, char *uuid)
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
189 {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
190 devices_list *device;
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
191
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
192 for (device = Config.devices; device; device = device->next) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
193 if (strcmp(device->uuid, uuid) == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
194 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
195 if (plus == TRUE) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
196 device->inuse++;
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
197 } else {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
198 if (device->inuse)
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
199 device->inuse--;
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
200 }
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
201 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
202 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
203 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
204 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
205
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
206
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
207
329
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
208 void tidy_lslist(ls_list **lap)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
209 {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
210 ls_list *tmp, *old;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
211
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
212 for (tmp = *lap; tmp; tmp = old) {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
213 old = tmp->next;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
214 free(tmp);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
215 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
216 *lap = NULL;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
217 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
218
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
219
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
220
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
221 void fill_list(ls_list **lap, char *name, mode_t mode, off_t size, time_t mtime)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
222 {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
223 ls_list **tmp;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
224
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
225 for (tmp = lap; *tmp; tmp = &((*tmp)->next));
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
226
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
227 *tmp = (ls_list *)malloc(sizeof(ls_list));
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
228 (*tmp)->next = NULL;
599
b44eb07cab48 Fix one byte too large buffer copy
Michiel Broek <mbroek@mbse.eu>
parents: 594
diff changeset
229 strncpy((*tmp)->d_name, name, 255);
329
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
230 (*tmp)->mode = mode;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
231 (*tmp)->size = size;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
232 (*tmp)->mtime = mtime;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
233 tmp = &((*tmp)->next);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
234 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
235
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
236
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
237
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
238 void sort_list(ls_list **lap)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
239 {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
240 ls_list *ta, **vector;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
241 size_t n = 0, i;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
242
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
243 if (*lap == NULL)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
244 return;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
245
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
246 for (ta = *lap; ta; ta = ta->next)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
247 n++;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
248 vector = (ls_list **)malloc(n * sizeof(ls_list *));
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
249 i = 0;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
250
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
251 for (ta = *lap; ta; ta = ta->next) {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
252 vector[i++] = ta;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
253 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
254 qsort(vector, n, sizeof(ls_list *), (int(*)(const void*, const void*))comp);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
255
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
256 (*lap) = vector[0];
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
257 i = 1;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
258
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
259 for (ta = *lap; ta; ta = ta->next) {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
260 if (i < n)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
261 ta->next = vector[i++];
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
262 else
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
263 ta->next = NULL;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
264 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
265
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
266 free(vector);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
267 return;
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
268 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
269
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
270
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
271
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
272 int comp(ls_list **lsp1, ls_list **lsp2)
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
273 {
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
274 return strcmp((*lsp1)->d_name, (*lsp2)->d_name);
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
275 }
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
276
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
277
517e1719006a Added ARCHIVE commands
Michiel Broek <mbroek@mbse.eu>
parents: 325
diff changeset
278
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
279 int delete_Device(char *uuid)
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
280 {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
281 devices_list *current = Config.devices;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
282 devices_list *previous = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
283
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
284 while (current) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
285 if (strcmp(current->uuid, uuid) == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
286 if (previous == NULL) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
287 Config.devices = current->next;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
288 free(current->uuid);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
289 current->uuid = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
290 free(current->address);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
291 current->address = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
292 free(current->description);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
293 current->description = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
294 free(current->comment);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
295 current->comment = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
296 free(current);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
297 return 1;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
298 } else {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
299 free(current->uuid);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
300 current->uuid = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
301 free(current->address);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
302 current->address = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
303 free(current->description);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
304 current->description = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
305 free(current->comment);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
306 current->comment = NULL;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
307 previous->next = current->next;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
308 free(current);
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
309 current = previous->next;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
310 return 1;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
311 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
312 } else {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
313 previous = current;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
314 current = current->next;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
315 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
316 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
317 return 0;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
318 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
319
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
320
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
321
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
322 /*
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
323 * DEVICE ADD type
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
324 * DEVICE DEL uuid
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
325 * DEVICE LIST
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
326 * DEVICE JSON
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
327 * DEVICE GET uuid
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
328 * DEVICE PUT uuid
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
329 * DEVICE JSON uuid
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
330 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
331 int cmd_device(int s, char *buf)
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
332 {
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
333 char *opt, *param, *kwd, *val, ibuf[SS_BUFSIZE];
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
334 devices_list *device, *tmpd;
240
6bdda35b4a13 Added thread locks for device processing
Michiel Broek <mbroek@mbse.eu>
parents: 237
diff changeset
335 int i, rc, rlen, ival;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
336 uuid_t uu;
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
337
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
338 opt = strtok(buf, " \0");
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
339 opt = strtok(NULL, " \0");
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
340
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
341 if (opt == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
342 srv_send(s, (char *)"501 Subcommand missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
343 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
344 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
345 param = strtok(NULL, "\0");
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
346
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
347 if (strcmp(opt, (char *)"HELP") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
348 srv_send(s, (char *)"100 Help text follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
349 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
350 srv_send(s, (char *)"DEVICE ADD type Add device (RC433/DHT/I2C/SPI)");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
351 srv_send(s, (char *)"DEVICE DEL uuid Delete device by uuid");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
352 srv_send(s, (char *)"DEVICE LIST List all devices");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
353 srv_send(s, (char *)"DEVICE GET uuid Read device by uuid parameters");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
354 srv_send(s, (char *)"DEVICE PUT uuid Write device by uuid parameters");
681
1f81e52c5abf Minor details for server DEVICE commands. Added getdevice<s> php scripts.
Michiel Broek <mbroek@mbse.eu>
parents: 680
diff changeset
355 srv_send(s, (char *)"DEVICE JSON <uuid> Json list all or a single device");
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
356 srv_send(s, (char *)".");
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
357 return 0;
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
358 }
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
359
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
360 if (strcmp(opt, (char *)"LIST") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
361 srv_send(s, (char *)"212 Devices list follows:");
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
362 for (device = Config.devices; device; device = device->next) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
363 srv_send(s, (char *)"%s,%s,%d,%d,%s,%s,%d", device->uuid, device->address, device->subdevice,
345
9894b559441c Added device direction and value in devices maintenance screen
Michiel Broek <mbroek@mbse.eu>
parents: 344
diff changeset
364 device->inuse, device->comment, DEVDIR[device->direction], device->value + device->offset);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
365 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
366 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
367 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
368 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
369
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
370 if (strcmp(opt, (char *)"JSON") == 0) {
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
371 char *payload = NULL, *payloadu = NULL, vbuf[64];
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
372 bool comma = false;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
373
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
374 if (param == NULL) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
375 srv_send(s, (char *)"212 Devices json list follows:");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
376 payload = xstrcpy((char *)"[");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
377 for (device = Config.devices; device; device = device->next) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
378 if (comma)
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
379 payload = xstrcat(payload, (char *)",");
687
f5d05b420732 Devices edit popup layout ready.
Michiel Broek <mbroek@mbse.eu>
parents: 684
diff changeset
380 payloadu = device_json(device);
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
381 payload = xstrcat(payload, payloadu);
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
382 comma = true;
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
383 free(payloadu);
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
384 payloadu = NULL;
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
385 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
386 payload = xstrcat(payload, (char *)"]");
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
387 large_send(s, payload);
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
388 srv_send(s, (char *)".");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
389 free(payload);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
390 payload = NULL;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
391 return 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
392 } else {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
393 for (device = Config.devices; device; device = device->next) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
394 if (strcmp(device->uuid, param) == 0) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
395 payload = xstrcpy((char *)"{\"type\":\"device\",\"unit\":\"");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
396 snprintf(vbuf, 63, "%d", device->subdevice);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
397 payload = xstrcat(payload, device->address);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
398 payload = xstrcat(payload, (char *)"-");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
399 payload = xstrcat(payload, vbuf);
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
400 payload = xstrcat(payload, (char *)"\",\"metric\":");
687
f5d05b420732 Devices edit popup layout ready.
Michiel Broek <mbroek@mbse.eu>
parents: 684
diff changeset
401 payloadu = device_json(device);
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
402 payload = xstrcat(payload, payloadu);
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
403 free(payloadu);
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
404 payloadu = NULL;
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
405 payload = xstrcat(payload, (char *)"}");
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
406 srv_send(s, (char *)"213 Device json record follows:");
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
407 large_send(s, payload);
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
408 free(payload);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
409 payload = NULL;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
410 srv_send(s, (char *)".");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
411 return 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
412 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
413 }
684
b2265c7e5707 Updated dependencies. Devices json data is created in de devices source for all places where it is needed. Added devices_ws function to broadcast all devices, to be used when any device is changed. The devices loop detects changes in input values and calls devices_ws if so. The server uses the general devices json data.
Michiel Broek <mbroek@mbse.eu>
parents: 681
diff changeset
414 srv_send(s, (char *)"{}");
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
415 srv_send(s, (char *)"440 No such device");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
416 return 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
417 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
418 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
419
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
420 if (param == NULL) {
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
421 srv_send(s, (char *)"502 Parameter missing");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
422 return 1;
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
423 }
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
424
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
425 if (strcmp(opt, (char *)"ADD") == 0) {
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
426 if ((strcmp(param, (char *)"RC433") == 0) || (strcmp(param, (char *)"DHT") == 0) ||
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
427 (strcmp(param, (char *)"I2C") == 0) || (strcmp(param, (char *)"SPI") == 0)) {
170
3cb99272b84b A bit of code cleanup
Michiel Broek <mbroek@mbse.eu>
parents: 167
diff changeset
428
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
429 device = (devices_list *)malloc(sizeof(devices_list));
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
430 device->next = NULL;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
431 device->uuid = malloc(37);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
432 uuid_generate(uu);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
433 uuid_unparse(uu, device->uuid);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
434 for (i = 0; i < 8; i++) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
435 if (strcmp(param, DEVTYPE[i]) == 0) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
436 device->type = i;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
437 break;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
438 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
439 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
440 device->direction = DEVDIR_UNDEF;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
441 device->value = device->offset = device->subdevice = device->inuse = 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
442 device->present = DEVPRESENT_UNDEF;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
443 device->address = xstrcpy((char *)"Enter address here");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
444 device->gpiopin = -1;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
445 device->description = xstrcpy((char *)"Describe me here");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
446 device->comment = xstrcpy((char *)"Comment here");
699
35382668a140 Added Add new device.
Michiel Broek <mbroek@mbse.eu>
parents: 698
diff changeset
447 device->timestamp = time(NULL);
170
3cb99272b84b A bit of code cleanup
Michiel Broek <mbroek@mbse.eu>
parents: 167
diff changeset
448
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
449 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
450 if (Config.devices == NULL) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
451 Config.devices = device;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
452 } else {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
453 for (tmpd = Config.devices; tmpd; tmpd = tmpd->next) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
454 if (tmpd->next == NULL) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
455 tmpd->next = device;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
456 break;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
457 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
458 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
459 }
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
460 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
461 syslog(LOG_NOTICE, "Device %s added", device->uuid);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
462 srv_send(s, (char *)"211 Device %s added", device->uuid);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
463 return 1;
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
464
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
465 } else {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
466 srv_send(s, (char *)"503 Parameter error");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
467 return 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
468 }
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
469 }
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
470
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
471 if (strcmp(opt, (char *)"DEL") == 0) {
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
472
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
473 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
474 rc = delete_Device(param);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
475 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
476 if (rc) {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
477 syslog(LOG_NOTICE, "Device %s deleted", param);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
478 srv_send(s, (char *)"211 Device %s deleted", param);
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
479 return 1;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
480 } else {
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
481 srv_send(s, (char *)"440 No such device");
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
482 return 0;
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
483 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
484 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
485
680
8b3c86124a08 Increased server buffersize from 1024 to 4096. Added DEVICE JSON <uuid> command. Added websocket response fermenter profile. The fermenter monitor screen is ready (maybe).
Michiel Broek <mbroek@mbse.eu>
parents: 678
diff changeset
486
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
487 if (strcmp(opt, (char *)"GET") == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
488 for (device = Config.devices; device; device = device->next) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
489 if (strcmp(device->uuid, param) == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
490 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
325
35b6f6605ae3 More device locks in the network server
Michiel Broek <mbroek@mbse.eu>
parents: 313
diff changeset
491 int my_value = device->value;
35b6f6605ae3 More device locks in the network server
Michiel Broek <mbroek@mbse.eu>
parents: 313
diff changeset
492 int my_timestamp = (int)device->timestamp;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
493 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
494 srv_send(s, (char *)"213 Device record follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
495 srv_send(s, (char *)"TYPE,%s", DEVTYPE[device->type]);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
496 srv_send(s, (char *)"ADDRESS,%s", device->address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
497 srv_send(s, (char *)"DIRECTION,%s", DEVDIR[device->direction]);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
498 srv_send(s, (char *)"VALUE,%d", my_value);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
499 srv_send(s, (char *)"OFFSET,%d", device->offset);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
500 srv_send(s, (char *)"PRESENT,%s", DEVPRESENT[device->present]);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
501 srv_send(s, (char *)"SUBDEVICE,%d", device->subdevice);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
502 srv_send(s, (char *)"GPIOPIN,%d", device->gpiopin);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
503 srv_send(s, (char *)"DESCRIPTION,%s", device->description);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
504 srv_send(s, (char *)"INUSE,%d", device->inuse);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
505 srv_send(s, (char *)"COMMENT,%s", device->comment);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
506 srv_send(s, (char *)"TIMESTAMP,%d", my_timestamp);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
507 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
508 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
509 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
510 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
511 srv_send(s, (char *)"440 No such device");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
512 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
513 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
514
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
515 if (strcmp(opt, (char *)"PUT") == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
516 for (device = Config.devices; device; device = device->next) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
517 if (strcmp(device->uuid, param) == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
518 while (1) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
519 rlen = srv_recv(s, ibuf);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
520 if (rlen == -1) {
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
521 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
522 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
523 if (strlen(ibuf)) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
524 if (strcmp(ibuf, (char *)".") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
525 srv_send(s, (char *)"219 Accepted Device record");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
526 return 1;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
527 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
528 kwd = strtok(ibuf, ",\0");
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
529 val = strtok(NULL, "\0");
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
530 if (kwd && val) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
531 if (strcmp(kwd, (char *)"TYPE") == 0) {
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
532 for (i = 0; i < 8; i++) {
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
533 if (strcmp(val, DEVTYPE[i]) == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
534 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
535 if (device->type != i)
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
536 syslog(LOG_NOTICE, "Device %s changed type %s to %s", device->uuid, DEVTYPE[device->type], DEVTYPE[i]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
537 device->type = i;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
538 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
539 break;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
540 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
541 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
542
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
543 } else if (strcmp(kwd, (char *)"DIRECTION") == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
544 for (i = 0; i < 7; i++) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
545 if (strcmp(val, DEVDIR[i]) == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
546 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
547 if (device->direction != i)
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
548 syslog(LOG_NOTICE, "Device %s changed direction %s to %s", device->uuid, DEVDIR[device->type], DEVDIR[i]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
549 device->direction = i;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
550 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
551 break;
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
552 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
553 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
554
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
555 } else if (strcmp(kwd, (char *)"VALUE") == 0) {
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
556 if (sscanf(val, "%d", &ival) == 1) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
557 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
325
35b6f6605ae3 More device locks in the network server
Michiel Broek <mbroek@mbse.eu>
parents: 313
diff changeset
558 if (device->value != ival)
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
559 syslog(LOG_NOTICE, "Device %s changed value %d to %d", device->uuid, device->value, ival);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
560 device->value = ival;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
561 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
562 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
563
209
c5b1dfd83e81 Added offset value for sensor that need it
Michiel Broek <mbroek@mbse.eu>
parents: 208
diff changeset
564 } else if (strcmp(kwd, (char *)"OFFSET") == 0) {
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
565 if (sscanf(val, "%d", &ival) == 1) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
566 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
325
35b6f6605ae3 More device locks in the network server
Michiel Broek <mbroek@mbse.eu>
parents: 313
diff changeset
567 if (device->offset != ival)
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
568 syslog(LOG_NOTICE, "Device %s changed offset %d to %d", device->uuid, device->offset, ival);
209
c5b1dfd83e81 Added offset value for sensor that need it
Michiel Broek <mbroek@mbse.eu>
parents: 208
diff changeset
569 device->offset = ival;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
570 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
571 }
209
c5b1dfd83e81 Added offset value for sensor that need it
Michiel Broek <mbroek@mbse.eu>
parents: 208
diff changeset
572
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
573 } else if (strcmp(kwd, (char *)"PRESENT") == 0) {
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
574 for (i = 0; i < 4; i++) {
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
575 if (strcmp(val, DEVPRESENT[i]) == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
576 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
577 if (device->present != i)
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
578 syslog(LOG_NOTICE, "Device %s changed present %s to %s", device->uuid, DEVPRESENT[device->present], DEVPRESENT[i]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
579 device->present = i;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
580 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
325
35b6f6605ae3 More device locks in the network server
Michiel Broek <mbroek@mbse.eu>
parents: 313
diff changeset
581 break;
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
582 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
583 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
584
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
585 } else if (strcmp(kwd, (char *)"ADDRESS") == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
586 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
587 if (device->address) {
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
588 if (strcmp(device->address, val))
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
589 syslog(LOG_NOTICE, "Device %s changed address `%s' to `%s'", device->uuid, device->address, val);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
590 free(device->address);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
591 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
592 device->address = xstrcpy(val);
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
593 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
594
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
595 } else if (strcmp(kwd, (char *)"SUBDEVICE") == 0) {
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
596 if (sscanf(val, "%d", &ival) == 1) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
597 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
598 if (device->subdevice != ival)
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
599 syslog(LOG_NOTICE, "Device %s changed subdevice %d to %d", device->uuid, device->subdevice, ival);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
600 device->subdevice = ival;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
601 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
602 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
603
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
604 } else if (strcmp(kwd, (char *)"GPIOPIN") == 0) {
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
605 if (sscanf(val, "%d", &ival) == 1) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
606 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
607 if (device->gpiopin != ival)
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
608 syslog(LOG_NOTICE, "Device %s changed gpiopin %d to %d", device->uuid, device->gpiopin, ival);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
609 device->gpiopin = ival;
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
610 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
611 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
612
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
613 } else if (strcmp(kwd, (char *)"DESCRIPTION") == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
614 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
615 if (device->description) {
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
616 if (strcmp(device->description, val))
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
617 syslog(LOG_NOTICE, "Device %s changed description `%s' to `%s'", device->uuid, device->description, val);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
618 free(device->description);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
619 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
620 device->description = xstrcpy(val);
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
621 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
622
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
623 } else if (strcmp(kwd, (char *)"COMMENT") == 0) {
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
624 pthread_mutex_lock(&mutexes[LOCK_DEVICES]);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
625 if (device->comment) {
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
626 if (strcmp(device->comment, val))
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
627 syslog(LOG_NOTICE, "Device %s changed comment `%s' to `%s'", device->uuid, device->comment, val);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
628 free(device->comment);
276
a19cc3770f09 Profile progress logging now also shows the percentage done. The DEVICE PUT command logs all changed values.
Michiel Broek <mbroek@mbse.eu>
parents: 274
diff changeset
629 }
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
630 device->comment = xstrcpy(val);
645
49eb753a958b All thread locks from wiringPi to standard pthreads.
Michiel Broek <mbroek@mbse.eu>
parents: 614
diff changeset
631 pthread_mutex_unlock(&mutexes[LOCK_DEVICES]);
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
632
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
633 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
634 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
635 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
636 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
637 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
638 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
639 srv_send(s, (char *)"440 No such device");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
640 return 0;
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
641 }
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
642
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
643 srv_send(s, (char *)"504 Subcommand error");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
644 return 0;
157
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
645 }
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
646
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
647
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
648
259a018758f9 Added GET AIR, GET BEER, GET TARGET commands
Michiel Broek <mbroek@mbse.eu>
parents: 156
diff changeset
649 /*
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
650 * ONEWIRE JSON
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
651 */
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
652 int cmd_onewire(int s, char *buf)
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
653 {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
654 char *opt, *param;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
655 w1_list *dev_w1;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
656
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
657 opt = strtok(buf, " \0");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
658 opt = strtok(NULL, " \0");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
659
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
660 if (opt == NULL) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
661 srv_send(s, (char *)"501 Subcommand missing");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
662 return 0;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
663 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
664 param = strtok(NULL, "\0");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
665
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
666 if (strcmp(opt, (char *)"HELP") == 0) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
667 srv_send(s, (char *)"100 Help text follows:");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
668 srv_send(s, (char *)"Recognized commands:");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
669 srv_send(s, (char *)"ONEWIRE JSON Json list all or a single one-wire device");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
670 srv_send(s, (char *)".");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
671 return 0;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
672 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
673
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
674 if (strcmp(opt, (char *)"JSON") == 0) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
675 char *payload = NULL, *payloadu = NULL;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
676 bool comma = false;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
677
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
678 if (param == NULL) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
679 srv_send(s, (char *)"212 One-wire json list follows:");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
680 payload = xstrcpy((char *)"[");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
681 for (dev_w1 = w1_devices; dev_w1; dev_w1 = dev_w1->next) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
682 if (comma)
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
683 payload = xstrcat(payload, (char *)",");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
684 payloadu = one_wire_json(dev_w1);
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
685 payload = xstrcat(payload, payloadu);
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
686 comma = true;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
687 free(payloadu);
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
688 payloadu = NULL;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
689 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
690 payload = xstrcat(payload, (char *)"]");
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
691 large_send(s, payload);
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
692 srv_send(s, (char *)".");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
693 free(payload);
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
694 payload = NULL;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
695 return 0;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
696 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
697 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
698
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
699 srv_send(s, (char *)"504 Subcommand error");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
700 return 0;
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
701 }
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
702
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
703
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
704
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
705 /*
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
706 * GLOBAL GET
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
707 * GLOBAL PUT
678
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
708 * GLOBAL JSON
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
709 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
710 int cmd_global(int s, char *buf)
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
711 {
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
712 char *opt, *kwd, *val, ibuf[SS_BUFSIZE];
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
713 int ival, rlen;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
714
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
715 opt = strtok(buf, " \0");
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
716 opt = strtok(NULL, "\0");
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
717
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
718 if (opt == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
719 srv_send(s, (char *)"501 Subcommand missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
720 return 0;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
721 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
722
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
723 if (strcmp(opt, (char *)"HELP") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
724 srv_send(s, (char *)"100 Help text follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
725 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
726 srv_send(s, (char *)"GLOBAL GET Get global settings");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
727 srv_send(s, (char *)"GLOBAL PUT Put global settings");
678
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
728 srv_send(s, (char *)"GLOBAL JSON Get global json settings");
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
729 srv_send(s, (char *)".");
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
730 return 0;
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
731 }
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
732
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
733 if (strcmp(opt, (char *)"GET") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
734 srv_send(s, (char *)"213 Global Settings record follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
735 srv_send(s, (char *)"RELEASE,%s", VERSION);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
736 srv_send(s, (char *)"NAME,%s", Config.name);
698
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
737 srv_send(s, (char *)"UUID,%s", Config.uuid);
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
738 srv_send(s, (char *)"PORT,%d", Config.server_port);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
739 srv_send(s, (char *)"TEMP_UUID,%s", Config.temp_uuid);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
740 srv_send(s, (char *)"TEMP_STATE,%s", DEVPRESENT[Config.temp_state]);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
741 srv_send(s, (char *)"TEMP_VALUE,%.1f", Config.temp_value / 1000.0);
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
742 srv_send(s, (char *)"HUM_UUID,%s", Config.hum_uuid);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
743 srv_send(s, (char *)"HUM_STATE,%s", DEVPRESENT[Config.hum_state]);
708
13555c27b592 Version 0.9.19a6. Fixes after a short trial on the production controller. Fixed json for alternate beer termperature sensor. Fixed division by 1000 for the room temperature and humidity values. The dropdown list for devices shows the address instead of description in the list.
Michiel Broek <mbroek@mbse.eu>
parents: 706
diff changeset
744 srv_send(s, (char *)"HUM_VALUE,%.1f", Config.hum_value / 1000.0);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
745 srv_send(s, (char *)"TEMP_HUM_IDX,%d", Config.temp_hum_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
746 srv_send(s, (char *)"LCD_COLS,%d", Config.lcd_cols);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
747 srv_send(s, (char *)"LCD_ROWS,%d", Config.lcd_rows);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
748 srv_send(s, (char *)"NEXT_UNIT,%d", Config.next_unit);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
749 srv_send(s, (char *)"MQTT_HOST,%s", Config.mqtt_host);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
750 srv_send(s, (char *)"MQTT_PORT,%d", Config.mqtt_port);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
751 srv_send(s, (char *)"MQTT_USER,%s", Config.mqtt_username);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
752 srv_send(s, (char *)"MQTT_PASS,%s", Config.mqtt_password);
676
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
753 srv_send(s, (char *)"WEBSOCKET_PORT,%d", Config.websocket_port);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
754 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
755 return 0;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
756 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
757
678
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
758 if (strcmp(opt, (char *)"JSON") == 0) {
689
f94b525f7563 Create global_json() for all and expanded the data to the complete setup. Added design for the global setup.
Michiel Broek <mbroek@mbse.eu>
parents: 687
diff changeset
759 char *payload = NULL;
678
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
760
689
f94b525f7563 Create global_json() for all and expanded the data to the complete setup. Added design for the global setup.
Michiel Broek <mbroek@mbse.eu>
parents: 687
diff changeset
761 payload = global_json();
678
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
762 srv_send(s, (char *)"213 Global json data follows:");
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
763 srv_send(s, payload);
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
764 srv_send(s, (char *)".");
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
765 free(payload);
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
766 payload = NULL;
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
767 return 0;
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
768 }
cc49115e769e Better websocket broadcast messages. Added GLOBAL JSON command to the server. Better logic to trigger websocket and mqtt data updates for the fermenter units. Websocket receive added fermenter mode, stage, setpoints, switches. Added more css styles for the fermenter screen. Added the fermenter screen php and javascript.
Michiel Broek <mbroek@mbse.eu>
parents: 677
diff changeset
769
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
770 if (strcmp(opt, (char *)"PUT") == 0) {
545
c382a6c58c20 Fixed compiling whithout mqtt support.
Michiel Broek <mbroek@mbse.eu>
parents: 542
diff changeset
771 int mqtt_reconnect = 0;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
772 while (1) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
773 rlen = srv_recv(s, ibuf);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
774 if (rlen == -1) {
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
775 return 0;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
776 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
777 if (strlen(ibuf)) {
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
778 if (strcmp(ibuf, (char *)".") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
779 srv_send(s, (char *)"219 Accepted Global record");
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
780 if (mqtt_reconnect)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
781 mqtt_connect();
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
782 return 1;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
783 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
784 kwd = strtok(ibuf, ",\0");
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
785 val = strtok(NULL, "\0");
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
786 if (kwd) {
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
787 if (strcmp(kwd, (char *)"NAME") == 0) {
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
788 if (val && Config.name && strcmp(val, Config.name))
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
789 syslog(LOG_NOTICE, "Global name `%s' to `%s'", Config.name, val);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
790 if (Config.name)
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
791 free(Config.name);
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
792 if (val)
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
793 Config.name = xstrcpy(val);
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
794 else
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
795 Config.name = NULL;
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
796
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
797 } else if (val && (strcmp(kwd, (char *)"PORT") == 0)) {
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
798 if (sscanf(val, "%d", &ival) == 1) {
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
799 if (Config.server_port != ival)
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
800 syslog(LOG_NOTICE, "Global server port %d to %d", Config.server_port, ival);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
801 Config.server_port = ival;
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
802 }
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
803
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
804 } else if (strcmp(kwd, (char *)"TEMP_UUID") == 0) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
805 if (val && Config.temp_uuid && (strcmp(val, Config.temp_uuid)))
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
806 syslog(LOG_NOTICE, "Global temperature uuid `%s' to `%s'", Config.temp_uuid, val);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
807 if (Config.temp_uuid) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
808 device_count(FALSE, Config.temp_uuid);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
809 free(Config.temp_uuid);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
810 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
811 if (val) {
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
812 Config.temp_uuid = xstrcpy(val);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
813 device_count(TRUE, Config.temp_uuid);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
814 } else
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
815 Config.temp_uuid = NULL;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
816
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
817 } else if (strcmp(kwd, (char *)"HUM_UUID") == 0) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
818 if (val && Config.hum_uuid && (strcmp(val, Config.hum_uuid)))
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
819 syslog(LOG_NOTICE, "Global humidity uuid `%s' to `%s'", Config.hum_uuid, val);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
820 if (Config.hum_uuid) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
821 device_count(FALSE, Config.hum_uuid);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
822 free(Config.hum_uuid);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
823 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
824 if (val) {
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
825 Config.hum_uuid = xstrcpy(val);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
826 device_count(TRUE, Config.hum_uuid);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
827 } else
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
828 Config.hum_uuid = NULL;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
829
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
830 } else if (val && (strcmp(kwd, (char *)"TEMP_HUM_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
831 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
832 if (Config.temp_hum_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
833 syslog(LOG_NOTICE, "Global Temp/Humidity idx %d to %d", Config.temp_hum_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
834 Config.temp_hum_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
835 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
836
698
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
837 } else if (val && (strcmp(kwd, (char *)"LCD_ADDRESS") == 0)) {
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
838 if (sscanf(val, "%d", &ival) == 1) {
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
839 if (Config.lcd_address != ival)
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
840 syslog(LOG_NOTICE, "Global LCD address %d to %d", Config.lcd_address, ival);
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
841 Config.lcd_address = ival;
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
842 }
92a080c1a5d5 Finished global setup including Save.
Michiel Broek <mbroek@mbse.eu>
parents: 696
diff changeset
843
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
844 } else if (val && (strcmp(kwd, (char *)"LCD_COLS") == 0)) {
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
845 if (sscanf(val, "%d", &ival) == 1) {
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
846 if (Config.lcd_cols != ival)
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
847 syslog(LOG_NOTICE, "Global LCD columns %d to %d", Config.lcd_cols, ival);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
848 Config.lcd_cols = ival;
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
849 }
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
850
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
851 } else if (val && (strcmp(kwd, (char *)"LCD_ROWS") == 0)) {
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
852 if (sscanf(val, "%d", &ival) == 1) {
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
853 if (Config.lcd_rows != ival)
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
854 syslog(LOG_NOTICE, "Global LCD rows %d to %d", Config.lcd_rows, ival);
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
855 Config.lcd_rows = ival;
278
76c8a6f18e4d GLOBAL PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 276
diff changeset
856 }
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
857
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
858 } else if (strcmp(kwd, (char *)"MQTT_HOST") == 0) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
859 if (val && Config.mqtt_host && (strcmp(val, Config.mqtt_host)))
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
860 syslog(LOG_NOTICE, "Global MQTT host `%s' to `%s'", Config.mqtt_host, val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
861 mqtt_disconnect();
545
c382a6c58c20 Fixed compiling whithout mqtt support.
Michiel Broek <mbroek@mbse.eu>
parents: 542
diff changeset
862 mqtt_reconnect = 1;
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
863 if (Config.mqtt_host)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
864 free(Config.mqtt_host);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
865 if (val)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
866 Config.mqtt_host = xstrcpy(val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
867 else
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
868 Config.mqtt_host = NULL;
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
869
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
870 } else if (val && (strcmp(kwd, (char *)"MQTT_PORT") == 0)) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
871 if (sscanf(val, "%d", &ival) == 1) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
872 if (Config.mqtt_port != ival) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
873 syslog(LOG_NOTICE, "Global MQTT port %d to %d", Config.mqtt_port, ival);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
874 mqtt_disconnect();
545
c382a6c58c20 Fixed compiling whithout mqtt support.
Michiel Broek <mbroek@mbse.eu>
parents: 542
diff changeset
875 mqtt_reconnect = 1;
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
876 Config.mqtt_port = ival;
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
877 }
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
878 }
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
879
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
880 } else if (strcmp(kwd, (char *)"MQTT_USER") == 0) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
881 if (val && Config.mqtt_username && (strcmp(val, Config.mqtt_username)))
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
882 syslog(LOG_NOTICE, "Global MQTT username `%s' to `%s'", Config.mqtt_username, val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
883 mqtt_disconnect();
545
c382a6c58c20 Fixed compiling whithout mqtt support.
Michiel Broek <mbroek@mbse.eu>
parents: 542
diff changeset
884 mqtt_reconnect = 1;
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
885 if (Config.mqtt_username)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
886 free(Config.mqtt_username);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
887 if (val)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
888 Config.mqtt_username = xstrcpy(val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
889 else
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
890 Config.mqtt_username = NULL;
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
891
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
892 } else if (strcmp(kwd, (char *)"MQTT_PASS") == 0) {
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
893 if (val && Config.mqtt_password && (strcmp(val, Config.mqtt_password)))
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
894 syslog(LOG_NOTICE, "Global MQTT password `%s' to `%s'", Config.mqtt_password, val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
895 mqtt_disconnect();
545
c382a6c58c20 Fixed compiling whithout mqtt support.
Michiel Broek <mbroek@mbse.eu>
parents: 542
diff changeset
896 mqtt_reconnect = 1;
534
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
897 if (Config.mqtt_password)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
898 free(Config.mqtt_password);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
899 if (val)
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
900 Config.mqtt_password = xstrcpy(val);
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
901 else
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
902 Config.mqtt_password = NULL;
92b546d4a839 Versie 0.6.4. Aan de global setup de MQTT instellingen toegevoegd. Die zijn er ook als MQTT niet op het systeem aanwezig is. Indien het de global setup wijzigd, wordt de MQTT verbinding opnieuw gemaakt.
Michiel Broek <mbroek@mbse.eu>
parents: 533
diff changeset
903
676
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
904 } else if (val && (strcmp(kwd, (char *)"WEBSOCKET_PORT") == 0)) {
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
905 if (sscanf(val, "%d", &ival) == 1) {
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
906 if (Config.websocket_port != ival) {
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
907 syslog(LOG_NOTICE, "Global Websocket port %d to %d", Config.websocket_port, ival);
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
908 Config.websocket_port = ival;
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
909 }
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
910 }
09b5efe0c633 Add stylesheet, about page. Add menu for fermenters. Add websocket port setup to the config server.
Michiel Broek <mbroek@mbse.eu>
parents: 666
diff changeset
911
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
912 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
913 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
914 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
915 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
916 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
917
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
918 srv_send(s, (char *)"504 Subcommand error");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
919 return 0;
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
920 }
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
921
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
922
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
923
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
924 /*
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
925 * LIST
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
926 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
927 int cmd_list(int s, char *buf)
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
928 {
536
e833bbd5e733 Versie 0.6.5. LIST LOG <unit> commando verwijderd, alleen ARCHIVE LOG <unit> is nog in gebruik. De chiller temperatuur zit nu ook in de log en grafiek.
Michiel Broek <mbroek@mbse.eu>
parents: 534
diff changeset
929 char *opt;
84
ef4c0032b51f Can list the 1-wire bus
Michiel Broek <mbroek@mbse.eu>
parents: 81
diff changeset
930 units_list *unit;
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
931
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
932 opt = strtok(buf, " \0");
191
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
933 opt = strtok(NULL, " \0");
84
ef4c0032b51f Can list the 1-wire bus
Michiel Broek <mbroek@mbse.eu>
parents: 81
diff changeset
934
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
935 if (opt == NULL) {
92
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
936 /*
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
937 * Default, list available units
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
938 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
939 srv_send(s, (char *)"212 Fermenter list follows:");
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
940 for (unit = Config.units; unit; unit = unit->next) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
941 srv_send(s, (char *)"%s,%s,%s", unit->uuid, unit->alias, UNITMODE[unit->mode]);
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
942 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
943 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
944 return 0;
92
116226a8c70a Added profiles configuration
Michiel Broek <mbroek@mbse.eu>
parents: 88
diff changeset
945
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
946 } else if (strcmp(opt, (char *)"HELP") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
947 srv_send(s, (char *)"100 Help text follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
948 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
949 srv_send(s, (char *)"LIST List available units");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
950 srv_send(s, (char *)".");
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
951 return 0;
191
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
952 }
120
466c5cee0463 Added LIST LOG command
Michiel Broek <mbroek@mbse.eu>
parents: 106
diff changeset
953
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
954 srv_send(s, (char *)"504 Subcommand error");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
955 return 0;
191
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
956 }
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
957
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
958
c74bbc24a1c8 Client/Server communication is now almost final
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
959
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
960 #ifdef USE_SIMULATOR
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
961
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
962 extern int my_simulator_command, my_simulator_state;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
963
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
964 int delete_Simulator(char *uuid)
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
965 {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
966 simulator_list *current = Config.simulators;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
967 simulator_list *previous = NULL;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
968
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
969 while (current) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
970 if (strcmp(current->uuid, uuid) == 0) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
971 if (previous == NULL) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
972 Config.simulators = current->next;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
973 free(current->uuid);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
974 // current->uuid = NULL;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
975 free(current->name);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
976 // current->name = NULL;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
977 free(current->air_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
978 free(current->beer_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
979 free(current->beer_address2);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
980 free(current->chiller_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
981 free(current->cooler_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
982 free(current->heater_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
983 free(current->fan_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
984 free(current->light_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
985 free(current->door_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
986 free(current->psu_address);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
987 free(current);
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
988 return 1;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
989 } else {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
990 free(current->uuid);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
991 // current->uuid = NULL;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
992 free(current->name);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
993 // current->name = NULL;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
994 free(current->air_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
995 free(current->beer_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
996 free(current->beer_address2);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
997 free(current->chiller_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
998 free(current->cooler_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
999 free(current->heater_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1000 free(current->fan_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1001 free(current->light_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1002 free(current->door_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1003 free(current->psu_address);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1004 previous->next = current->next;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1005 free(current);
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1006 current = previous->next;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1007 return 1;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1008 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1009 } else {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1010 previous = current;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1011 current = current->next;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1012 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1013 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1014 return 0;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1015 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1016
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1017
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1018
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1019 /*
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1020 * SIMULATOR ADD name
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1021 * SIMULATOR DEL uuid
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1022 * SIMULATOR LIST
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1023 * SIMULATOR GET uuid
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1024 * SIMULATOR PUT uuid
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1025 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1026 int cmd_simulator(int s, char *buf)
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1027 {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1028 char *opt, *param, *kwd, *val, ibuf[SS_BUFSIZE];
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1029 simulator_list *simulator, *nsim;
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1030 int rc, rlen, ival, i;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1031 float fval;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1032 uuid_t uu;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1033
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1034 opt = strtok(buf, " \0");
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1035 opt = strtok(NULL, " \0");
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1036
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1037 if (opt == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1038 srv_send(s, (char *)"501 Subcommand missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1039 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1040 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1041 param = strtok(NULL, "\0");
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1042
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1043 if (strcmp(opt, (char *)"HELP") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1044 srv_send(s, (char *)"100 Help text follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1045 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1046 srv_send(s, (char *)"SIMULATOR ADD name Add a new Simulator with name");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1047 srv_send(s, (char *)"SIMULATOR DEL uuid Delete Simulator by uuid");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1048 srv_send(s, (char *)"SIMULATOR LIST List all Simulators");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1049 srv_send(s, (char *)"SIMULATOR GET uuid Get Simulator record by uuid");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1050 srv_send(s, (char *)"SIMULATOR PUT uuid Put Simulator record by uuid");
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1051 srv_send(s, (char *)"SIMULATOR JSON Get json records");
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1052 srv_send(s, (char *)".");
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1053 return 0;
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1054 }
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1055
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1056 if (strcmp(opt, (char *)"LIST") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1057 srv_send(s, (char *)"212 Simulators list follows:");
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1058 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1059 srv_send(s, (char *)"%s,%d,%s", simulator->uuid, simulator->simno, simulator->name);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1060 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1061 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1062 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1063 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1064
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1065 if (strcmp(opt, (char *)"JSON") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1066 char *payload = NULL, *payloadu = NULL;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1067 bool comma = false;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1068
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1069 if (param == NULL) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1070 srv_send(s, (char *)"212 Simulators json list follows:");
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1071 payload = xstrcpy((char *)"[");
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1072 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1073 if (comma)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1074 payload = xstrcat(payload, (char *)",");
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1075 payloadu = simulator_json(simulator);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1076 payload = xstrcat(payload, payloadu);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1077 comma = true;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1078 free(payloadu);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1079 payloadu = NULL;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1080 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1081 payload = xstrcat(payload, (char *)"]");
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1082 large_send(s, payload);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1083 srv_send(s, (char *)".");
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1084 free(payload);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1085 payload = NULL;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1086 return 0;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1087 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1088 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1089
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1090 if (param == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1091 srv_send(s, (char *)"502 Parameter missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1092 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1093 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1094
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1095 if (strcmp(opt, (char *)"ADD") == 0) {
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1096 int highno = 0, count = 0;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1097 char abuf[64];
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1098
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1099 /*
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1100 * For now, only one simulator is allowed.
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1101 */
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1102 if (Config.simulators) {
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1103 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1104 if (simulator->simno > highno)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1105 highno = simulator->simno;
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1106 count++;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1107 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1108 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1109 if (count >= 5) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1110 srv_send(s, (char *)"441 Maximum simulators reached");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1111 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1112 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1113
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1114 my_simulator_command = THREAD_PAUSE;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1115 while (my_simulator_state != THREAD_PAUSE) { mDelay(50); };
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1116
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1117 nsim = (simulator_list *)malloc(sizeof(simulator_list));
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1118 memset(nsim, 0, sizeof(simulator_list));
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1119 nsim->next = NULL;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1120 nsim->uuid = malloc(37);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1121 uuid_generate(uu);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1122 uuid_unparse(uu, nsim->uuid);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1123 nsim->name = xstrcpy(param);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1124 nsim->simno = highno + 1;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1125 nsim->volume_air = 150;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1126 nsim->volume_beer = 50;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1127 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimRoomTemp");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1128 nsim->room_tempaddress = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1129 nsim->room_temperature = nsim->air_temperature = nsim->beer_temperature = nsim->beer_temperature2 = 20.0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1130 nsim->s_cool_temp = nsim->s_heat_temp = 20.0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1131 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimRoomHum");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1132 nsim->room_humaddress = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1133 nsim->room_humidity = 48.6;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1134 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimAirTemp");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1135 nsim->air_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1136 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimBeerTemp");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1137 nsim->beer_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1138 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimBeerTemp2");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1139 nsim->beer_address2 = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1140 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimChillerTemp");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1141 nsim->chiller_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1142 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimHeater");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1143 nsim->heater_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1144 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimCooler");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1145 nsim->cooler_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1146 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimFan");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1147 nsim->fan_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1148 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimLight");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1149 nsim->light_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1150 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimDoor");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1151 nsim->door_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1152 snprintf(abuf, 63, "%d-%s", nsim->simno, (char *)"SimPSU");
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1153 nsim->psu_address = xstrcpy(abuf);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1154 nsim->chiller_temperature = 1.5; /* Chiller temperature */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1155 nsim->cooler_temp = 1.5; /* Cooling temperature */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1156 nsim->cooler_time = 720; /* About 12 minutes for the cooler plate */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1157 nsim->cooler_size = 0.8; /* 0.8 square meter cooler plate */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1158 nsim->heater_temp = 150.0; /* Heating temperature */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1159 nsim->heater_time = 3; /* 3 seconds to heat-up */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1160 nsim->heater_size = 0.01; /* 0.01 square meter heater plate */
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1161 nsim->door_value = nsim->psu_value = 0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1162 nsim->air_present = nsim->beer_present = DEVPRESENT_YES;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1163 nsim->beer_present2 = nsim->chiller_present = nsim->cooler_present = nsim->heater_present = DEVPRESENT_UNDEF;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1164 nsim->door_present = nsim->psu_present = DEVPRESENT_UNDEF;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1165 nsim->frigo_isolation = 0.002;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1166 nsim->timestamp = time(NULL);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1167 nsim->s_yeast_heat = 0.0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1168 nsim->s_yeast_started = nsim->s_cool_changed = nsim->s_heat_changed = (int)0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1169
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1170 if (Config.simulators == NULL) {
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1171 Config.simulators = nsim;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1172 } else {
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1173 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1174 if (simulator->next == NULL) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1175 simulator->next = nsim;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1176 break;
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1177 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1178 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1179 }
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1180 my_simulator_command = THREAD_RUN;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1181 while (my_simulator_state != THREAD_RUN) { mDelay(50); };
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1182
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1183 syslog(LOG_NOTICE, "Simulator %s no %d added", param, highno + 1);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1184 srv_send(s, (char *)"211 Simulator %s added", param);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1185 return 1;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1186 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1187
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1188 if (strcmp(opt, (char *)"DEL") == 0) {
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1189 // TODO: check devices in use.
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1190 // TODO: delete simulated devices.
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1191
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1192 my_simulator_command = THREAD_PAUSE;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1193 while (my_simulator_state != THREAD_PAUSE) { mDelay(50); };
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1194 rc = delete_Simulator(param);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1195 my_simulator_command = THREAD_RUN;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1196 while (my_simulator_state != THREAD_RUN) { mDelay(50); };
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1197
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1198 if (rc) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1199 syslog(LOG_NOTICE, "Simulator %s deleted", param);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1200 srv_send(s, (char *)"211 Simulator %s deleted", param);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1201 return 1;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1202 } else {
717
22dd7ab614e5 Add new fermenter adds dummy yeast temperatures. Periodic thermferm unit logging adds the unit alias name. Added Green LED hide color. Moved getglobal.php to dbglobal.php. Adjusted several record types in global and fermenter javascript records so there is less guesswork. Only display control leds and switches for defined equipment.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
1203 syslog(LOG_NOTICE, "Simulator %s del error", param);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1204 srv_send(s, (char *)"440 No such simulator");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1205 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1206 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1207 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1208
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1209 if (strcmp(opt, (char *)"GET") == 0) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1210 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1211 if (strcmp(simulator->uuid, param) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1212 srv_send(s, (char *)"213 Simulator record follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1213 srv_send(s, (char *)"NAME,%s", simulator->name);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1214 srv_send(s, (char *)"SIMNO,%d", simulator->simno);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1215 srv_send(s, (char *)"VOLUME_AIR,%d", simulator->volume_air);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1216 srv_send(s, (char *)"VOLUME_BEER,%d", simulator->volume_beer);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1217 srv_send(s, (char *)"ROOM_TEMPADDRESS,%s", simulator->room_tempaddress);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1218 srv_send(s, (char *)"ROOM_TEMPERATURE,%.1f", simulator->room_temperature);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1219 srv_send(s, (char *)"ROOM_HUMADDRESS,%s", simulator->room_humaddress);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1220 srv_send(s, (char *)"ROOM_HUMIDITY,%.1f", simulator->room_humidity);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1221 srv_send(s, (char *)"AIR_ADDRESS,%s", simulator->air_address);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1222 srv_send(s, (char *)"AIR_TEMPERATURE,%.3f", simulator->air_temperature);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1223 srv_send(s, (char *)"AIR_PRESENT,%s", DEVPRESENT[simulator->air_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1224 srv_send(s, (char *)"BEER_ADDRESS,%s", simulator->beer_address);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1225 srv_send(s, (char *)"BEER_TEMPERATURE,%.3f", simulator->beer_temperature);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1226 srv_send(s, (char *)"BEER_PRESENT,%s", DEVPRESENT[simulator->beer_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1227 srv_send(s, (char *)"BEER_ADDRESS2,%s", simulator->beer_address2);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1228 srv_send(s, (char *)"BEER_TEMPERATURE2,%.3f", simulator->beer_temperature2);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1229 srv_send(s, (char *)"BEER_PRESENT2,%s", DEVPRESENT[simulator->beer_present2]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1230 srv_send(s, (char *)"CHILLER_ADDRESS,%s", simulator->chiller_address);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1231 srv_send(s, (char *)"CHILLER_TEMPERATURE,%.3f", simulator->chiller_temperature);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1232 srv_send(s, (char *)"CHILLER_PRESENT,%s", DEVPRESENT[simulator->chiller_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1233 srv_send(s, (char *)"COOLER_ADDRESS,%s", simulator->cooler_address);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1234 srv_send(s, (char *)"COOLER_TEMP,%.1f", simulator->cooler_temp);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1235 srv_send(s, (char *)"COOLER_TIME,%d", simulator->cooler_time);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1236 srv_send(s, (char *)"COOLER_SIZE,%.3f", simulator->cooler_size);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1237 srv_send(s, (char *)"COOLER_PRESENT,%s", DEVPRESENT[simulator->cooler_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1238 srv_send(s, (char *)"COOLER_POWER,%d", simulator->cooler_power);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1239 srv_send(s, (char *)"HEATER_ADDRESS,%s", simulator->heater_address);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1240 srv_send(s, (char *)"HEATER_TEMP,%.1f", simulator->heater_temp);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1241 srv_send(s, (char *)"HEATER_TIME,%d", simulator->heater_time);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1242 srv_send(s, (char *)"HEATER_SIZE,%.3f", simulator->heater_size);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1243 srv_send(s, (char *)"HEATER_PRESENT,%s", DEVPRESENT[simulator->heater_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1244 srv_send(s, (char *)"HEATER_POWER,%d", simulator->heater_power);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1245 srv_send(s, (char *)"FAN_ADDRESS,%s", simulator->fan_address);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1246 srv_send(s, (char *)"FAN_PRESENT,%s", DEVPRESENT[simulator->fan_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1247 srv_send(s, (char *)"FAN_POWER,%d", simulator->fan_power);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1248 srv_send(s, (char *)"LIGHT_ADDRESS,%s", simulator->light_address);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1249 srv_send(s, (char *)"LIGHT_PRESENT,%s", DEVPRESENT[simulator->light_present]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1250 srv_send(s, (char *)"LIGHT_POWER,%d", simulator->light_power);
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1251 srv_send(s, (char *)"DOOR_ADDRESS,%s", simulator->door_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1252 srv_send(s, (char *)"DOOR_PRESENT,%s", DEVPRESENT[simulator->door_present]);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1253 srv_send(s, (char *)"DOOR_VALUE,%d", simulator->door_value);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1254 srv_send(s, (char *)"PSU_ADDRESS,%s", simulator->psu_address);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1255 srv_send(s, (char *)"PSU_PRESENT,%s", DEVPRESENT[simulator->psu_present]);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1256 srv_send(s, (char *)"PSU_VALUE,%d", simulator->psu_value);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1257 srv_send(s, (char *)"FRIGO_ISOLATION,%.3f", simulator->frigo_isolation);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1258 srv_send(s, (char *)"TIMESTAMP,%ld", (long)simulator->timestamp);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1259 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1260 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1261 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1262 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1263 srv_send(s, (char *)"440 No such simulator");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1264 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1265 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1266
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1267 if (strcmp(opt, (char *)"PUT") == 0) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1268 for (simulator = Config.simulators; simulator; simulator = simulator->next) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1269 if (strcmp(simulator->uuid, param) == 0) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1270 while (1) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1271 rlen = srv_recv(s, ibuf);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1272 if (rlen == -1) {
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1273 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1274 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1275 if (strlen(ibuf)) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1276 if (strcmp(ibuf, (char *)".") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1277 srv_send(s, (char *)"219 Accepted Simulator record");
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1278 simulator->timestamp = time(NULL);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1279 return 1;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1280 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1281 kwd = strtok(ibuf, ",\0");
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1282 val = strtok(NULL, "\0");
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1283 if (kwd && val) {
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1284
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1285 if (strcmp(kwd, (char *)"NAME") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1286 if (simulator->name) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1287 if (strcmp(simulator->name, val))
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1288 syslog(LOG_NOTICE, "Simulator %s name `%s' to `%s'", simulator->uuid, simulator->name, val);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1289 free(simulator->name);
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1290 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1291 simulator->name = xstrcpy(val);
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1292
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1293 } else if (strcmp(kwd, (char *)"VOLUME_AIR") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1294 if (sscanf(val, "%d", &ival) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1295 if (simulator->volume_air != ival)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1296 syslog(LOG_NOTICE, "Simulator %s volume air %d to %d", simulator->uuid, simulator->volume_air, ival);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1297 simulator->volume_air = ival;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1298 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1299
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1300 } else if (strcmp(kwd, (char *)"VOLUME_BEER") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1301 if (sscanf(val, "%d", &ival) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1302 if (simulator->volume_beer != ival)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1303 syslog(LOG_NOTICE, "Simulator %s volume beer %d to %d", simulator->uuid, simulator->volume_beer, ival);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1304 simulator->volume_beer = ival;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1305 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1306
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1307 } else if (strcmp(kwd, (char *)"ROOM_TEMPERATURE") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1308 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1309 if (simulator->room_temperature != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1310 syslog(LOG_NOTICE, "Simulator %s room temperature %.1f to %.1f", simulator->uuid, simulator->room_temperature, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1311 simulator->room_temperature = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1312 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1313
553
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1314 } else if (strcmp(kwd, (char *)"ROOM_HUMIDITY") == 0) {
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1315 if (sscanf(val, "%f", &fval) == 1) {
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1316 if (simulator->room_humidity != fval)
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1317 syslog(LOG_NOTICE, "Simulator %s room hunidity %.1f to %.1f", simulator->uuid, simulator->room_humidity, fval);
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1318 simulator->room_humidity = fval;
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1319 }
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1320
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1321 } else if (strcmp(kwd, (char *)"AIR_TEMPERATURE") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1322 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1323 if (simulator->air_temperature != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1324 syslog(LOG_NOTICE, "Simulator %s air temperature %.1f to %.1f", simulator->uuid, simulator->air_temperature, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1325 simulator->air_temperature = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1326 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1327
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1328 } else if (strcmp(kwd, (char *)"AIR_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1329 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1330 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1331 if (simulator->air_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1332 syslog(LOG_NOTICE, "Simulator %s air_present %s to %s", simulator->uuid, DEVPRESENT[simulator->air_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1333 simulator->air_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1334 device_present(simulator->air_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1335 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1336 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1337 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1338
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1339 } else if (strcmp(kwd, (char *)"BEER_TEMPERATURE") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1340 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1341 if (simulator->beer_temperature != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1342 syslog(LOG_NOTICE, "Simulator %s beer temperature %.1f to %.1f", simulator->uuid, simulator->beer_temperature, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1343 simulator->beer_temperature = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1344 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1345
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1346 } else if (strcmp(kwd, (char *)"BEER_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1347 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1348 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1349 if (simulator->beer_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1350 syslog(LOG_NOTICE, "Simulator %s beer_present %s to %s", simulator->uuid, DEVPRESENT[simulator->beer_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1351 simulator->beer_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1352 device_present(simulator->beer_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1353 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1354 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1355 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1356
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1357 } else if (strcmp(kwd, (char *)"BEER_TEMPERATURE2") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1358 if (sscanf(val, "%f", &fval) == 1) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1359 if (simulator->beer_temperature2 != fval)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1360 syslog(LOG_NOTICE, "Simulator %s beer temperature2 %.1f to %.1f", simulator->uuid, simulator->beer_temperature2, fval);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1361 simulator->beer_temperature2 = fval;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1362 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1363
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1364 } else if (strcmp(kwd, (char *)"BEER_PRESENT2") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1365 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1366 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1367 if (simulator->beer_present2 != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1368 syslog(LOG_NOTICE, "Simulator %s beer_present2 %s to %s", simulator->uuid, DEVPRESENT[simulator->beer_present2], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1369 simulator->beer_present2 = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1370 device_present(simulator->beer_address2, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1371 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1372 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1373 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1374
553
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1375 } else if (strcmp(kwd, (char *)"CHILLER_TEMPERATURE") == 0) {
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1376 if (sscanf(val, "%f", &fval) == 1) {
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1377 if (simulator->chiller_temperature != fval)
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1378 syslog(LOG_NOTICE, "Simulator %s chiller temperature %.1f to %.1f", simulator->uuid, simulator->chiller_temperature, fval);
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1379 simulator->chiller_temperature = fval;
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1380 }
4091d4fe217f Updated simulator with more simulated devices.
Michiel Broek <mbroek@mbse.eu>
parents: 545
diff changeset
1381
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1382 } else if (strcmp(kwd, (char *)"CHILLER_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1383 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1384 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1385 if (simulator->chiller_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1386 syslog(LOG_NOTICE, "Simulator %s chiller_present %s to %s", simulator->uuid, DEVPRESENT[simulator->chiller_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1387 simulator->chiller_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1388 device_present(simulator->chiller_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1389 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1390 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1391 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1392
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1393 } else if (strcmp(kwd, (char *)"COOLER_TEMP") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1394 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1395 if (simulator->cooler_temp != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1396 syslog(LOG_NOTICE, "Simulator %s cooler temperature %.1f to %.1f", simulator->uuid, simulator->cooler_temp, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1397 simulator->cooler_temp = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1398 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1399
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1400 } else if (strcmp(kwd, (char *)"COOLER_TIME") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1401 if (sscanf(val, "%d", &ival) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1402 if (simulator->cooler_time != ival)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1403 syslog(LOG_NOTICE, "Simulator %s cooler time %d to %d", simulator->uuid, simulator->cooler_time, ival);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1404 simulator->cooler_time = ival;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1405 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1406
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1407 } else if (strcmp(kwd, (char *)"COOLER_SIZE") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1408 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1409 if (simulator->cooler_size != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1410 syslog(LOG_NOTICE, "Simulator %s cooler size %.1f to %.1f", simulator->uuid, simulator->cooler_size, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1411 simulator->cooler_size = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1412 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1413
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1414 } else if (strcmp(kwd, (char *)"COOLER_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1415 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1416 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1417 if (simulator->cooler_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1418 syslog(LOG_NOTICE, "Simulator %s cooler_present %s to %s", simulator->uuid, DEVPRESENT[simulator->cooler_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1419 simulator->cooler_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1420 device_present(simulator->cooler_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1421 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1422 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1423 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1424
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1425 } else if (strcmp(kwd, (char *)"COOLER_POWER") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1426 if (sscanf(val, "%d", &ival) == 1) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1427 if (simulator->cooler_power != ival)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1428 syslog(LOG_NOTICE, "Simulator %s cooler power %d to %d", simulator->uuid, simulator->cooler_power, ival);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1429 simulator->cooler_power = ival;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1430 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1431
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1432 } else if (strcmp(kwd, (char *)"HEATER_TEMP") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1433 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1434 if (simulator->heater_temp != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1435 syslog(LOG_NOTICE, "Simulator %s heater temperature %.1f to %.1f", simulator->uuid, simulator->heater_temp, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1436 simulator->heater_temp = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1437 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1438
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1439 } else if (strcmp(kwd, (char *)"HEATER_TIME") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1440 if (sscanf(val, "%d", &ival) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1441 if (simulator->heater_time != ival)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1442 syslog(LOG_NOTICE, "Simulator %s heater time %d to %d", simulator->uuid, simulator->heater_time, ival);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1443 simulator->heater_time = ival;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1444 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1445
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1446 } else if (strcmp(kwd, (char *)"HEATER_SIZE") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1447 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1448 if (simulator->heater_size != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1449 syslog(LOG_NOTICE, "Simulator %s heater size %.1f to %.1f", simulator->uuid, simulator->heater_size, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1450 simulator->heater_size = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1451 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1452
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1453 } else if (strcmp(kwd, (char *)"HEATER_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1454 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1455 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1456 if (simulator->heater_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1457 syslog(LOG_NOTICE, "Simulator %s heater_present %s to %s", simulator->uuid, DEVPRESENT[simulator->heater_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1458 simulator->heater_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1459 device_present(simulator->heater_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1460 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1461 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1462 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1463
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1464 } else if (strcmp(kwd, (char *)"HEATER_POWER") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1465 if (sscanf(val, "%d", &ival) == 1) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1466 if (simulator->heater_power != ival)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1467 syslog(LOG_NOTICE, "Simulator %s heater power %d to %d", simulator->uuid, simulator->heater_power, ival);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1468 simulator->heater_power = ival;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1469 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1470
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1471 } else if (strcmp(kwd, (char *)"FAN_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1472 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1473 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1474 if (simulator->fan_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1475 syslog(LOG_NOTICE, "Simulator %s fan_present %s to %s", simulator->uuid, DEVPRESENT[simulator->fan_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1476 simulator->fan_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1477 device_present(simulator->fan_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1478 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1479 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1480 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1481
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1482 } else if (strcmp(kwd, (char *)"FAN_POWER") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1483 if (sscanf(val, "%d", &ival) == 1) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1484 if (simulator->fan_power != ival)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1485 syslog(LOG_NOTICE, "Simulator %s fan power %d to %d", simulator->uuid, simulator->fan_power, ival);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1486 simulator->fan_power = ival;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1487 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1488
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1489 } else if (strcmp(kwd, (char *)"LIGHT_PRESENT") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1490 for (i = 0; i < 4; i++) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1491 if (strcmp(val, DEVPRESENT[i]) == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1492 if (simulator->light_present != i)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1493 syslog(LOG_NOTICE, "Simulator %s light_present %s to %s", simulator->uuid, DEVPRESENT[simulator->light_present], DEVPRESENT[i]);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1494 simulator->light_present = i;
715
f5d85af156ab Added device_present() function to easy update device present from one-wire and simulator devices. When a simulator temperature sensor present is changed, the device table is changed too. Controlling simulator relays is now for each simulator. The simulator runs under the state machine. If something changed in the running simulator, all data is broadcasted over websocket. Completed the web editor.
Michiel Broek <mbroek@mbse.eu>
parents: 714
diff changeset
1495 device_present(simulator->light_address, i);
714
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1496 break;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1497 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1498 }
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1499
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1500 } else if (strcmp(kwd, (char *)"LIGHT_POWER") == 0) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1501 if (sscanf(val, "%d", &ival) == 1) {
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1502 if (simulator->fan_power != ival)
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1503 syslog(LOG_NOTICE, "Simulator %s light power %d to %d", simulator->uuid, simulator->light_power, ival);
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1504 simulator->light_power = ival;
24749c296a50 Version 0.9.19b2. Simulator redesign and it is now possible to run more then one simulator. All simulated devices have address names that include the simulator number. Added the setup screen for the most part. Not compatible with previous versions if a simulator was used, delete all simulators and simulated devices during stop and start.
Michiel Broek <mbroek@mbse.eu>
parents: 708
diff changeset
1505 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1506
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1507 } else if (strcmp(kwd, (char *)"DOOR_PRESENT") == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1508 for (i = 0; i < 4; i++) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1509 if (strcmp(val, DEVPRESENT[i]) == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1510 if (simulator->door_present != i)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1511 syslog(LOG_NOTICE, "Simulator %s door_present %s to %s", simulator->uuid, DEVPRESENT[simulator->door_present], DEVPRESENT[i]);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1512 simulator->door_present = i;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1513 device_present(simulator->door_address, i);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1514 break;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1515 }
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1516 }
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1517
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1518 } else if (strcmp(kwd, (char *)"DOOR_VALUE") == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1519 ival = (strcmp(val, (char *)"true")) ? 0:1;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1520 if (simulator->door_value != ival)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1521 syslog(LOG_NOTICE, "Simulator %s door value %d to %d", simulator->uuid, simulator->door_value, ival);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1522 simulator->door_value = ival;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1523
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1524 } else if (strcmp(kwd, (char *)"PSU_PRESENT") == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1525 for (i = 0; i < 4; i++) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1526 if (strcmp(val, DEVPRESENT[i]) == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1527 if (simulator->psu_present != i)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1528 syslog(LOG_NOTICE, "Simulator %s psu_present %s to %s", simulator->uuid, DEVPRESENT[simulator->psu_present], DEVPRESENT[i]);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1529 simulator->psu_present = i;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1530 device_present(simulator->psu_address, i);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1531 break;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1532 }
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1533 }
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1534
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1535 } else if (strcmp(kwd, (char *)"PSU_VALUE") == 0) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1536 ival = (strcmp(val, (char *)"true")) ? 0:1;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1537 if (simulator->psu_value != ival)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1538 syslog(LOG_NOTICE, "Simulator %s psu value %d to %d", simulator->uuid, simulator->psu_value, ival);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1539 simulator->psu_value = ival;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
1540
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1541 } else if (strcmp(kwd, (char *)"FRIGO_ISOLATION") == 0) {
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1542 if (sscanf(val, "%f", &fval) == 1) {
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1543 if (simulator->frigo_isolation != fval)
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1544 syslog(LOG_NOTICE, "Simulator %s frigo isolation %.1f to %.1f", simulator->uuid, simulator->frigo_isolation, fval);
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1545 simulator->frigo_isolation = fval;
281
12a5dbbfd0e3 SIMULATOR PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 280
diff changeset
1546 }
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1547
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1548 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1549 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1550 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1551 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1552 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1553 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1554 srv_send(s, (char *)"440 No such simulator");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1555 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1556 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1557
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1558 srv_send(s, (char *)"504 Subcommand error");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1559 return 0;
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1560 }
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1561 #endif
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1562
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1563
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
1564
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: 174
diff changeset
1565 int delete_Unit(char *uuid)
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: 174
diff changeset
1566 {
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: 174
diff changeset
1567 units_list *current = Config.units;
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: 174
diff changeset
1568 units_list *previous = NULL;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1569 prof_step *step, *olds;
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: 174
diff changeset
1570
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: 174
diff changeset
1571 while (current) {
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: 174
diff changeset
1572 if (strcmp(current->uuid, uuid) == 0) {
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: 174
diff changeset
1573 if (previous == NULL) {
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: 174
diff changeset
1574 Config.units = current->next;
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: 174
diff changeset
1575 free(current->uuid);
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: 174
diff changeset
1576 current->uuid = NULL;
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1577 if (current->product_uuid)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1578 free(current->product_uuid);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1579 current->product_uuid = NULL;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1580 if (current->product_code)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1581 free(current->product_code);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1582 current->product_code = NULL;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1583 if (current->product_name)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1584 free(current->product_name);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1585 current->product_name = NULL;
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: 174
diff changeset
1586 if (current->air_address)
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: 174
diff changeset
1587 free(current->air_address);
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: 174
diff changeset
1588 current->air_address = NULL;
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: 174
diff changeset
1589 if (current->beer_address)
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: 174
diff changeset
1590 free(current->beer_address);
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: 174
diff changeset
1591 current->beer_address = NULL;
614
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1592 if (current->beer_address2)
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1593 free(current->beer_address2);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1594 current->beer_address2 = NULL;
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1595 if (current->chiller_address)
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1596 free(current->chiller_address);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1597 current->chiller_address = NULL;
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: 174
diff changeset
1598 if (current->heater_address)
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: 174
diff changeset
1599 free(current->heater_address);
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: 174
diff changeset
1600 current->heater_address = NULL;
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: 174
diff changeset
1601 if (current->cooler_address)
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: 174
diff changeset
1602 free(current->cooler_address);
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: 174
diff changeset
1603 current->cooler_address = NULL;
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: 174
diff changeset
1604 if (current->fan_address)
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: 174
diff changeset
1605 free(current->fan_address);
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: 174
diff changeset
1606 current->fan_address = NULL;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1607 if (current->light_address)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1608 free(current->light_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1609 current->light_address = NULL;
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: 174
diff changeset
1610 if (current->door_address)
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: 174
diff changeset
1611 free(current->door_address);
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: 174
diff changeset
1612 current->door_address = NULL;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1613 if (current->psu_address)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1614 free(current->psu_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1615 current->psu_address = NULL;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1616 if (current->profile_uuid)
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1617 free(current->profile_uuid);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1618 current->profile_uuid = NULL;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1619 if (current->profile_name)
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1620 free(current->profile_name);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1621 current->profile_name = NULL;
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1622 if (current->PID_cool)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1623 free(current->PID_cool);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1624 current->PID_cool = NULL;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1625 if (current->PID_heat)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1626 free(current->PID_heat);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1627 current->PID_heat = NULL;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1628 if (current->profile_steps) {
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1629 for (step = current->profile_steps; step; step = olds) {
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1630 olds = step->next;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1631 free(step);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1632 }
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1633 current->profile_steps = NULL;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1634 }
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: 174
diff changeset
1635 free(current);
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: 174
diff changeset
1636 return 1;
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: 174
diff changeset
1637 } else {
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: 174
diff changeset
1638 free(current->uuid);
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: 174
diff changeset
1639 current->uuid = NULL;
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1640 if (current->product_uuid)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1641 free(current->product_uuid);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1642 current->product_uuid = NULL;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1643 if (current->product_code)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1644 free(current->product_code);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1645 current->product_code = NULL;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1646 if (current->product_name)
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1647 free(current->product_name);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1648 current->product_name = NULL;
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: 174
diff changeset
1649 if (current->air_address)
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: 174
diff changeset
1650 free(current->air_address);
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: 174
diff changeset
1651 current->air_address = NULL;
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: 174
diff changeset
1652 if (current->beer_address)
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: 174
diff changeset
1653 free(current->beer_address);
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: 174
diff changeset
1654 current->beer_address = NULL;
614
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1655 if (current->beer_address2)
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1656 free(current->beer_address2);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1657 current->beer_address2 = NULL;
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1658 if (current->chiller_address)
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1659 free(current->chiller_address);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1660 current->chiller_address = NULL;
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: 174
diff changeset
1661 if (current->heater_address)
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: 174
diff changeset
1662 free(current->heater_address);
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: 174
diff changeset
1663 current->heater_address = NULL;
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: 174
diff changeset
1664 if (current->cooler_address)
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: 174
diff changeset
1665 free(current->cooler_address);
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: 174
diff changeset
1666 current->cooler_address = NULL;
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: 174
diff changeset
1667 if (current->fan_address)
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: 174
diff changeset
1668 free(current->fan_address);
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: 174
diff changeset
1669 current->fan_address = NULL;
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: 174
diff changeset
1670 if (current->door_address)
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: 174
diff changeset
1671 free(current->door_address);
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: 174
diff changeset
1672 current->door_address = NULL;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1673 if (current->light_address)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1674 free(current->light_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1675 current->light_address = NULL;
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1676 if (current->psu_address)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1677 free(current->psu_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1678 current->psu_address = NULL;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1679 if (current->profile_uuid)
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1680 free(current->profile_uuid);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1681 current->profile_uuid = NULL;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1682 if (current->profile_name)
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1683 free(current->profile_name);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1684 current->profile_name = NULL;
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1685 if (current->PID_cool)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1686 free(current->PID_cool);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1687 current->PID_cool = NULL;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1688 if (current->PID_heat)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1689 free(current->PID_heat);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1690 current->PID_heat = NULL;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1691 if (current->profile_steps) {
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1692 for (step = current->profile_steps; step; step = olds) {
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1693 olds = step->next;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1694 free(step);
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1695 }
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1696 current->profile_steps = NULL;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1697 }
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1698 previous->next = current->next;
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: 174
diff changeset
1699 free(current);
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: 174
diff changeset
1700 current = previous->next;
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: 174
diff changeset
1701 return 1;
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: 174
diff changeset
1702 }
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: 174
diff changeset
1703 } else {
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: 174
diff changeset
1704 previous = current;
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: 174
diff changeset
1705 current = current->next;
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: 174
diff changeset
1706 }
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: 174
diff changeset
1707 }
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: 174
diff changeset
1708 return 0;
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: 174
diff changeset
1709 }
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: 174
diff changeset
1710
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: 174
diff changeset
1711
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: 174
diff changeset
1712
88
12259362595b Added SET commands
Michiel Broek <mbroek@mbse.eu>
parents: 87
diff changeset
1713 /*
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: 174
diff changeset
1714 * UNIT ADD name
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: 174
diff changeset
1715 * UNIT DEL uuid
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: 174
diff changeset
1716 * UNIT LIST
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: 174
diff changeset
1717 * UNIT GET uuid
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: 174
diff changeset
1718 * UNIT PUT uuid
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1719 */
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1720 int cmd_unit(int s, char *buf)
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1721 {
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: 174
diff changeset
1722 char *opt, *param = NULL, *kwd, *val, ibuf[SS_BUFSIZE];
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: 174
diff changeset
1723 units_list *unit, *tmpu;
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: 174
diff changeset
1724 uuid_t uu;
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1725 int ival, i, rc, rlen;
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: 174
diff changeset
1726 float fval;
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1727
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1728 opt = strtok(buf, " \0");
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1729 opt = strtok(NULL, " \0");
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1730
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1731 if (opt == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1732 srv_send(s, (char *)"501 Subcommand missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1733 return 0;
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1734 }
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: 174
diff changeset
1735 param = strtok(NULL, "\0");
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
1736
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1737 if (strcmp(opt, (char *)"HELP") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1738 srv_send(s, (char *)"100 Help text follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1739 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1740 srv_send(s, (char *)"UNIT ADD name Add a new Unit with name");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1741 srv_send(s, (char *)"UNIT DEL uuid Delete Unit by uuid");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1742 srv_send(s, (char *)"UNIT LIST List all Units");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1743 srv_send(s, (char *)"UNIT GET uuid Get Unit record by uuid");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1744 srv_send(s, (char *)"UNIT PUT uuid Put Unit record by uuid");
677
c867eb3f7fc1 Server json unit data list added
Michiel Broek <mbroek@mbse.eu>
parents: 676
diff changeset
1745 srv_send(s, (char *)"UNIT JSON uuid Get Unit record in json");
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1746 srv_send(s, (char *)".");
380
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1747 return 0;
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1748 }
75afd21885f2 Help screens for the commands are moved into the commands.
Michiel Broek <mbroek@mbse.eu>
parents: 369
diff changeset
1749
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: 174
diff changeset
1750 if ((strcmp(opt, (char *)"LIST") == 0) && (param == NULL)) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1751 srv_send(s, (char *)"212 Fermenter list follows:");
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: 174
diff changeset
1752 for (unit = Config.units; unit; unit = unit->next) {
566
776a605befa5 Added Carbonation stage.
Michiel Broek <mbroek@mbse.eu>
parents: 564
diff changeset
1753 if (strlen(unit->product_code) && strlen(unit->product_name)) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1754 srv_send(s, (char *)"%s,%s %s,%s", unit->uuid, unit->product_code, unit->product_name, UNITMODE[unit->mode]);
566
776a605befa5 Added Carbonation stage.
Michiel Broek <mbroek@mbse.eu>
parents: 564
diff changeset
1755 } else {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1756 srv_send(s, (char *)"%s,%s,%s", unit->uuid, unit->alias, UNITMODE[unit->mode]);
566
776a605befa5 Added Carbonation stage.
Michiel Broek <mbroek@mbse.eu>
parents: 564
diff changeset
1757 }
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: 174
diff changeset
1758 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1759 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1760 return 0;
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: 174
diff changeset
1761 }
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: 174
diff changeset
1762
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1763 if (strcmp(opt, (char *)"JSON") == 0) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1764 char *payload = NULL, *payloadu = NULL;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1765 bool comma = false;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1766
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1767 if (param == NULL) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1768 srv_send(s, (char *)"212 Units json list follows:");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1769 payload = xstrcpy((char *)"[");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1770 for (unit = Config.units; unit; unit = unit->next) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1771 if (comma)
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1772 payload = xstrcat(payload, (char *)",");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1773 payloadu = unit_data(unit, true);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1774 payload = xstrcat(payload, payloadu);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1775 comma = true;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1776 free(payloadu);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1777 payloadu = NULL;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1778 }
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1779 payload = xstrcat(payload, (char *)"]");
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
1780 large_send(s, payload);
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1781 srv_send(s, (char *)".");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1782 free(payload);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1783 payload = NULL;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1784 return 0;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1785 } else {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1786 for (unit = Config.units; unit; unit = unit->next) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1787 if (strcmp(param, unit->uuid) == 0) {
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1788 srv_send(s, (char *)"213 Unit json data follows:");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1789 payload = xstrcpy((char *)"{\"type\":\"fermenter\",\"unit\":\"");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1790 payload = xstrcat(payload, unit->alias);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1791 payload = xstrcat(payload, (char *)"\",\"metric\":");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1792 payloadu = unit_data(unit, false);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1793 payload = xstrcat(payload, payloadu);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1794 payload = xstrcat(payload, (char *)"}");
706
50d9a25aba86 Possible fix for large sockets messages.
Michiel Broek <mbroek@mbse.eu>
parents: 703
diff changeset
1795 large_send(s, payload);
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1796 free(payload);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1797 free(payloadu);
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1798 payload = payloadu = NULL;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1799 srv_send(s, (char *)".");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1800 return 0;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1801 }
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1802 }
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1803 srv_send(s, (char *)"440 No such unit");
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1804 return 0;
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1805 }
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1806 }
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1807
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: 174
diff changeset
1808 if (param == NULL) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1809 srv_send(s, (char *)"502 Parameter missing");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1810 return 0;
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: 174
diff changeset
1811 }
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: 174
diff changeset
1812
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: 174
diff changeset
1813 if (strcmp(opt, (char *)"ADD") == 0) {
500
5aa914eb644e Units now have an unique alias name so that the MQTT messages are more friendly.
Michiel Broek <mbroek@mbse.eu>
parents: 499
diff changeset
1814 char an[128];
5aa914eb644e Units now have an unique alias name so that the MQTT messages are more friendly.
Michiel Broek <mbroek@mbse.eu>
parents: 499
diff changeset
1815
5aa914eb644e Units now have an unique alias name so that the MQTT messages are more friendly.
Michiel Broek <mbroek@mbse.eu>
parents: 499
diff changeset
1816 sprintf(an, "unit%d", Config.next_unit);
5aa914eb644e Units now have an unique alias name so that the MQTT messages are more friendly.
Michiel Broek <mbroek@mbse.eu>
parents: 499
diff changeset
1817 Config.next_unit++;
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: 174
diff changeset
1818 unit = (units_list *)malloc(sizeof(units_list));
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: 174
diff changeset
1819 unit->next = NULL;
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: 174
diff changeset
1820 unit->uuid = malloc(37);
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: 174
diff changeset
1821 uuid_generate(uu);
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: 174
diff changeset
1822 uuid_unparse(uu, unit->uuid);
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1823 unit->product_uuid = NULL;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1824 unit->product_code = xstrcpy((char *)"FAKE0000");
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
1825 unit->product_name = xstrcpy(param);
717
22dd7ab614e5 Add new fermenter adds dummy yeast temperatures. Periodic thermferm unit logging adds the unit alias name. Added Green LED hide color. Moved getglobal.php to dbglobal.php. Adjusted several record types in global and fermenter javascript records so there is less guesswork. Only display control leds and switches for defined equipment.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
1826 unit->yeast_lo = 17.0;
22dd7ab614e5 Add new fermenter adds dummy yeast temperatures. Periodic thermferm unit logging adds the unit alias name. Added Green LED hide color. Moved getglobal.php to dbglobal.php. Adjusted several record types in global and fermenter javascript records so there is less guesswork. Only display control leds and switches for defined equipment.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
1827 unit->yeast_hi = 24.0;
500
5aa914eb644e Units now have an unique alias name so that the MQTT messages are more friendly.
Michiel Broek <mbroek@mbse.eu>
parents: 499
diff changeset
1828 unit->alias = xstrcpy(an);
614
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
1829 unit->air_address = unit->beer_address = unit->beer_address2 = unit->chiller_address = unit->heater_address = unit->cooler_address = \
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1830 unit->fan_address = unit->door_address = unit->light_address = \
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1831 unit->psu_address = unit->profile_uuid = unit->profile_name = NULL;
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1832 unit->air_idx = unit->beer_idx = unit->chiller_idx = unit->heater_idx = unit->cooler_idx = unit->fan_idx = \
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1833 unit->door_idx = unit->light_idx = unit->psu_idx = unit->profile_fridge_mode = \
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1834 unit->profile_duration = unit->profile_totalsteps = 0;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1835 unit->profile_steps = NULL;
702
d77891f8915d Drop fermenter volume setting.
Michiel Broek <mbroek@mbse.eu>
parents: 699
diff changeset
1836 unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1837 unit->air_state = unit->beer_state = unit->chiller_state = DEVPRESENT_NO;
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
1838 unit->air_temperature = unit->beer_temperature = unit->chiller_temperature = 20000;
578
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
1839 unit->beer_set_lo = unit->beer_set_hi = unit->fridge_set_lo = unit->fridge_set_hi = unit->profile_inittemp_lo = unit->profile_inittemp_hi =20.0;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1840 unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->mode = \
582
ba340e00aab2 Version 0.9.5, interior lights are now only controlled by the open door or a 5 minutes timer. The timer is started via an MQTT command. The BMS web application sends this command just before a webcam page is requested.
Chiel Broek <mbse@mbse.eu>
parents: 578
diff changeset
1841 unit->light_state = unit->light_timer = unit->psu_state = unit->prof_state = unit->stage = 0;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1842 unit->heater_delay = unit->cooler_delay = unit->fan_delay = 20; /* 5 minutes delay */
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1843 unit->light_delay = 1; /* 15 seconds delay */
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1844 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0;
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
1845 unit->heater_usage = unit->cooler_usage = unit->fan_usage = unit->light_usage = 0;
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: 174
diff changeset
1846 unit->temp_set_min = 1.0;
604
e2766e538d0e Version 0.9.7. Increased the maximum fermentation temperature to 45 degrees to allow Kveik fermentations.
Michiel Broek <mbroek@mbse.eu>
parents: 599
diff changeset
1847 unit->temp_set_max = 45.0;
289
d810df0df36a Added code to detect primary fermentation
Michiel Broek <mbroek@mbse.eu>
parents: 285
diff changeset
1848 unit->prof_started = unit->prof_paused = unit->prof_primary_done = (time_t)0;
284
9e6fb5aed618 Profile progress is visible in the web interface
Michiel Broek <mbroek@mbse.eu>
parents: 282
diff changeset
1849 unit->prof_percent = 0;
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1850 unit->PID_cool = (pid_var *)malloc(sizeof(pid_var));
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1851 unit->PID_heat = (pid_var *)malloc(sizeof(pid_var));
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1852 InitPID(unit->PID_cool, PID_TYPE_COOL);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1853 InitPID(unit->PID_heat, PID_TYPE_HEAT);
703
344470c6bb1c Fermenter editor layout is ready. Load record done. Add and Delete a new fermenter is done.
Michiel Broek <mbroek@mbse.eu>
parents: 702
diff changeset
1854 unit->PID_heat->pGain = unit->PID_cool->pGain = 5000.0;
344470c6bb1c Fermenter editor layout is ready. Load record done. Add and Delete a new fermenter is done.
Michiel Broek <mbroek@mbse.eu>
parents: 702
diff changeset
1855 unit->PID_heat->iGain = unit->PID_cool->iGain = 25.0;
344470c6bb1c Fermenter editor layout is ready. Load record done. Add and Delete a new fermenter is done.
Michiel Broek <mbroek@mbse.eu>
parents: 702
diff changeset
1856 unit->PID_heat->dGain = unit->PID_cool->dGain = 5.0;
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: 174
diff changeset
1857
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1858 /*
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1859 * Block main process
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1860 */
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1861 run_pause = TRUE;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1862 for (;;) {
652
16d3d4b58b5b Moved all delay functions into a new general file.
Michiel Broek <mbroek@mbse.eu>
parents: 646
diff changeset
1863 mDelay(100);
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1864 if (run_hold)
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1865 break;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1866 }
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1867
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: 174
diff changeset
1868 if (Config.units == NULL) {
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: 174
diff changeset
1869 Config.units = unit;
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: 174
diff changeset
1870 } else {
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: 174
diff changeset
1871 for (tmpu = Config.units; tmpu; tmpu = tmpu->next) {
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: 174
diff changeset
1872 if (tmpu->next == NULL) {
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: 174
diff changeset
1873 tmpu->next = unit;
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: 174
diff changeset
1874 break;
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: 174
diff changeset
1875 }
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: 174
diff changeset
1876 }
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: 174
diff changeset
1877 }
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1878 lcd_buf_reset();
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1879 run_pause = FALSE;
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: 174
diff changeset
1880
213
2317b8d644fa Code cleanup, streamlined error messages.
Michiel Broek <mbroek@mbse.eu>
parents: 209
diff changeset
1881 syslog(LOG_NOTICE, "Unit %s added", unit->uuid);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1882 srv_send(s, (char *)"211 Unit %s added", unit->uuid);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1883 return 1;
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: 174
diff changeset
1884 }
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: 174
diff changeset
1885
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: 174
diff changeset
1886 if (strcmp(opt, (char *)"DEL") == 0) {
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1887 /*
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1888 * Block main process.
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1889 */
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1890 run_pause = TRUE;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1891 for (;;) {
652
16d3d4b58b5b Moved all delay functions into a new general file.
Michiel Broek <mbroek@mbse.eu>
parents: 646
diff changeset
1892 mDelay(100);
245
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1893 if (run_hold)
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1894 break;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1895 }
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1896
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1897 rc = delete_Unit(param);
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1898 lcd_buf_reset();
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1899 run_pause = FALSE;
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1900
b01b6238eb67 You can now safely add and remove units on a running system.
Michiel Broek <mbroek@mbse.eu>
parents: 240
diff changeset
1901 if (rc) {
213
2317b8d644fa Code cleanup, streamlined error messages.
Michiel Broek <mbroek@mbse.eu>
parents: 209
diff changeset
1902 syslog(LOG_NOTICE, "Unit %s deleted", param);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1903 srv_send(s, (char *)"211 Unit %s deleted", param);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1904 return 1;
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: 174
diff changeset
1905 } else {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1906 srv_send(s, (char *)"440 No such unit");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
1907 return 0;
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: 174
diff changeset
1908 }
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: 174
diff changeset
1909 }
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: 174
diff changeset
1910
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: 174
diff changeset
1911 if (strcmp(opt, (char *)"GET") == 0) {
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: 174
diff changeset
1912 for (unit = Config.units; unit; unit = unit->next) {
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: 174
diff changeset
1913 if (strcmp(param, unit->uuid) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1914 srv_send(s, (char *)"213 Unit listing follows:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1915 srv_send(s, (char *)"UUID,%s", unit->uuid);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1916 srv_send(s, (char *)"ALIAS,%s", unit->alias);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1917 srv_send(s, (char *)"PRODUCT_NAME,%s", unit->product_name);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1918 srv_send(s, (char *)"PRODUCT_CODE,%s", unit->product_code);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1919 srv_send(s, (char *)"MODE,%s", UNITMODE[unit->mode]);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1920 srv_send(s, (char *)"STAGE,%s", UNITSTAGE[unit->stage]);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1921 srv_send(s, (char *)"AIR_ADDRESS,%s", unit->air_address);
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1922 srv_send(s, (char *)"AIR_STATE,%s", DEVPRESENT[unit->air_state]);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1923 srv_send(s, (char *)"AIR_TEMPERATURE,%.3f", unit->air_temperature / 1000.0);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1924 srv_send(s, (char *)"AIR_IDX,%d", unit->air_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1925 srv_send(s, (char *)"BEER_ADDRESS,%s", MBSE_SS(unit->beer_address));
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1926 srv_send(s, (char *)"BEER_ADDRESS2,%s", MBSE_SS(unit->beer_address2));
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1927 srv_send(s, (char *)"BEER_STATE,%s", DEVPRESENT[unit->beer_state]);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1928 srv_send(s, (char *)"BEER_TEMPERATURE,%.3f", unit->beer_temperature / 1000.0);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1929 srv_send(s, (char *)"BEER_IDX,%d", unit->beer_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1930 srv_send(s, (char *)"CHILLER_ADDRESS,%s", MBSE_SS(unit->chiller_address));
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
1931 srv_send(s, (char *)"CHILLER_STATE,%s", DEVPRESENT[unit->chiller_state]);
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1932 srv_send(s, (char *)"CHILLER_TEMPERATURE,%.3f", unit->chiller_temperature / 1000.0);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1933 srv_send(s, (char *)"CHILLER_IDX,%d", unit->chiller_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1934 srv_send(s, (char *)"HEATER_ADDRESS,%s", unit->heater_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1935 srv_send(s, (char *)"HEATER_STATE,%d", unit->heater_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1936 srv_send(s, (char *)"HEATER_DELAY,%d", unit->heater_delay);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1937 srv_send(s, (char *)"HEATER_USAGE,%d", unit->heater_usage);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1938 srv_send(s, (char *)"HEATER_IDX,%d", unit->heater_idx);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1939 if (unit->PID_heat) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1940 srv_send(s, (char *)"PIDH_IMAX,%.1f", unit->PID_heat->iMax);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1941 srv_send(s, (char *)"PIDH_IDLERANGE,%.2f", unit->PID_heat->idleRange);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1942 srv_send(s, (char *)"PIDH_PGAIN,%.3f", unit->PID_heat->pGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1943 srv_send(s, (char *)"PIDH_IGAIN,%.3f", unit->PID_heat->iGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1944 srv_send(s, (char *)"PIDH_DGAIN,%.3f", unit->PID_heat->dGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1945 srv_send(s, (char *)"PIDH_SV,%.2f", unit->PID_heat->SetP);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1946 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1947 srv_send(s, (char *)"COOLER_ADDRESS,%s", unit->cooler_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1948 srv_send(s, (char *)"COOLER_STATE,%d", unit->cooler_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1949 srv_send(s, (char *)"COOLER_DELAY,%d", unit->cooler_delay);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1950 srv_send(s, (char *)"COOLER_USAGE,%d", unit->cooler_usage);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1951 srv_send(s, (char *)"COOLER_IDX,%d", unit->cooler_idx);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1952 if (unit->PID_cool) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1953 srv_send(s, (char *)"PIDC_IMAX,%.1f", unit->PID_cool->iMax);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1954 srv_send(s, (char *)"PIDC_IDLERANGE,%.2f", unit->PID_cool->idleRange);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1955 srv_send(s, (char *)"PIDC_PGAIN,%.3f", unit->PID_cool->pGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1956 srv_send(s, (char *)"PIDC_IGAIN,%.3f", unit->PID_cool->iGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1957 srv_send(s, (char *)"PIDC_DGAIN,%.3f", unit->PID_cool->dGain);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1958 srv_send(s, (char *)"PIDC_SV,%.2f", unit->PID_cool->SetP);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
1959 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1960 srv_send(s, (char *)"FAN_ADDRESS,%s", unit->fan_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1961 srv_send(s, (char *)"FAN_STATE,%d", unit->fan_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1962 srv_send(s, (char *)"FAN_DELAY,%d", unit->fan_delay);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1963 srv_send(s, (char *)"FAN_USAGE,%d", unit->fan_usage);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1964 srv_send(s, (char *)"FAN_IDX,%d", unit->fan_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1965 srv_send(s, (char *)"LIGHT_ADDRESS,%s", unit->light_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1966 srv_send(s, (char *)"LIGHT_STATE,%d", unit->light_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1967 srv_send(s, (char *)"LIGHT_DELAY,%d", unit->light_delay);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1968 srv_send(s, (char *)"LIGHT_USAGE,%d", unit->light_usage);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1969 srv_send(s, (char *)"LIGHT_IDX,%d", unit->light_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1970 srv_send(s, (char *)"DOOR_ADDRESS,%s", unit->door_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1971 srv_send(s, (char *)"DOOR_STATE,%d", unit->door_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1972 srv_send(s, (char *)"DOOR_IDX,%d", unit->door_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1973 srv_send(s, (char *)"PSU_ADDRESS,%s", unit->psu_address);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1974 srv_send(s, (char *)"PSU_STATE,%d", unit->psu_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1975 srv_send(s, (char *)"PSU_IDX,%d", unit->psu_idx);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1976 srv_send(s, (char *)"FRIDGE_SET_LO,%.1f", unit->fridge_set_lo);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1977 srv_send(s, (char *)"FRIDGE_SET_HI,%.1f", unit->fridge_set_hi);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1978 srv_send(s, (char *)"BEER_SET_LO,%.1f", unit->beer_set_lo);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1979 srv_send(s, (char *)"BEER_SET_HI,%.1f", unit->beer_set_hi);
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1980 if (unit->profile_uuid) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1981 srv_send(s, (char *)"PROFILE_UUID,%s", unit->profile_uuid);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1982 srv_send(s, (char *)"PROFILE_NAME,%s", unit->profile_name);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1983 srv_send(s, (char *)"PROFILE_INITTEMP_LO,%.1f", unit->profile_inittemp_lo);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1984 srv_send(s, (char *)"PROFILE_INITTEMP_HI,%.1f", unit->profile_inittemp_hi);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1985 srv_send(s, (char *)"PROFILE_FRIDGE_MODE,%d", unit->profile_fridge_mode);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1986 srv_send(s, (char *)"PROFILE_DURATION,%d", unit->profile_duration);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1987 srv_send(s, (char *)"PROFILE_TOTALSTEPS,%d", unit->profile_totalsteps);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1988 srv_send(s, (char *)"PROF_STARTED,%d", (int)unit->prof_started);
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1989 if (unit->prof_state == PROFILE_RUN) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1990 srv_send(s, (char *)"PROF_STATE,%s %d%%", PROFSTATE[unit->prof_state], unit->prof_percent);
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1991 } else {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1992 srv_send(s, (char *)"PROF_STATE,%s", PROFSTATE[unit->prof_state]);
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
1993 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1994 srv_send(s, (char *)"PROF_TARGET_LO,%.3f", unit->prof_target_lo);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1995 srv_send(s, (char *)"PROF_TARGET_HI,%.3f", unit->prof_target_hi);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1996 srv_send(s, (char *)"PROF_FRIDGE_MODE,%d", unit->prof_fridge_mode);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1997 srv_send(s, (char *)"PROF_PEAK_ABS,%.3f", unit->prof_peak_abs);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1998 srv_send(s, (char *)"PROF_PEAK_REL,%.3f", unit->prof_peak_rel);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
1999 srv_send(s, (char *)"PROF_PRIMARY_DONE,%d", (int)unit->prof_primary_done);
284
9e6fb5aed618 Profile progress is visible in the web interface
Michiel Broek <mbroek@mbse.eu>
parents: 282
diff changeset
2000 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2001 srv_send(s, (char *)"TEMP_SET_MIN,%.1f", unit->temp_set_min);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2002 srv_send(s, (char *)"TEMP_SET_MAX,%.1f", unit->temp_set_max);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2003 srv_send(s, (char *)"ALARM,%d", unit->alarm_flag);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2004 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2005 return 0;
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2006 }
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2007 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2008 srv_send(s, (char *)"440 No such unit");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2009 return 0;
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2010 }
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2011
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: 174
diff changeset
2012 if (strcmp(opt, (char *)"PUT") == 0) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2013 /*
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2014 * Block main process
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2015 */
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2016 run_pause = TRUE;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2017 for (;;) {
652
16d3d4b58b5b Moved all delay functions into a new general file.
Michiel Broek <mbroek@mbse.eu>
parents: 646
diff changeset
2018 mDelay(100);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2019 if (run_hold)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2020 break;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2021 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2022
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: 174
diff changeset
2023 for (unit = Config.units ; unit; unit = unit->next) {
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: 174
diff changeset
2024 if (strcmp(unit->uuid, param) == 0) {
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: 174
diff changeset
2025 while (1) {
506
cdcd07bbee30 New MQTT protocol
Michiel Broek <mbroek@mbse.eu>
parents: 504
diff changeset
2026 unit->mqtt_flag = 0;
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2027 rlen = srv_recv(s, ibuf);
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: 174
diff changeset
2028 if (rlen == -1) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2029 run_pause = FALSE;
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2030 return 0;
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: 174
diff changeset
2031 }
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: 174
diff changeset
2032 if (strlen(ibuf)) {
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: 174
diff changeset
2033 if (strcmp(ibuf, (char *)".") == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2034 srv_send(s, (char *)"219 Accepted Unit record");
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2035 run_pause = FALSE;
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2036 return 1;
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: 174
diff changeset
2037 }
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: 174
diff changeset
2038 kwd = strtok(ibuf, ",\0");
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: 174
diff changeset
2039 val = strtok(NULL, "\0");
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2040 if (kwd) {
506
cdcd07bbee30 New MQTT protocol
Michiel Broek <mbroek@mbse.eu>
parents: 504
diff changeset
2041 unit->mqtt_flag = 0;
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: 174
diff changeset
2042 /*
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: 174
diff changeset
2043 * Accept writable data. The client can sent just one line,
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: 174
diff changeset
2044 * but may also sent everything. Simply ignore things we
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: 174
diff changeset
2045 * don't understand.
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: 174
diff changeset
2046 */
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2047 if (val && (strcmp(kwd, (char *)"PRODUCT_CODE") == 0)) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2048 if (unit->product_code) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2049 if (strcmp(unit->product_code, val)) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2050 syslog(LOG_NOTICE, "Fermenter unit %s name `%s' to `%s'", unit->uuid, unit->product_code, val);
499
602d9968960f Created mqtt sourcefiles. Use flags to trigger publish messages. The main source does not know and does not care if MQTT messages will be sent. Version 0.5.5
Michiel Broek <mbroek@mbse.eu>
parents: 493
diff changeset
2051 }
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2052 free(unit->product_code);
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2053 }
554
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2054 unit->product_code = xstrcpy(val);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2055 unit->mqtt_flag |= MQTT_FLAG_DATA;
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2056
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2057 } else if (val && (strcmp(kwd, (char *)"PRODUCT_NAME") == 0)) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2058 if (unit->product_name) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2059 if (strcmp(unit->product_name, val)) {
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2060 syslog(LOG_NOTICE, "Fermenter unit %s name `%s' to `%s'", unit->uuid, unit->product_name, val);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2061 }
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2062 free(unit->product_name);
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2063 }
ab9f22ab57b5 Versie 0.8.5. Implementatie product code en product naam. Implementatie DLOG MQTT berichten. Verminderde server rotocol debug berichten.
Michiel Broek <mbroek@mbse.eu>
parents: 553
diff changeset
2064 unit->product_name = xstrcpy(val);
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2065 unit->mqtt_flag |= MQTT_FLAG_DATA;
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: 174
diff changeset
2066
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: 174
diff changeset
2067 } else if (strcmp(kwd, (char *)"AIR_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2068 if (val && unit->air_address && (strcmp(val, unit->air_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2069 syslog(LOG_NOTICE, "Fermenter unit %s air address `%s' to `%s'", unit->uuid, unit->air_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2070 if (unit->air_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2071 device_count(FALSE, unit->air_address);
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: 174
diff changeset
2072 free(unit->air_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2073 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2074 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2075 unit->air_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2076 device_count(TRUE, unit->air_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2077 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2078 unit->air_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2079 unit->mqtt_flag |= MQTT_FLAG_DATA;
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: 174
diff changeset
2080
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2081 } else if (val && (strcmp(kwd, (char *)"AIR_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2082 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2083 if (unit->air_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2084 syslog(LOG_NOTICE, "Fermenter unit %s air idx %d to %d", unit->uuid, unit->air_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2085 unit->air_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2086 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2087
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: 174
diff changeset
2088 } else if (strcmp(kwd, (char *)"BEER_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2089 if (val && unit->beer_address && (strcmp(val, unit->beer_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2090 syslog(LOG_NOTICE, "Fermenter unit %s beer address `%s' to `%s'", unit->uuid, unit->beer_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2091 if (unit->beer_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2092 device_count(FALSE, unit->beer_address);
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: 174
diff changeset
2093 free(unit->beer_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2094 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2095 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2096 unit->beer_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2097 device_count(TRUE, unit->beer_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2098 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2099 unit->beer_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2100 unit->mqtt_flag |= MQTT_FLAG_DATA;
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: 174
diff changeset
2101
614
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2102 } else if (strcmp(kwd, (char *)"BEER_ADDRESS2") == 0) {
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2103 if (val && unit->beer_address2 && (strcmp(val, unit->beer_address2)))
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2104 syslog(LOG_NOTICE, "Fermenter unit %s beer address alt `%s' to `%s'", unit->uuid, unit->beer_address2, val);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2105 if (unit->beer_address2) {
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2106 device_count(FALSE, unit->beer_address2);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2107 free(unit->beer_address2);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2108 }
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2109 if (val) {
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2110 unit->beer_address2 = xstrcpy(val);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2111 device_count(TRUE, unit->beer_address2);
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2112 } else
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2113 unit->beer_address2 = NULL;
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2114 unit->mqtt_flag |= MQTT_FLAG_DATA;
389097dc665d Version 0.9.11. Removed lcd debug message after 7 years. Added setup for alternative beer sensor. If the main sensor is gone, the alternative will be used.
Michiel Broek <mbroek@mbse.eu>
parents: 606
diff changeset
2115
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2116 } else if (val && (strcmp(kwd, (char *)"BEER_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2117 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2118 if (unit->beer_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2119 syslog(LOG_NOTICE, "Fermenter unit %s beer idx %d to %d", unit->uuid, unit->beer_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2120 unit->beer_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2121 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2122
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2123 } else if (strcmp(kwd, (char *)"CHILLER_ADDRESS") == 0) {
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2124 if (val && unit->chiller_address && (strcmp(val, unit->chiller_address)))
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2125 syslog(LOG_NOTICE, "Fermenter unit %s chiller address `%s' to `%s'", unit->uuid, unit->chiller_address, val);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2126 if (unit->chiller_address) {
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2127 device_count(FALSE, unit->chiller_address);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2128 free(unit->chiller_address);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2129 }
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2130 if (val) {
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2131 unit->chiller_address = xstrcpy(val);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2132 device_count(TRUE, unit->chiller_address);
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2133 } else
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2134 unit->chiller_address = NULL;
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2135 unit->mqtt_flag |= MQTT_FLAG_DATA;
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2136
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2137 } else if (val && (strcmp(kwd, (char *)"CHILLER_IDX") == 0)) {
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2138 if (sscanf(val, "%d", &ival) == 1) {
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2139 if (unit->chiller_idx != ival)
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2140 syslog(LOG_NOTICE, "Fermenter unit %s chiller idx %d to %d", unit->uuid, unit->chiller_idx, ival);
520
32bf084df5af Fix storing beer_idx value
Michiel Broek <mbroek@mbse.eu>
parents: 518
diff changeset
2141 unit->chiller_idx = ival;
518
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2142 }
fd36bedab944 Added chiller configuration items
Michiel Broek <mbroek@mbse.eu>
parents: 513
diff changeset
2143
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: 174
diff changeset
2144 } else if (strcmp(kwd, (char *)"HEATER_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2145 if (val && unit->heater_address && (strcmp(val, unit->heater_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2146 syslog(LOG_NOTICE, "Fermenter unit %s heater address `%s' to `%s'", unit->uuid, unit->heater_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2147 if (unit->heater_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2148 device_count(FALSE, unit->heater_address);
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: 174
diff changeset
2149 free(unit->heater_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2150 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2151 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2152 unit->heater_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2153 device_count(TRUE, unit->heater_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2154 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2155 unit->heater_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2156 unit->mqtt_flag |= MQTT_FLAG_DATA;
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2157
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2158 } else if (val && (strcmp(kwd, (char *)"HEATER_STATE") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2159 if ((sscanf(val, "%d", &ival) == 1) && ((ival == 0) || (ival == 100))) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2160 if (unit->heater_state != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2161 syslog(LOG_NOTICE, "Fermenter unit %s heater state %d to %d", unit->uuid, unit->heater_state, ival);
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2162 unit->heater_state = ival;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2163 unit->mqtt_flag |= MQTT_FLAG_DATA;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2164 }
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: 174
diff changeset
2165
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2166 } else if (val && (strcmp(kwd, (char *)"HEATER_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2167 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2168 if (unit->heater_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2169 syslog(LOG_NOTICE, "Fermenter unit %s heater idx %d to %d", unit->uuid, unit->heater_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2170 unit->heater_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2171 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2172
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2173 } else if (val && (strcmp(kwd, (char *)"HEATER_DELAY") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2174 if (sscanf(val, "%d", &ival) == 1) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2175 if (unit->heater_delay != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2176 syslog(LOG_NOTICE, "Fermenter unit %s heater delay %d to %d", unit->uuid, unit->heater_delay, ival);
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2177 unit->heater_delay = ival;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2178 }
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2179
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: 174
diff changeset
2180 } else if (strcmp(kwd, (char *)"COOLER_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2181 if (val && unit->cooler_address && (strcmp(val, unit->cooler_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2182 syslog(LOG_NOTICE, "Fermenter unit %s cooler address `%s' to `%s'", unit->uuid, unit->cooler_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2183 if (unit->cooler_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2184 device_count(FALSE, unit->cooler_address);
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: 174
diff changeset
2185 free(unit->cooler_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2186 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2187 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2188 unit->cooler_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2189 device_count(TRUE, unit->cooler_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2190 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2191 unit->cooler_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2192 unit->mqtt_flag |= MQTT_FLAG_DATA;
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2193
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2194 } else if (val && (strcmp(kwd, (char *)"COOLER_STATE") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2195 if ((sscanf(val, "%d", &ival) == 1) && ((ival == 0) || (ival == 100))) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2196 if (unit->cooler_state != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2197 syslog(LOG_NOTICE, "Fermenter unit %s cooler state %d to %d", unit->uuid, unit->cooler_state, ival);
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2198 unit->cooler_state = ival;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2199 unit->mqtt_flag |= MQTT_FLAG_DATA;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2200 }
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: 174
diff changeset
2201
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2202 } else if (val && (strcmp(kwd, (char *)"COOLER_DELAY") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2203 if (sscanf(val, "%d", &ival) == 1) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2204 if (unit->cooler_delay != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2205 syslog(LOG_NOTICE, "Fermenter unit %s cooler delay %d to %d", unit->uuid, unit->cooler_delay, ival);
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2206 unit->cooler_delay = ival;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2207 }
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2208
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2209 } else if (val && (strcmp(kwd, (char *)"COOLER_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2210 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2211 if (unit->cooler_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2212 syslog(LOG_NOTICE, "Fermenter unit %s cooler idx %d to %d", unit->uuid, unit->cooler_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2213 unit->cooler_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2214 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2215
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: 174
diff changeset
2216 } else if (strcmp(kwd, (char *)"FAN_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2217 if (val && unit->fan_address && (strcmp(val, unit->fan_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2218 syslog(LOG_NOTICE, "Fermenter unit %s fan address `%s' to `%s'", unit->uuid, unit->fan_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2219 if (unit->fan_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2220 device_count(FALSE, unit->fan_address);
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2221 free(unit->fan_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2222 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2223 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2224 unit->fan_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2225 device_count(TRUE, unit->fan_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2226 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2227 unit->fan_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2228 unit->mqtt_flag |= MQTT_FLAG_DATA;
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: 174
diff changeset
2229
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2230 } else if (val && (strcmp(kwd, (char *)"FAN_STATE") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2231 if ((sscanf(val, "%d", &ival) == 1) && ((ival == 0) || (ival == 100))) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2232 if (unit->fan_state != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2233 syslog(LOG_NOTICE, "Fermenter unit %s fan state %d to %d", unit->uuid, unit->fan_state, ival);
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2234 unit->fan_state = ival;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2235 unit->mqtt_flag |= MQTT_FLAG_DATA;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2236 }
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2237
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2238 } else if (val && (strcmp(kwd, (char *)"FAN_DELAY") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2239 if (sscanf(val, "%d", &ival) == 1) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2240 if (unit->fan_delay != ival)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2241 syslog(LOG_NOTICE, "Fermenter unit %s fan delay %d to %d", unit->uuid, unit->fan_delay, ival);
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2242 unit->fan_delay = ival;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2243 }
270
df81d583c2c3 The PID commands have an adjustable delay, default 5 minutes
Michiel Broek <mbroek@mbse.eu>
parents: 269
diff changeset
2244
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2245 } else if (val && (strcmp(kwd, (char *)"FAN_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2246 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2247 if (unit->fan_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2248 syslog(LOG_NOTICE, "Fermenter unit %s fan idx %d to %d", unit->uuid, unit->fan_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2249 unit->fan_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2250 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2251
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2252 } else if (strcmp(kwd, (char *)"LIGHT_ADDRESS") == 0) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2253 if (val && unit->light_address && (strcmp(val, unit->light_address)))
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2254 syslog(LOG_NOTICE, "Fermenter unit %s light address `%s' to `%s'", unit->uuid, unit->light_address, val);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2255 if (unit->light_address) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2256 device_count(FALSE, unit->light_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2257 free(unit->light_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2258 }
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2259 if (val) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2260 unit->light_address = xstrcpy(val);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2261 device_count(TRUE, unit->light_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2262 } else
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2263 unit->light_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2264 unit->mqtt_flag |= MQTT_FLAG_DATA;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2265
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2266 } else if (val && (strcmp(kwd, (char *)"LIGHT_STATE") == 0)) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2267 if ((sscanf(val, "%d", &ival) == 1) && ((ival == 0) || (ival == 100))) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2268 if (unit->light_state != ival)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2269 syslog(LOG_NOTICE, "Fermenter unit %s light state %d to %d", unit->uuid, unit->light_state, ival);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2270 unit->light_state = ival;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2271 unit->mqtt_flag |= MQTT_FLAG_DATA;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2272 }
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2273
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2274 } else if (val && (strcmp(kwd, (char *)"LIGHT_DELAY") == 0)) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2275 if (sscanf(val, "%d", &ival) == 1) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2276 if (unit->light_delay != ival)
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2277 syslog(LOG_NOTICE, "Fermenter unit %s light delay %d to %d", unit->uuid, unit->light_delay, ival);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2278 unit->light_delay = ival;
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2279 }
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2280
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2281 } else if (val && (strcmp(kwd, (char *)"LIGHT_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2282 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2283 if (unit->light_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2284 syslog(LOG_NOTICE, "Fermenter unit %s light idx %d to %d", unit->uuid, unit->light_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2285 unit->light_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2286 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2287
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: 174
diff changeset
2288 } else if (strcmp(kwd, (char *)"DOOR_ADDRESS") == 0) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2289 if (val && unit->door_address && (strcmp(val, unit->door_address)))
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2290 syslog(LOG_NOTICE, "Fermenter unit %s door address `%s' to `%s'", unit->uuid, unit->door_address, val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2291 if (unit->door_address) {
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2292 device_count(FALSE, unit->door_address);
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2293 free(unit->door_address);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2294 }
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2295 if (val) {
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2296 unit->door_address = xstrcpy(val);
179
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2297 device_count(TRUE, unit->door_address);
417ee898fb02 Added PID implementation and 433 MHz radio control switches. Not reliable yet.
Michiel Broek <mbroek@mbse.eu>
parents: 178
diff changeset
2298 } else
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2299 unit->door_address = NULL;
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: 174
diff changeset
2300
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2301 } else if (val && (strcmp(kwd, (char *)"DOOR_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2302 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2303 if (unit->door_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2304 syslog(LOG_NOTICE, "Fermenter unit %s door idx %d to %d", unit->uuid, unit->door_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2305 unit->door_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2306 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2307
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2308 } else if (strcmp(kwd, (char *)"PSU_ADDRESS") == 0) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2309 if (val && unit->psu_address && (strcmp(val, unit->psu_address)))
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2310 syslog(LOG_NOTICE, "Fermenter unit %s psu address `%s' to `%s'", unit->uuid, unit->psu_address, val);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2311 if (unit->psu_address) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2312 device_count(FALSE, unit->psu_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2313 free(unit->psu_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2314 }
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2315 if (val) {
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2316 unit->psu_address = xstrcpy(val);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2317 device_count(TRUE, unit->psu_address);
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2318 } else
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2319 unit->psu_address = NULL;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2320 unit->mqtt_flag |= MQTT_FLAG_DATA;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2321
513
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2322 } else if (val && (strcmp(kwd, (char *)"PSU_IDX") == 0)) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2323 if (sscanf(val, "%d", &ival) == 1) {
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2324 if (unit->psu_idx != ival)
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2325 syslog(LOG_NOTICE, "Fermenter unit %s psu idx %d to %d", unit->uuid, unit->psu_idx, ival);
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2326 unit->psu_idx = ival;
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2327 }
a2732027afb3 Version 0.6.1 added support for domoticz mqtt sensors.
Michiel Broek <mbroek@mbse.eu>
parents: 510
diff changeset
2328
564
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2329 } else if (val && (strcmp(kwd, (char *)"STAGE") == 0)) {
566
776a605befa5 Added Carbonation stage.
Michiel Broek <mbroek@mbse.eu>
parents: 564
diff changeset
2330 for (i = 0; i < 4; i++) {
564
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2331 if (strcmp(val, UNITSTAGE[i]) == 0) {
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2332 if (i != unit->stage) {
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2333 syslog(LOG_NOTICE, "Fermenter unit %s stage %s to %s", unit->uuid, UNITSTAGE[unit->stage], UNITSTAGE[i]);
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2334 unit->mqtt_flag |= MQTT_FLAG_DATA;
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2335 }
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2336 unit->stage = i;
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2337 break;
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2338 }
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2339 }
3fc61dd28656 Versie 0.8.8 Fermentation stage implemented in units.
Michiel Broek <mbroek@mbse.eu>
parents: 562
diff changeset
2340
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2341 } else if (val && (strcmp(kwd, (char *)"MODE") == 0)) {
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: 174
diff changeset
2342 for (i = 0; i < 5; i++) {
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: 174
diff changeset
2343 if (strcmp(val, UNITMODE[i]) == 0) {
533
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2344 unit->mqtt_flag |= MQTT_FLAG_DATA;
189
cc2b04d4db99 Init logfile when a unit is turned on. Added comments for profile processing.
Michiel Broek <mbroek@mbse.eu>
parents: 185
diff changeset
2345 /* Initialize log if the unit is turned on */
533
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2346 if ((unit->mode == UNITMODE_OFF) && (i != UNITMODE_OFF)) {
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2347 unit->mqtt_flag |= MQTT_FLAG_BIRTH;
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2348 }
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2349 if (unit->mode != i)
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2350 syslog(LOG_NOTICE, "Fermenter unit %s mode %s to %s", unit->uuid, UNITMODE[unit->mode], UNITMODE[i]);
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: 174
diff changeset
2351 unit->mode = i;
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2352 /* Allways turn everything off after a mode change */
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2353 unit->PID_cool->OutP = unit->PID_heat->OutP = 0.0;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2354 unit->PID_cool->Mode = unit->PID_heat->Mode = PID_MODE_NONE;
582
ba340e00aab2 Version 0.9.5, interior lights are now only controlled by the open door or a 5 minutes timer. The timer is started via an MQTT command. The BMS web application sends this command just before a webcam page is requested.
Chiel Broek <mbse@mbse.eu>
parents: 578
diff changeset
2355 unit->heater_state = unit->cooler_state = unit->fan_state = unit->light_state = unit->light_timer = 0;
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2356 unit->heater_wait = unit->cooler_wait = unit->fan_wait = unit->light_wait = 0;
184
db997a04fde3 Fixed switching problems
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
2357 device_out(unit->heater_address, unit->heater_state);
db997a04fde3 Fixed switching problems
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
2358 device_out(unit->cooler_address, unit->cooler_state);
db997a04fde3 Fixed switching problems
Michiel Broek <mbroek@mbse.eu>
parents: 179
diff changeset
2359 device_out(unit->fan_address, unit->fan_state);
306
97602274eb58 Updated to add support for lights in a fermenter unit and a Power Supply status.
Michiel Broek <mbroek@mbse.eu>
parents: 303
diff changeset
2360 device_out(unit->light_address, unit->light_state);
237
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2361 if (unit->mode == UNITMODE_PROFILE) {
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2362 /*
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2363 * Set a sane default until it will be overruled by the
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2364 * main processing loop.
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2365 */
397
00ca08f5a6f8 Fermentation profiles now have a low and high temperature setting so that you can use a temperture window. Each profile step can now set for beer or air temperature reference. The logfiles have an extra temperature field for this. Bumped to version 0.4.2.
Michiel Broek <mbroek@mbse.eu>
parents: 390
diff changeset
2366 unit->prof_target_lo = unit->prof_target_hi = 20.0;
00ca08f5a6f8 Fermentation profiles now have a low and high temperature setting so that you can use a temperture window. Each profile step can now set for beer or air temperature reference. The logfiles have an extra temperature field for this. Bumped to version 0.4.2.
Michiel Broek <mbroek@mbse.eu>
parents: 390
diff changeset
2367 unit->prof_fridge_mode = 0;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
2368 if (unit->profile_uuid) {
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2369 unit->mqtt_flag |= MQTT_FLAG_DATA;
499
602d9968960f Created mqtt sourcefiles. Use flags to trigger publish messages. The main source does not know and does not care if MQTT messages will be sent. Version 0.5.5
Michiel Broek <mbroek@mbse.eu>
parents: 493
diff changeset
2370 }
237
51a294d683cd Add a sane default for profile precessing.
Michiel Broek <mbroek@mbse.eu>
parents: 235
diff changeset
2371 }
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: 174
diff changeset
2372 break;
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: 174
diff changeset
2373 }
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: 174
diff changeset
2374 }
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: 174
diff changeset
2375
578
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2376 } else if (val && (strcmp(kwd, (char *)"FRIDGE_SET_LO") == 0)) {
246
6df404da3537 Setting fridge and beer temperature from the panel implemented
Michiel Broek <mbroek@mbse.eu>
parents: 245
diff changeset
2377 if ((sscanf(val, "%f", &fval) == 1) && (fval >= unit->temp_set_min) && (fval <= unit->temp_set_max)) {
578
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2378 if (unit->fridge_set_lo != fval)
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2379 syslog(LOG_NOTICE, "Fermenter unit %s fridge temp low %.1f to %.1f", unit->uuid, unit->fridge_set_lo, fval);
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2380 unit->fridge_set_lo = fval;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2381 unit->mqtt_flag |= MQTT_FLAG_DATA;
246
6df404da3537 Setting fridge and beer temperature from the panel implemented
Michiel Broek <mbroek@mbse.eu>
parents: 245
diff changeset
2382 }
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: 174
diff changeset
2383
578
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2384 } else if (val && (strcmp(kwd, (char *)"FRIDGE_SET_HI") == 0)) {
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2385 if ((sscanf(val, "%f", &fval) == 1) && (fval >= unit->temp_set_min) && (fval <= unit->temp_set_max)) {
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2386 if (unit->fridge_set_hi != fval)
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2387 syslog(LOG_NOTICE, "Fermenter unit %s fridge temp high %.1f to %.1f", unit->uuid, unit->fridge_set_hi, fval);
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2388 unit->fridge_set_hi = fval;
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2389 unit->mqtt_flag |= MQTT_FLAG_DATA;
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2390 }
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2391
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2392 } else if (val && (strcmp(kwd, (char *)"BEER_SET_LO") == 0)) {
246
6df404da3537 Setting fridge and beer temperature from the panel implemented
Michiel Broek <mbroek@mbse.eu>
parents: 245
diff changeset
2393 if ((sscanf(val, "%f", &fval) == 1) && (fval >= unit->temp_set_min) && (fval <= unit->temp_set_max)) {
578
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2394 if (unit->beer_set_lo != fval)
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2395 syslog(LOG_NOTICE, "Fermenter unit %s beer temp low %.1f to %.1f", unit->uuid, unit->beer_set_lo, fval);
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2396 unit->beer_set_lo = fval;
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2397 unit->mqtt_flag |= MQTT_FLAG_DATA;
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2398 }
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2399
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2400 } else if (val && (strcmp(kwd, (char *)"BEER_SET_HI") == 0)) {
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2401 if ((sscanf(val, "%f", &fval) == 1) && (fval >= unit->temp_set_min) && (fval <= unit->temp_set_max)) {
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2402 if (unit->beer_set_hi != fval)
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2403 syslog(LOG_NOTICE, "Fermenter unit %s beer temp high %.1f to %.1f", unit->uuid, unit->beer_set_hi, fval);
d694abd9d809 Version 0.9.3. Splitted the temperature low and high settings in fridge and beer mode.
Michiel Broek <mbroek@mbse.eu>
parents: 575
diff changeset
2404 unit->beer_set_hi = fval;
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2405 unit->mqtt_flag |= MQTT_FLAG_DATA;
246
6df404da3537 Setting fridge and beer temperature from the panel implemented
Michiel Broek <mbroek@mbse.eu>
parents: 245
diff changeset
2406 }
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: 174
diff changeset
2407
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2408 } else if (val && (strcmp(kwd, (char *)"PIDC_IMAX") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2409 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2410 if (unit->PID_cool->iMax != fval)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2411 syslog(LOG_NOTICE, "Fermenter unit %s PID_cool iGain %.1f to %.1f", unit->uuid, unit->PID_cool->iMax, fval);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2412 unit->PID_cool->iMax = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2413 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2414
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2415 } else if (val && (strcmp(kwd, (char *)"PIDC_PGAIN") == 0)) {
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2416 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2417 if (unit->PID_cool->pGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2418 syslog(LOG_NOTICE, "Fermenter unit %s PID_cool pGain %.3f to %.3f", unit->uuid, unit->PID_cool->pGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2419 unit->PID_cool->pGain = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2420 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2421
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2422 } else if (val && (strcmp(kwd, (char *)"PIDC_DGAIN") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2423 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2424 if (unit->PID_cool->dGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2425 syslog(LOG_NOTICE, "Fermenter unit %s PID_cool dGain %.3f to %.3f", unit->uuid, unit->PID_cool->dGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2426 unit->PID_cool->dGain = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2427 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2428
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2429 } else if (val && (strcmp(kwd, (char *)"PIDC_IGAIN") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2430 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2431 if (unit->PID_cool->iGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2432 syslog(LOG_NOTICE, "Fermenter unit %s PID_cool iGain %.3f to %.3f", unit->uuid, unit->PID_cool->iGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2433 unit->PID_cool->iGain = fval;
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2434 }
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2435
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2436 } else if (val && (strcmp(kwd, (char *)"PIDC_IDLERANGE") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2437 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2438 if (unit->PID_cool->idleRange != fval)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2439 syslog(LOG_NOTICE, "Fermenter unit %s PID_cool idleRange %.2f to %.2f", unit->uuid, unit->PID_cool->idleRange, fval);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2440 unit->PID_cool->idleRange = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2441 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2442
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2443 } else if (val && (strcmp(kwd, (char *)"PIDH_IMAX") == 0)) {
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2444 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2445 if (unit->PID_heat->iMax != fval)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2446 syslog(LOG_NOTICE, "Fermenter unit %s PID_heat iGain %.1f to %.1f", unit->uuid, unit->PID_heat->iMax, fval);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2447 unit->PID_heat->iMax = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2448 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2449
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2450 } else if (val && (strcmp(kwd, (char *)"PIDH_PGAIN") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2451 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2452 if (unit->PID_heat->pGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2453 syslog(LOG_NOTICE, "Fermenter unit %s PID_heat pGain %.3f to %.3f", unit->uuid, unit->PID_heat->pGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2454 unit->PID_heat->pGain = fval;
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2455 }
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2456
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2457 } else if (val && (strcmp(kwd, (char *)"PIDH_DGAIN") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2458 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2459 if (unit->PID_heat->dGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2460 syslog(LOG_NOTICE, "Fermenter unit %s PID_heat dGain %.3f to %.3f", unit->uuid, unit->PID_heat->dGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2461 unit->PID_heat->dGain = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2462 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2463
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2464 } else if (val && (strcmp(kwd, (char *)"PIDH_IGAIN") == 0)) {
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2465 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2466 if (unit->PID_heat->iGain != fval)
493
04d726035afe Fixed server log when changed PID parameters from the web interface.
Michiel Broek <mbroek@mbse.eu>
parents: 492
diff changeset
2467 syslog(LOG_NOTICE, "Fermenter unit %s PIH_heat iGain %.3f to %.3f", unit->uuid, unit->PID_heat->iGain, fval);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2468 unit->PID_heat->iGain = fval;
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2469 }
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2470
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2471 } else if (val && (strcmp(kwd, (char *)"PIDH_IDLERANGE") == 0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2472 if ((sscanf(val, "%f", &fval) == 1) && (fval >= 0.0)) {
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2473 if (unit->PID_heat->idleRange != fval)
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2474 syslog(LOG_NOTICE, "Fermenter unit %s PID_heat idleRange %.2f to %.2f", unit->uuid, unit->PID_heat->idleRange, fval);
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2475 unit->PID_heat->idleRange = fval;
310
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2476 }
53774295e14a Added Kp, Kd and Ki settings to the units. Bumped to version 0.2.9
Michiel Broek <mbroek@mbse.eu>
parents: 306
diff changeset
2477
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
2478 } else if (val && (strcmp(kwd, (char *)"PROF_STATE") == 0) && unit->profile_uuid) {
217
2922d439ff63 Added profile state ABORT
Michiel Broek <mbroek@mbse.eu>
parents: 213
diff changeset
2479 for (i = 0; i < 5; i++) {
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: 174
diff changeset
2480 if (strcmp(val, PROFSTATE[i]) == 0) {
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2481 switch (i) {
274
111b0e9663dc Added logging if profile state is changed via the web interface. Log profile progress each half hour in syslog. Profile resttime steps 0 hours is allowed, meaning resttime or steptime must be set for a valid step. Updated the helptext on the web page.
Michiel Broek <mbroek@mbse.eu>
parents: 273
diff changeset
2482 case PROFILE_OFF: if (unit->prof_state == PROFILE_DONE) {
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2483 unit->prof_state = PROFILE_OFF;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2484 syslog(LOG_NOTICE, "Fermenter unit %s profile to OFF", unit->uuid);
274
111b0e9663dc Added logging if profile state is changed via the web interface. Log profile progress each half hour in syslog. Profile resttime steps 0 hours is allowed, meaning resttime or steptime must be set for a valid step. Updated the helptext on the web page.
Michiel Broek <mbroek@mbse.eu>
parents: 273
diff changeset
2485 }
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2486 break;
274
111b0e9663dc Added logging if profile state is changed via the web interface. Log profile progress each half hour in syslog. Profile resttime steps 0 hours is allowed, meaning resttime or steptime must be set for a valid step. Updated the helptext on the web page.
Michiel Broek <mbroek@mbse.eu>
parents: 273
diff changeset
2487 case PROFILE_PAUSE: if (unit->prof_state == PROFILE_RUN) {
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2488 unit->prof_state = PROFILE_PAUSE;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2489 syslog(LOG_NOTICE, "Fermenter unit %s profile PAUSE", unit->uuid);
274
111b0e9663dc Added logging if profile state is changed via the web interface. Log profile progress each half hour in syslog. Profile resttime steps 0 hours is allowed, meaning resttime or steptime must be set for a valid step. Updated the helptext on the web page.
Michiel Broek <mbroek@mbse.eu>
parents: 273
diff changeset
2490 } else if (unit->prof_state == PROFILE_PAUSE) {
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2491 unit->prof_state = PROFILE_RUN;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2492 syslog(LOG_NOTICE, "Fermenter unit %s profile RESUME", unit->uuid);
274
111b0e9663dc Added logging if profile state is changed via the web interface. Log profile progress each half hour in syslog. Profile resttime steps 0 hours is allowed, meaning resttime or steptime must be set for a valid step. Updated the helptext on the web page.
Michiel Broek <mbroek@mbse.eu>
parents: 273
diff changeset
2493 }
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2494 break;
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2495 case PROFILE_RUN: if (unit->prof_state == PROFILE_OFF) {
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2496 unit->prof_state = PROFILE_RUN;
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2497 unit->prof_started = time(NULL);
289
d810df0df36a Added code to detect primary fermentation
Michiel Broek <mbroek@mbse.eu>
parents: 285
diff changeset
2498 unit->prof_paused = unit->prof_primary_done = 0;
d810df0df36a Added code to detect primary fermentation
Michiel Broek <mbroek@mbse.eu>
parents: 285
diff changeset
2499 unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2500 syslog(LOG_NOTICE, "Fermenter unit %s profile to RUN", unit->uuid);
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2501 }
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2502 break;
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2503 case PROFILE_DONE: break; /* Command is illegal */
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2504 case PROFILE_ABORT: if ((unit->prof_state == PROFILE_RUN) || (unit->prof_state == PROFILE_PAUSE)) {
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2505 unit->prof_state = PROFILE_OFF;
570
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
2506 unit->prof_started = unit->prof_paused = unit->prof_primary_done = 0;
1e0192b295b9 Removed useless version marks from the xml configuration. Added DCMD profile configuration to install and delete profiles in a fermenter. Removed the old profiles configuration. Removed useless xml configuration error check because none has been triggered in five years, Removed several obsolete upgrade functions. Updated the web liveview.
Michiel Broek <mbroek@mbse.eu>
parents: 566
diff changeset
2507 unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2508 syslog(LOG_NOTICE, "Fermenter unit %s profile ABORT", unit->uuid);
219
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2509 }
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2510 break;
ae720212accc Added profile running and steps handling.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
2511 }
510
2da3d3340403 Version 0.6.0. The MQTT data messages are now allways the same length so that openhab will function with the message updates.
Michiel Broek <mbroek@mbse.eu>
parents: 506
diff changeset
2512 unit->mqtt_flag |= MQTT_FLAG_DATA;
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: 174
diff changeset
2513 break;
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: 174
diff changeset
2514 }
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: 174
diff changeset
2515 }
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: 174
diff changeset
2516
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2517 } else if (val && (strcmp(kwd, (char *)"TEMP_SET_MIN") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2518 if (sscanf(val, "%f", &fval) == 1) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2519 if (unit->temp_set_min != fval)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2520 syslog(LOG_NOTICE, "Fermenter unit %s temperature set minimum %.1f to %.1f", unit->uuid, unit->temp_set_min, fval);
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: 174
diff changeset
2521 unit->temp_set_min = fval;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2522 }
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: 174
diff changeset
2523
178
988a898974f3 Web - server communication for switches improved.
Michiel Broek <mbroek@mbse.eu>
parents: 176
diff changeset
2524 } else if (val && (strcmp(kwd, (char *)"TEMP_SET_MAX") == 0)) {
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2525 if (sscanf(val, "%f", &fval) == 1) {
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2526 if (unit->temp_set_max != fval)
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2527 syslog(LOG_NOTICE, "Fermenter unit %s temperature set maximum %.1f to %.1f", unit->uuid, unit->temp_set_max, fval);
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: 174
diff changeset
2528 unit->temp_set_max = fval;
282
885e5243bb50 UNIT PUT command logging added.
Michiel Broek <mbroek@mbse.eu>
parents: 281
diff changeset
2529 }
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: 174
diff changeset
2530
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: 174
diff changeset
2531 }
533
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2532 if (unit->mqtt_flag) {
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2533 if (unit->mqtt_flag & MQTT_FLAG_BIRTH) {
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2534 publishDBirth(unit);
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2535 } else {
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2536 publishDData(unit);
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2537 }
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2538 if (unit->mqtt_flag & MQTT_FLAG_DEATH) {
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2539 publishDDeath(unit);
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2540 }
49580ca85ab7 Versie 0.6.3. MQTT device berichten alleen als een fermenter ingeschakeld is. MQTT fermenter birth en death berichhten als een fementer in of uitgeschakeld wordt. MQTT node death bericht bij normaal afsluiten van de daemon. Alle MQTT persistent berichten worden nu goed opgeruikmd.
Michiel Broek <mbroek@mbse.eu>
parents: 529
diff changeset
2541 }
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: 174
diff changeset
2542 }
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: 174
diff changeset
2543 }
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: 174
diff changeset
2544 }
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: 174
diff changeset
2545 }
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: 174
diff changeset
2546 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2547 srv_send(s, (char *)"440 No such unit");
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2548 run_pause = FALSE;
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2549 return 0;
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: 174
diff changeset
2550 }
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: 174
diff changeset
2551
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2552 srv_send(s, (char *)"504 Subcommand error");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2553 return 0;
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2554 }
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2555
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2556
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2557
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2558 void cmd_server(int s)
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2559 {
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: 131
diff changeset
2560 char buf[SS_BUFSIZE];
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2561 int rlen;
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2562
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2563 rlen = srv_recv(s, buf);
362
c92651a54969 Made the client-server protocol more robust. When a change to a unit is made using the web interface, the main process is stopped during the update. Splitted the PID in two PID's, one for heating and one for cooling. Adjusted the web edit scrreen for this, but there are still rough edges. Replaced the PID code, maybe this one works better for our purpose. The simulator air temperature changes on the simulator heater and cooler, but it is not realistic at all. This is a development version, do not use in production. The version is 0.3.0
Michiel Broek <mbroek@mbse.eu>
parents: 358
diff changeset
2564 if (rlen != -1) {
48
d8c64f81b192 Single client server works
Michiel Broek <mbroek@mbse.eu>
parents: 46
diff changeset
2565 if (strlen(buf)) {
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2566 /*
48
d8c64f81b192 Single client server works
Michiel Broek <mbroek@mbse.eu>
parents: 46
diff changeset
2567 * Process commands from the client
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2568 */
592
ff30227c0903 Removed ARCHIVER commands and web pages.
Michiel Broek <mbroek@mbse.eu>
parents: 591
diff changeset
2569 if (strncmp(buf, "DEVICE", 6) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2570 if (cmd_device(s, buf))
174
244de612c572 Added device configuration
Michiel Broek <mbroek@mbse.eu>
parents: 170
diff changeset
2571 wrconfig();
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2572
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
2573 } else if (strncmp(buf, "GLOBAL", 6) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2574 if (cmd_global(s, buf))
206
78fb6f99e473 Added GLOBAL GET and GLOBAL PUT commands.
Michiel Broek <mbroek@mbse.eu>
parents: 195
diff changeset
2575 wrconfig();
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2576
80
81bf78a7618e Switched to xml configuration
Michiel Broek <mbroek@mbse.eu>
parents: 79
diff changeset
2577 } else if (strncmp(buf, "HELP", 4) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2578 srv_send(s, (char *)"100 Help text follows");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2579 srv_send(s, (char *)"Recognized commands:");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2580 srv_send(s, (char *)"");
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: 131
diff changeset
2581 // 12345678901234567890123456789012345678901234567890123456789012345678901234567890
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2582 srv_send(s, (char *)"DEVICE <CMD> [parameters] Device commands");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2583 srv_send(s, (char *)"DEVICE HELP Device help screen");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2584 srv_send(s, (char *)"GLOBAL <CMD> [parameters] Global commands");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2585 srv_send(s, (char *)"GLOBAL HELP Global help screen");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2586 srv_send(s, (char *)"LIST <CMD> [parameters] List commands");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2587 srv_send(s, (char *)"LIST HELP List help screen");
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
2588 srv_send(s, (char *)"ONEWIRE <CMD> [parameters] One-wire commands");
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
2589 srv_send(s, (char *)"ONEWIRE HELP One-wire help screen");
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2590 srv_send(s, (char *)"PING Check if server is alive");
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
2591 #ifdef USE_SIMULATOR
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2592 srv_send(s, (char *)"SIMULATOR <CMD> [parameters] Simulator commands");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2593 srv_send(s, (char *)"SIMULATOR HELP Simulator help screen");
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
2594 #endif
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2595 srv_send(s, (char *)"UNIT <CMD> [parameters] Unit commands");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2596 srv_send(s, (char *)"UNIT HELP Unit help screen");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2597 srv_send(s, (char *)".");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2598
81
547bbe344886 Added list command
Michiel Broek <mbroek@mbse.eu>
parents: 80
diff changeset
2599 } else if (strncmp(buf, "LIST", 4) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2600 cmd_list(s, buf);
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2601
696
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
2602 } else if (strncmp(buf, "ONEWIRE", 7) == 0) {
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
2603 cmd_onewire(s, buf);
fe042f9484ac Added web page to display the one-wire bus live status.
Michiel Broek <mbroek@mbse.eu>
parents: 693
diff changeset
2604
303
19a9a3912d03 Added PING/PONG command to the server. Bumped to version 0.2.7
Michiel Broek <mbroek@mbse.eu>
parents: 300
diff changeset
2605 } else if (strncmp(buf, "PING", 4) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2606 srv_send(s, (char *)"101 PONG");
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2607
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
2608 #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: 258
diff changeset
2609 } else if (strncmp(buf, "SIMULATOR", 9) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2610 if (cmd_simulator(s, buf))
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
2611 wrconfig();
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2612
259
b7c967359771 Added framework for a simulation of a fridge with heater to use as controlled fermentor
Michiel Broek <mbroek@mbse.eu>
parents: 258
diff changeset
2613 #endif
87
55f1315c94f1 Added unit command and list unit command
Michiel Broek <mbroek@mbse.eu>
parents: 86
diff changeset
2614 } else if (strncmp(buf, "UNIT", 4) == 0) {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2615 if (cmd_unit(s, buf))
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: 174
diff changeset
2616 wrconfig();
381
b22f8bf63b17 Only write configuration if something changed.
Michiel Broek <mbroek@mbse.eu>
parents: 380
diff changeset
2617
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2618 } else {
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2619 srv_send(s, (char *)"500 Unknown command");
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2620 }
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2621 }
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2622 }
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2623
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2624 close(s);
42
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2625 }
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2626
01b96a24ae7c Corrected missing and obsolete files
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2627
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2628 static void cleanup_handler(void *arg)
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2629 {
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2630 syslog(LOG_NOTICE, "Thread my_server_loop stopped (cleanup_handler)");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2631 close(ls);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2632 my_server_state = 0;
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2633 }
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2634
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: 131
diff changeset
2635
74
879bd09e2b96 Reinstalled threads
Michiel Broek <mbroek@mbse.eu>
parents: 71
diff changeset
2636 void *my_server_loop(void *threadid)
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2637 {
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2638 socklen_t addrlen;
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2639 int s, optval = 1;
724
01e3936f62d4 Log pid of each started thread so we can see which uses the most cpu time.
Michiel Broek <mbroek@mbse.eu>
parents: 717
diff changeset
2640 pid_t pid = gettid();
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2641
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
2642 my_server_state = 1;
724
01e3936f62d4 Log pid of each started thread so we can see which uses the most cpu time.
Michiel Broek <mbroek@mbse.eu>
parents: 717
diff changeset
2643 syslog(LOG_NOTICE, "Thread my_server_loop started, pid=%d", pid);
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2644
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2645 /*
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2646 * Prepare thread to stop in blocking accept() call.
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2647 */
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2648 pthread_cleanup_push(cleanup_handler, NULL);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2649 pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2650 pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2651
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2652 memset((char *)&myaddr_in, 0, sizeof(struct sockaddr_in));
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2653 memset((char *)&peeraddr_in, 0, sizeof(struct sockaddr_in));
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2654 myaddr_in.sin_family = AF_INET;
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2655 myaddr_in.sin_addr.s_addr = INADDR_ANY;
693
3518c07737d8 Version 0.9.19a2. Dropped TEMPSTATE[] and only use DEVPRESENT[] to mark devices state. Adjusted webpages for this switch in responses. Adjusted MySQL mon_fermenters enum values too. Rename some global Config records to better reflect their real use.Added one-wire json records and websocket. Announce when some onewire device changes. Add UNITS JSON command without parameter. Dropped global tempFormat setting that was never used.
Michiel Broek <mbroek@mbse.eu>
parents: 689
diff changeset
2656 myaddr_in.sin_port = htons(Config.server_port);
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2657
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2658 ls = socket(AF_INET, SOCK_STREAM, 0);
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2659 if (ls == -1) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
2660 syslog(LOG_NOTICE, "Can't create listen socket: %s", strerror(errno));
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2661 fprintf(stderr, "Can't create listen socket: %s\n", strerror(errno));
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
2662 my_server_state = 0;
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2663 return 0;
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2664 }
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2665
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2666 if (setsockopt(ls, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)) == -1) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
2667 syslog(LOG_NOTICE, "Can't setsockopt SO_KEEPALIVE socket: %s", strerror(errno));
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2668 close(ls);
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
2669 my_server_state = 0;
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2670 return 0;
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2671 }
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2672
716
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2673 if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) {
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2674 syslog(LOG_NOTICE, "Can't setsockopt SO_REUSEADDR socket: %s", strerror(errno));
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2675 close(ls);
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2676 my_server_state = 0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2677 return 0;
5c30c8ef83a8 Version 0.9.19b3. The simulator thread can be paused to be able to add and delete simulators. Added simulated door and PSU status. Devices can now fully use multiple simulators. Better rounding of simulated temperature values. The server SIMULATOR DEL and ADD commands pause the simulator when the linked list is manipulated. Fixed SIGSEGV when a simulator is added. Added socket SO_REUSEADDR again to the server socket.
Michiel Broek <mbroek@mbse.eu>
parents: 715
diff changeset
2678 }
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2679
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2680 if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
2681 syslog(LOG_NOTICE, "Can't bind to listen socket: %s", strerror(errno));
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2682 close(ls);
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
2683 my_server_state = 0;
66
805f1d285acd Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents: 62
diff changeset
2684 return 0;
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2685 }
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2686
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2687 if (listen(ls, 5) == -1) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
2688 syslog(LOG_NOTICE, "Can't listen on listen socket: %s", strerror(errno));
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2689 close(ls);
646
e3edc783006b Running threads and locking doesn't depend on wiringPi anymore.
Michiel Broek <mbroek@mbse.eu>
parents: 645
diff changeset
2690 my_server_state = 0;
66
805f1d285acd Compiles with 1-wire bus on PC hardware
Michiel Broek <mbroek@mbse.eu>
parents: 62
diff changeset
2691 return 0;
44
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2692 }
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2693
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2694 syslog(LOG_NOTICE, "listen socket created %d", ls);
f37d73940699 Server communication works
Michiel Broek <mbroek@mbse.eu>
parents: 43
diff changeset
2695
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2696 /*
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2697 * Loop forever until the external shutdown variable is set.
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2698 */
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2699 for (;;) {
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2700
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2701 addrlen = sizeof(struct sockaddr_in);
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2702 /*
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2703 * This call will block until a new connection
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2704 * arrives. Then it will return the address of
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2705 * the connecting peer, and a new socket
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2706 * descriptor, s, for that connection.
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2707 */
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2708 s = accept(ls, (struct sockaddr *)&peeraddr_in, &addrlen);
665
66fae54fa7ba Fermentation processing in it's own function.
Michiel Broek <mbroek@mbse.eu>
parents: 660
diff changeset
2709 // syslog(LOG_NOTICE, "my_server_loop accept socket %d", s);
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2710 if (s == -1) {
268
dda91dfa4aa8 All syslog logging only to LOG_NOTICE
Michiel Broek <mbroek@mbse.eu>
parents: 266
diff changeset
2711 syslog(LOG_NOTICE, "my_server_loop accept failed %s", strerror(errno));
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2712 break;
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2713 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2714 if (my_server_shutdown)
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2715 break;
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2716
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2717 cmd_server(s);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2718
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2719 if (my_server_shutdown)
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2720 break;
652
16d3d4b58b5b Moved all delay functions into a new general file.
Michiel Broek <mbroek@mbse.eu>
parents: 646
diff changeset
2721 mDelay(100);
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2722 }
660
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2723
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2724 close(ls);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2725 pthread_cleanup_pop(my_server_state);
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2726 syslog(LOG_NOTICE, "Thread my_server_loop stopped");
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2727 my_server_state = 0;
a28ef4d9afa4 Version 0.9.17a1. Revised starting and stopping the threads. Fixed stopping the command server thread. Moved one-wire tempeature sensors resolution correction to the one-wire thread. The devices thread fetches temperatures from the one-wire thread. The one-wire thread does everything for the temperature sensors. The command server uses private sockets. Still, only one session at the same time is handled.
Michiel Broek <mbroek@mbse.eu>
parents: 652
diff changeset
2728 return 0;
43
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2729 }
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2730
24e731bb2e08 Initial server code added
Michiel Broek <mbroek@mbse.eu>
parents: 42
diff changeset
2731

mercurial