X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fhandler_coke.c;h=53cbd0fd7d3be7afecefdd8cd97f84125fdd5953;hb=dfa4eb21fc9e7cc2bfa912581d38aaee04f3b990;hp=3ab46c59d189f7c9279b33748cd8b39afa514097;hpb=d40b4a892a6b06e2ef0cb72e90ebf7b023577d03;p=tpg%2Fopendispense2.git diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c index 3ab46c5..53cbd0f 100644 --- a/src/server/handler_coke.c +++ b/src/server/handler_coke.c @@ -37,10 +37,13 @@ regex_t gCoke_StatusRegex; int Coke_InitHandler() { printf("connecting to coke machine...\n"); - giCoke_SerialFD = open(gsCoke_SerialPort, O_RDWR); + giCoke_SerialFD = open(gsCoke_SerialPort, O_RDWR | O_NOCTTY | O_NONBLOCK); if( giCoke_SerialFD == -1 ) { fprintf(stderr, "ERROR: Unable to open coke serial port ('%s')\n", gsCoke_SerialPort); } + + InitSerial(giCoke_SerialFD, 9600); + CompileRegex(&gCoke_StatusRegex, "^slot\\s+(\\d)\\s+([^:]+):([a-zA-Z]+)\\s*", REG_EXTENDED); return 0; } @@ -77,9 +80,9 @@ int Coke_CanDispense(int User, int Item) printf("Machine responded slot status '%s'\n", status); if( strcmp(status, "full") == 0 ) - return 1; + return 0; - return 0; + return 1; } /**