Coke_CanDispense,
Coke_DoDispense
};
+// - Config
const char *gsCoke_ModbusAddress = "130.95.13.73";
int giCoke_ModbusPort = 502;
+bool gbCoke_DummyMode = false;
+// - State
modbus_t *gCoke_Modbus;
time_t gtCoke_LastDispenseTime;
time_t gtCoke_LastReconnectTime;
-bool gbCoke_DummyMode = 1;
int giCoke_NextCokeSlot = 0;
// == CODE ===
int Coke_int_ConnectToPLC(void)
{
// Ratelimit
- if( time(NULL) - gtCoke_LastReconnectTime < COKE_RECONNECT_RATELIMIT )
+ time_t elapsed = time(NULL) - gtCoke_LastReconnectTime;
+ if( elapsed < COKE_RECONNECT_RATELIMIT ) {
+ Debug_Notice("Not reconnecting, only %llis have pased, %i limit", (long long)elapsed, COKE_RECONNECT_RATELIMIT);
+ errno = EAGAIN;
return -1;
+ }
if( !gCoke_Modbus )
{
// Preven resource leaks
modbus_close(gCoke_Modbus);
}
- Debug_Notice("Connecting to coke PLC machine on '%s'\n", gsCoke_ModbusAddress);
+ Debug_Notice("Connecting to coke PLC machine on '%s':%i", gsCoke_ModbusAddress, giCoke_ModbusPort);
if( modbus_connect(gCoke_Modbus) )
{