Door controller code (well, the start of it)
authorJohn Hodge <[email protected]>
Sat, 4 Dec 2010 08:18:00 +0000 (16:18 +0800)
committerJohn Hodge <[email protected]>
Sat, 4 Dec 2010 08:18:00 +0000 (16:18 +0800)
src/server/handler_door.c [new file with mode: 0644]
src/server/handler_snack.c
src/server/itemdb.c

diff --git a/src/server/handler_door.c b/src/server/handler_door.c
new file mode 100644 (file)
index 0000000..c132e07
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * OpenDispense 2 
+ * UCC (University [of WA] Computer Club) Electronic Accounting System
+ *
+ * handler_doror.c - Door Relay code
+ *
+ * This file is licenced under the 3-clause BSD Licence. See the file
+ * COPYING for full details.
+ */
+#include "common.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+// === IMPORTS ===
+
+// === PROTOTYPES ===
+ int   Door_InitHandler();
+ int   Door_CanDispense(int User, int Item);
+ int   Door_DoDispense(int User, int Item);
+
+// === GLOBALS ===
+tHandler       gDoor_Handler = {
+       "door",
+       Door_InitHandler,
+       Door_CanDispense,
+       Door_DoDispense
+};
+//char *gsDoor_SerialPort = "/dev/ttyS0";
+// int giDoor_SerialFD;
+
+// == CODE ===
+int Door_InitHandler()
+{
+//     printf("connecting to door...\n");
+//     giDoor_SerialFD = open(gsDoor_SerialPort, O_RDWR);
+//     if( giDoor_SerialFD == -1 ) {
+//             fprintf(stderr, "ERROR: Unable to open coke serial port ('%s')\n", gsDoor_SerialPort);
+//     }
+       return 0;
+}
+
+/**
+ */
+int Door_CanDispense(int User, int Item)
+{
+       // Sanity please
+       if( Item == 0 ) return -1;
+       
+       return 0;
+}
+
+/**
+ * \brief Actually do a dispense from the coke machine
+ */
+int Door_DoDispense(int User, int Item)
+{
+       char    tmp[32], *status;
+       regmatch_t      matches[4];
+
+       // Sanity please
+       if( Item != 0 ) return -1;
+       
+       // llogin or other
+
+       return 0;
+}
+
+
index 826851e..2e7c4a6 100644 (file)
@@ -47,6 +47,8 @@ int Snack_CanDispense(int User, int Item)
        // Sanity please
        if( Item < 0 || Item > 99 )     return -1;
        
+       // Hmm... could we implement slot statuses?
+       
        return 1;
 }
 
@@ -71,5 +73,3 @@ int Snack_DoDispense(int User, int Item)
 
        return 0;
 }
-
-
index 97c64e4..8b494f7 100644 (file)
@@ -17,6 +17,7 @@
 // === IMPORTS ===
 extern tHandler        gCoke_Handler;
 extern tHandler        gSnack_Handler;
+extern tHandler        gDoor_Handler;
 
 // === PROTOTYPES ===
 void   Load_Itemlist(void);
@@ -26,7 +27,7 @@ char  *trim(char *__str);
  int   giNumItems = 0;
 tItem  *gaItems = NULL;
 tHandler       gPseudo_Handler = {Name:"pseudo"};
-tHandler       *gaHandlers[] = {&gPseudo_Handler, &gCoke_Handler, &gSnack_Handler};
+tHandler       *gaHandlers[] = {&gPseudo_Handler, &gCoke_Handler, &gSnack_Handler, &gDoor_Handler};
  int   giNumHandlers = sizeof(gaHandlers)/sizeof(gaHandlers[0]);
 char   *gsItemListFile = DEFAULT_ITEM_FILE;
 

UCC git Repository :: git.ucc.asn.au