From 6b38df8f8ab2f7064aa6bd61692a10005a944e6f Mon Sep 17 00:00:00 2001 From: Mark Tearle Date: Sun, 15 Mar 2015 17:36:30 +0800 Subject: [PATCH] Add config_modbus_port option to allow Modbus port to be set (for virtualcoke) --- dispsrv.conf | 2 ++ items.cfg | 2 +- src/server/handler_coke.c | 3 ++- src/server/main.c | 5 ++++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dispsrv.conf b/dispsrv.conf index ae1d954..c9aa947 100644 --- a/dispsrv.conf +++ b/dispsrv.conf @@ -9,6 +9,8 @@ items_file items.cfg # PLC - coke brain #coke_modbus_address 130.95.13.73 coke_modbus_address 0.0.0.0 +# 502 is default modbus port, virtualcoke uses 1502 +coke_modbus_port 502 # Zero price items, defaults to off test_mode no diff --git a/items.cfg b/items.cfg index df3305a..785439d 100644 --- a/items.cfg +++ b/items.cfg @@ -5,7 +5,7 @@ # Type ID Price Description # Drinks -coke 0 200 Blue Powerade +coke 0 200 X Blue Powerade coke 1 200 Mother Energy Drink coke 2 75 Solo coke 3 75 Lemonade diff --git a/src/server/handler_coke.c b/src/server/handler_coke.c index b9a9cf3..34b9d2e 100644 --- a/src/server/handler_coke.c +++ b/src/server/handler_coke.c @@ -49,6 +49,7 @@ tHandler gCoke_Handler = { Coke_DoDispense }; const char *gsCoke_ModbusAddress = "130.95.13.73"; + int gsCoke_ModbusPort = 502; modbus_t *gCoke_Modbus; time_t gtCoke_LastDispenseTime; time_t gtCoke_LastReconnectTime; @@ -126,7 +127,7 @@ int Coke_int_ConnectToPLC(void) if( !gCoke_Modbus ) { - gCoke_Modbus = modbus_new_tcp(gsCoke_ModbusAddress, 502); + gCoke_Modbus = modbus_new_tcp(gsCoke_ModbusAddress, gsCoke_ModbusPort); if( !gCoke_Modbus ) { perror("coke - modbus_new_tcp"); diff --git a/src/server/main.c b/src/server/main.c index cbebee2..2cc3bc3 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -31,6 +31,7 @@ extern int gbServer_RunInBackground; extern int giServer_Port; extern const char *gsItemListFile; extern const char *gsCoke_ModbusAddress; +extern int gsCoke_ModbusPort; extern const char *gsDoor_SerialPort; extern bool gbSyslogEnabled; @@ -126,13 +127,15 @@ int main(int argc, char *argv[]) gbServer_RunInBackground = Config_GetValue_Bool("daemonise", 0); gsCokebankPath = Config_GetValue("cokebank_database", 0); gsDoor_SerialPort = Config_GetValue("door_serial_port", 0); - gsCoke_ModbusAddress = Config_GetValue("coke_modbus_address", 0); giServer_Port = Config_GetValue_Int("server_port", 0); gsItemListFile = Config_GetValue("items_file", 0); gbNoCostMode = (Config_GetValue_Bool("test_mode", 0) == 1); gbSyslogEnabled = (Config_GetValue_Bool("disable_syslog", 0) == 0); + gsCoke_ModbusAddress = Config_GetValue("coke_modbus_address", 0); + gsCoke_ModbusPort = Config_GetValue_Int("coke_modbus_port", 0); + signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); -- 2.20.1