X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fhandler_coke.c;h=ff051c8400b283f9a4239b85f824784bd03220e4;hb=008596161453e64354973268125058b49aee60d3;hp=850c07b0840c195de9e18288fa9638d8fd074df9;hpb=bc0cde7fdd240583595dae22562e6a1962dcac43;p=tpg%2Fopendispense2.git diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c index 850c07b..ff051c8 100644 --- a/src/server/handler_coke.c +++ b/src/server/handler_coke.c @@ -19,7 +19,7 @@ #include #include -#define MIN_DISPENSE_PERIOD 5 +#define MIN_DISPENSE_PERIOD 2 #define COKE_RECONNECT_RATELIMIT 2 // === CONSTANTS === @@ -107,9 +107,9 @@ int Coke_DoDispense(int UNUSED(User), int Item) if( time(NULL) - gtCoke_LastDispenseTime < ciCoke_MinPeriod ) { int delay = ciCoke_MinPeriod - (time(NULL) - gtCoke_LastDispenseTime); - printf("Wait %i seconds?\n", delay); + Debug_Debug("Waiting for %i seconds (rate limit)", delay); sleep( delay ); - printf("wait done\n"); + Debug_Debug("wait done"); } gtCoke_LastDispenseTime = time(NULL); @@ -133,8 +133,11 @@ int Coke_int_ConnectToPLC(void) return 1; } } - printf("Connecting to coke PLC machine on '%s'\n", gsCoke_ModbusAddress); - fprintf(stderr, "Connecting to coke PLC machine on '%s'\n", gsCoke_ModbusAddress); + else { + // Preven resource leaks + modbus_close(gCoke_Modbus); + } + Debug_Notice("Connecting to coke PLC machine on '%s'\n", gsCoke_ModbusAddress); if( modbus_connect(gCoke_Modbus) ) { @@ -227,7 +230,8 @@ int Coke_int_DropSlot(int Slot) if( res == 0 ) { // Oops!, no drink - printf("Drink dispense failed, bit lowered too quickly\n"); + Log_Error("Drink dispense failed, bit lowered too quickly"); + Debug_Notice("Drink dispense failed, bit lowered too quickly"); return 1; } @@ -255,6 +259,7 @@ int _WriteBit(int BitNum, uint8_t Value) return -1; if( modbus_write_bit( gCoke_Modbus, BitNum, Value != 0 ) >= 0 ) return 0; + // Error case if( Coke_int_ConnectToPLC() ) return -1; if( modbus_write_bit( gCoke_Modbus, BitNum, Value != 0 ) >= 0 )