Added list command

Thu, 26 Jun 2014 20:55:34 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 26 Jun 2014 20:55:34 +0200
changeset 81
547bbe344886
parent 80
81bf78a7618e
child 82
d48299405980

Added list command

thermferm/server.c file | annotate | diff | comparison | revisions
--- a/thermferm/server.c	Thu Jun 26 20:00:00 2014 +0200
+++ b/thermferm/server.c	Thu Jun 26 20:55:34 2014 +0200
@@ -31,6 +31,7 @@
 extern unsigned char	lcdbuf[MAX_LCDS][20][4];
 #endif
 extern sys_config       Config;
+extern const char	UNITMODE[5][8];
 
 int			s;		/* connected socket			*/
 int			ls;		/* listen socket			*/
@@ -159,6 +160,33 @@
 
 
 
+/*
+ * LIST
+ */
+int cmd_list(char *buf)
+{
+    char	*cmd, *opt;
+    units_list	*unit;
+    int		i;
+
+    cmd = strtok(buf, " \0");
+    opt = strtok(NULL, " \0");
+    if (opt == NULL) {
+	srv_send((char *)"212 Fermenter list follows:");
+	i = 0;
+	for (unit = Config.units; unit; unit = unit->next) {
+	    i++;
+	    srv_send((char *)"%02d %s %-20s %-7s", i, unit->uuid, unit->name, UNITMODE[unit->mode]);
+	}
+	srv_send((char *)".");
+	return 0;
+    }
+
+    return 0;
+}
+
+
+
 void cmd_server(void)
 {
     char                *inp, *p, *q, buf[SS_BUFSIZE], obuf[SS_BUFSIZE];
@@ -210,6 +238,24 @@
 		srv_send((char *)"");
 		srv_send((char *)"ADD name                  Add a new unit with \"name\"");
 		srv_send((char *)"LCD                       Get LCD screen (allways 4 rows of 20 characters)");
+		srv_send((char *)"LIST                      List all fermenter units");
+//		srv_send((char *)"LIST BUS                  List 1-wire bus");
+//		srv_send((char *)"LIST PROFILES             List available profiles");
+//		srv_send((char *)"LIST UNIT                 List fermenter unit");
+//		srv_send((char *)"MODE off|none|beer|fridge|profile");
+//		srv_send((char *)"PROFILE                   Profile status");
+//		srv_send((char *)"PROFILE start|stop|pause  Profile start, stop or pause");
+//		srv_send((char *)"SET BEER                  Set beer temperature");
+//		srv_send((char *)"SET FRIDGE                Set fridge temperature");
+//		srv_send((char *)"SET IDLE LOW val          Set idle temperature low");
+//		srv_send((char *)"SET IDLE HIGH val         Set idle temperature high");
+//		srv_send((char *)"SET NAME name             Set name or beername for the unit");
+//		srv_send((char *)"SET OFF                   Set unit off");
+//		srv_send((char *)"SET PROFILE name          Set named profile");
+//		srv_send((char *)"SET TEMP MIN val          Set unit minimum temperature");
+//		srv_send((char *)"SET TEMP MAX val          Set unit maximum temperature");
+//		srv_send((char *)"SET VOLUME                Set unit volume");
+//		srv_send((char *)"UNIT n|uuid               Select unit by number or uuid");
 		srv_send((char *)".");
 	    } else if (strncmp(buf, "LCD", 3) == 0) {
 #ifdef HAVE_WIRINGPI_H
@@ -225,6 +271,8 @@
 #else
 		srv_send((char *)"403 LCD not available");
 #endif
+	    } else if (strncmp(buf, "LIST", 4) == 0) {
+		cmd_list(buf);
 	    } else if (strncmp(buf, "ack", 3) == 0) {
 		srv_send((char *)"ack");
 	    } else if (strncmp(buf, "lcd", 3) == 0) {

mercurial