diff --git a/bacnet-stack/demo/dcc/Makefile b/bacnet-stack/demo/dcc/Makefile index f9be1ec9..6eaec7ef 100644 --- a/bacnet-stack/demo/dcc/Makefile +++ b/bacnet-stack/demo/dcc/Makefile @@ -1,4 +1,4 @@ -#Makefile to build BACnet Application for the Linux Port +#Makefile to build BACnet Application for GCC compiler CC = gcc TARGET = bacdcc @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/dcc/main.c b/bacnet-stack/demo/dcc/main.c index 8a7dff8a..61cbbe94 100644 --- a/bacnet-stack/demo/dcc/main.c +++ b/bacnet-stack/demo/dcc/main.c @@ -49,6 +49,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -141,92 +142,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("DeviceCommunicationControl: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -270,7 +185,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/epics/Makefile b/bacnet-stack/demo/epics/Makefile index aa6104d5..5e604de2 100644 --- a/bacnet-stack/demo/epics/Makefile +++ b/bacnet-stack/demo/epics/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/epics/main.c b/bacnet-stack/demo/epics/main.c index 6e254b87..92947c1f 100644 --- a/bacnet-stack/demo/epics/main.c +++ b/bacnet-stack/demo/epics/main.c @@ -49,6 +49,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" #include "keylist.h" /* buffer used for receive */ @@ -310,91 +311,6 @@ static uint8_t Read_Properties( return invoke_id; } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf("EPICS: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -428,7 +344,7 @@ int main(int argc, char *argv[]) { Object_List = Keylist_Create(); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/handler/dlenv.c b/bacnet-stack/demo/handler/dlenv.c new file mode 100644 index 00000000..5bc31dd8 --- /dev/null +++ b/bacnet-stack/demo/handler/dlenv.c @@ -0,0 +1,131 @@ +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*********************************************************************/ + +/* environment variables used for the command line tools */ +#include +#include +#include +#include +#include "config.h" +#include "bacdef.h" +#include "apdu.h" +#include "datalink.h" +#include "handlers.h" +#include "client.h" + +void dlenv_init( + void) +{ + char *pEnv = NULL; +#if defined(BACDL_BIP) && BBMD_ENABLED + long bbmd_port = 0xBAC0; + long bbmd_address = 0; + long bbmd_timetolive_seconds = 60000; +#endif + +#if defined(BACDL_ALL) + pEnv = getenv("BACNET_DATALINK"); + if (pEnv) { + datalink_set(pEnv)); + } else { + datalink_set(NULL); + } +#endif + +#if defined(BACDL_BIP) + pEnv = getenv("BACNET_IP_PORT"); + if (pEnv) { + bip_set_port(strtol(pEnv, NULL, 0)); + } else { + bip_set_port(0xBAC0); + } +#elif defined(BACDL_MSTP) + pEnv = getenv("BACNET_MAX_INFO_FRAMES"); + if (pEnv) { + dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); + } else { + dlmstp_set_max_info_frames(1); + } + pEnv = getenv("BACNET_MAX_MASTER"); + if (pEnv) { + dlmstp_set_max_master(strtol(pEnv, NULL, 0)); + } else { + dlmstp_set_max_master(127); + } + pEnv = getenv("BACNET_MSTP_BAUD"); + if (pEnv) { + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); + } else { + dlmstp_set_baud_rate(38400); + } + pEnv = getenv("BACNET_MSTP_MAC"); + if (pEnv) { + dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); + } else { + dlmstp_set_mac_address(127); + } +#endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } + if (!datalink_init(getenv("BACNET_IFACE"))) { + exit(1); + } +#if defined(BACDL_BIP) && BBMD_ENABLED + pEnv = getenv("BACNET_BBMD_PORT"); + if (pEnv) { + bbmd_port = strtol(pEnv, NULL, 0); + if (bbmd_port > 0xFFFF) { + bbmd_port = 0xBAC0; + } + } + pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); + if (pEnv) { + bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); + if (bbmd_timetolive_seconds > 0xFFFF) { + bbmd_timetolive_seconds = 0xFFFF; + } + } + pEnv = getenv("BACNET_BBMD_ADDRESS"); + if (pEnv) { + bbmd_address = bip_getaddrbyname(pEnv); + if (bbmd_address) { + struct in_addr addr; + addr.s_addr = bbmd_address; + fprintf(stderr, + "Registering with BBMD at %s:%ld for %ld seconds\n", + inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); + bvlc_register_with_bbmd(bbmd_address, bbmd_port, + bbmd_timetolive_seconds); + } + } +#endif +} diff --git a/bacnet-stack/demo/iamrouter/Makefile b/bacnet-stack/demo/iamrouter/Makefile index 323d3f28..d4176f7f 100644 --- a/bacnet-stack/demo/iamrouter/Makefile +++ b/bacnet-stack/demo/iamrouter/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/iamrouter/main.c b/bacnet-stack/demo/iamrouter/main.c index e3e3ecd5..5f204a37 100644 --- a/bacnet-stack/demo/iamrouter/main.c +++ b/bacnet-stack/demo/iamrouter/main.c @@ -44,9 +44,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" -#if defined(BACDL_MSTP) -#include "rs485.h" -#endif +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -103,91 +101,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf("WhoIs: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { unsigned arg_count = 0; @@ -234,7 +147,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); Init_Service_Handlers(); address_init(); - Init_DataLink(); + dlenv_init(); /* send the request */ Send_I_Am_Router_To_Network(Target_Router_Networks); diff --git a/bacnet-stack/demo/initrouter/Makefile b/bacnet-stack/demo/initrouter/Makefile index 78f688ea..9aad7dd2 100644 --- a/bacnet-stack/demo/initrouter/Makefile +++ b/bacnet-stack/demo/initrouter/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/initrouter/main.c b/bacnet-stack/demo/initrouter/main.c index 71583f48..c7e6d73b 100644 --- a/bacnet-stack/demo/initrouter/main.c +++ b/bacnet-stack/demo/initrouter/main.c @@ -46,9 +46,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" -#if defined(BACDL_MSTP) -#include "rs485.h" -#endif +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -225,91 +223,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf("NPDU: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - static void address_parse(BACNET_ADDRESS * dst, int argc, char *argv[]) { unsigned mac[6]; @@ -393,7 +306,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); Init_Service_Handlers(); address_init(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = apdu_timeout() / 1000; diff --git a/bacnet-stack/demo/readfile/Makefile b/bacnet-stack/demo/readfile/Makefile index 21883bc9..a89efbec 100644 --- a/bacnet-stack/demo/readfile/Makefile +++ b/bacnet-stack/demo/readfile/Makefile @@ -29,7 +29,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/readfile/main.c b/bacnet-stack/demo/readfile/main.c index 5e04d3c5..01a0d99a 100644 --- a/bacnet-stack/demo/readfile/main.c +++ b/bacnet-stack/demo/readfile/main.c @@ -48,6 +48,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -196,92 +197,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("AtomicReadFile: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -322,7 +237,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/readprop/Makefile b/bacnet-stack/demo/readprop/Makefile index 8482c7ef..096156f9 100644 --- a/bacnet-stack/demo/readprop/Makefile +++ b/bacnet-stack/demo/readprop/Makefile @@ -1,4 +1,4 @@ -#Makefile to build BACnet Application for the Linux Port +#Makefile to build BACnet Application using GCC compiler # Compiler to use CC = gcc # Executable file name @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/readprop/main.c b/bacnet-stack/demo/readprop/main.c index 17db21dc..c9bb9957 100644 --- a/bacnet-stack/demo/readprop/main.c +++ b/bacnet-stack/demo/readprop/main.c @@ -51,6 +51,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -132,98 +133,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - fprintf(stderr, "BACNET_MSTP_BAUD=%s\r\n", pEnv); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_APDU_TIMEOUT"); - if (pEnv) { - apdu_timeout_set(strtol(pEnv, NULL, 0)); - fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("ReadProperty: Registering with BBMD at %s:%ld for %ld seconds\r\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -309,7 +218,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/readpropm/Makefile b/bacnet-stack/demo/readpropm/Makefile index 056361e2..3907b3ce 100644 --- a/bacnet-stack/demo/readpropm/Makefile +++ b/bacnet-stack/demo/readpropm/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/readpropm/main.c b/bacnet-stack/demo/readpropm/main.c index 4368b7d4..5f9e848f 100644 --- a/bacnet-stack/demo/readpropm/main.c +++ b/bacnet-stack/demo/readpropm/main.c @@ -52,6 +52,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -130,92 +131,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("ReadProperty: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - void cleanup(void) { BACNET_READ_ACCESS_DATA *rpm_object; BACNET_READ_ACCESS_DATA *old_rpm_object; @@ -375,7 +290,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/reinit/Makefile b/bacnet-stack/demo/reinit/Makefile index cf2b0ac0..1d44efd1 100644 --- a/bacnet-stack/demo/reinit/Makefile +++ b/bacnet-stack/demo/reinit/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/reinit/main.c b/bacnet-stack/demo/reinit/main.c index d3859521..c5543b64 100644 --- a/bacnet-stack/demo/reinit/main.c +++ b/bacnet-stack/demo/reinit/main.c @@ -49,6 +49,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -136,92 +137,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("ReinitDevice: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -264,7 +179,7 @@ int main(int argc, char *argv[]) { Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); address_init(); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = (apdu_timeout() / 1000) * apdu_retries(); diff --git a/bacnet-stack/demo/server/Makefile b/bacnet-stack/demo/server/Makefile index 6d13dd28..0632216b 100644 --- a/bacnet-stack/demo/server/Makefile +++ b/bacnet-stack/demo/server/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/server/main.c b/bacnet-stack/demo/server/main.c index 32ffeb31..0bacae5c 100644 --- a/bacnet-stack/demo/server/main.c +++ b/bacnet-stack/demo/server/main.c @@ -33,6 +33,7 @@ #include "bacdef.h" #include "handlers.h" #include "client.h" +#include "dlenv.h" #include "bacdcode.h" #include "npdu.h" #include "apdu.h" @@ -46,9 +47,6 @@ #include "txbuf.h" #include "lc.h" #include "version.h" -#if defined(BACDL_MSTP) -#include "rs485.h" -#endif /* This is an example server application using the BACnet Stack */ @@ -100,92 +98,6 @@ static void cleanup( datalink_cleanup(); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } - BIP_Debug = true; -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf("Server: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -203,7 +115,7 @@ int main(int argc, char *argv[]) { "BACnet Device ID: %u\n" "Max APDU: %d\n", BACnet_Version, Device_Object_Instance_Number(), MAX_APDU); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); atexit(cleanup); /* configure the timeout values */ last_seconds = time(NULL); diff --git a/bacnet-stack/demo/timesync/Makefile b/bacnet-stack/demo/timesync/Makefile index 8700a146..1919ba31 100644 --- a/bacnet-stack/demo/timesync/Makefile +++ b/bacnet-stack/demo/timesync/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/timesync/main.c b/bacnet-stack/demo/timesync/main.c index 62e7e4dd..7d80d4dd 100644 --- a/bacnet-stack/demo/timesync/main.c +++ b/bacnet-stack/demo/timesync/main.c @@ -44,6 +44,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -105,92 +106,6 @@ static void Init_Service_Handlers( apdu_set_reject_handler(MyRejectHandler); } -static void Init_DataLink( - void) -{ - char *pEnv = NULL; -#if defined(BACDL_BIP) && BBMD_ENABLED - long bbmd_port = 0xBAC0; - long bbmd_address = 0; - long bbmd_timetolive_seconds = 60000; -#endif - -#if defined(BACDL_ALL) - pEnv = getenv("BACNET_DATALINK"); - if (pEnv) { - datalink_set(pEnv)); - } else { - datalink_set(NULL); - } -#endif - -#if defined(BACDL_BIP) - pEnv = getenv("BACNET_IP_PORT"); - if (pEnv) { - bip_set_port(strtol(pEnv, NULL, 0)); - } else { - bip_set_port(0xBAC0); - } -#elif defined(BACDL_MSTP) - pEnv = getenv("BACNET_MAX_INFO_FRAMES"); - if (pEnv) { - dlmstp_set_max_info_frames(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_info_frames(1); - } - pEnv = getenv("BACNET_MAX_MASTER"); - if (pEnv) { - dlmstp_set_max_master(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_max_master(127); - } - pEnv = getenv("BACNET_MSTP_BAUD"); - if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); - } else { - RS485_Set_Baud_Rate(38400); - } - pEnv = getenv("BACNET_MSTP_MAC"); - if (pEnv) { - dlmstp_set_mac_address(strtol(pEnv, NULL, 0)); - } else { - dlmstp_set_mac_address(127); - } -#endif - if (!datalink_init(getenv("BACNET_IFACE"))) { - exit(1); - } -#if defined(BACDL_BIP) && BBMD_ENABLED - pEnv = getenv("BACNET_BBMD_PORT"); - if (pEnv) { - bbmd_port = strtol(pEnv, NULL, 0); - if (bbmd_port > 0xFFFF) { - bbmd_port = 0xBAC0; - } - } - pEnv = getenv("BACNET_BBMD_TIMETOLIVE"); - if (pEnv) { - bbmd_timetolive_seconds = strtol(pEnv, NULL, 0); - if (bbmd_timetolive_seconds > 0xFFFF) { - bbmd_timetolive_seconds = 0xFFFF; - } - } - pEnv = getenv("BACNET_BBMD_ADDRESS"); - if (pEnv) { - bbmd_address = bip_getaddrbyname(pEnv); - if (bbmd_address) { - struct in_addr addr; - addr.s_addr = bbmd_address; - printf - ("TimeSync: Registering with BBMD at %s:%ld for %ld seconds\n", - inet_ntoa(addr), bbmd_port, bbmd_timetolive_seconds); - bvlc_register_with_bbmd(bbmd_address, bbmd_port, - bbmd_timetolive_seconds); - } - } -#endif -} - int main(int argc, char *argv[]) { BACNET_ADDRESS src = { 0}; /* address where message came from */ @@ -227,7 +142,7 @@ int main(int argc, char *argv[]) { /* setup my info */ Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); /* configure the timeout values */ last_seconds = time(NULL); timeout_seconds = apdu_timeout() / 1000; diff --git a/bacnet-stack/demo/ucov/Makefile b/bacnet-stack/demo/ucov/Makefile index 0ec72185..24ee6a0b 100644 --- a/bacnet-stack/demo/ucov/Makefile +++ b/bacnet-stack/demo/ucov/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/ucov/main.c b/bacnet-stack/demo/ucov/main.c index c80c5032..15a39c06 100644 --- a/bacnet-stack/demo/ucov/main.c +++ b/bacnet-stack/demo/ucov/main.c @@ -48,6 +48,7 @@ #include "handlers.h" #include "client.h" #include "txbuf.h" +#include "dlenv.h" static void Init_Service_Handlers( void) @@ -107,9 +108,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -118,6 +119,15 @@ static void Init_DataLink( dlmstp_set_mac_address(127); } #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } @@ -273,7 +283,7 @@ int main(int argc, char *argv[]) { /* setup my info */ Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); Send_UCOV_Notify(&Handler_Transmit_Buffer[0], &cov_data); return 0; diff --git a/bacnet-stack/demo/whohas/Makefile b/bacnet-stack/demo/whohas/Makefile index b0c6e18e..2bc620ac 100644 --- a/bacnet-stack/demo/whohas/Makefile +++ b/bacnet-stack/demo/whohas/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/whohas/main.c b/bacnet-stack/demo/whohas/main.c index 2fc979a3..a335ab73 100644 --- a/bacnet-stack/demo/whohas/main.c +++ b/bacnet-stack/demo/whohas/main.c @@ -146,9 +146,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -157,6 +157,15 @@ static void Init_DataLink( dlmstp_set_mac_address(127); } #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } diff --git a/bacnet-stack/demo/whois/Makefile b/bacnet-stack/demo/whois/Makefile index 885e487e..71043fdc 100644 --- a/bacnet-stack/demo/whois/Makefile +++ b/bacnet-stack/demo/whois/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/whois/main.c b/bacnet-stack/demo/whois/main.c index 52aa8557..dabcf7e6 100644 --- a/bacnet-stack/demo/whois/main.c +++ b/bacnet-stack/demo/whois/main.c @@ -181,9 +181,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -191,8 +191,16 @@ static void Init_DataLink( } else { dlmstp_set_mac_address(127); } - apdu_timeout_set(60000); #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } diff --git a/bacnet-stack/demo/whoisrouter/Makefile b/bacnet-stack/demo/whoisrouter/Makefile index dc4c4e6c..2cae3320 100644 --- a/bacnet-stack/demo/whoisrouter/Makefile +++ b/bacnet-stack/demo/whoisrouter/Makefile @@ -30,7 +30,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/whoisrouter/main.c b/bacnet-stack/demo/whoisrouter/main.c index 47d59e9d..c6eb4ba2 100644 --- a/bacnet-stack/demo/whoisrouter/main.c +++ b/bacnet-stack/demo/whoisrouter/main.c @@ -226,9 +226,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -237,6 +237,15 @@ static void Init_DataLink( dlmstp_set_mac_address(127); } #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } diff --git a/bacnet-stack/demo/writefile/Makefile b/bacnet-stack/demo/writefile/Makefile index 98283a20..99de6aea 100644 --- a/bacnet-stack/demo/writefile/Makefile +++ b/bacnet-stack/demo/writefile/Makefile @@ -32,7 +32,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/writefile/main.c b/bacnet-stack/demo/writefile/main.c index 9e05c727..cf118e9a 100644 --- a/bacnet-stack/demo/writefile/main.c +++ b/bacnet-stack/demo/writefile/main.c @@ -191,9 +191,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -202,6 +202,15 @@ static void Init_DataLink( dlmstp_set_mac_address(127); } #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } diff --git a/bacnet-stack/demo/writeprop/Makefile b/bacnet-stack/demo/writeprop/Makefile index 00a1bad6..934959fe 100644 --- a/bacnet-stack/demo/writeprop/Makefile +++ b/bacnet-stack/demo/writeprop/Makefile @@ -36,7 +36,7 @@ endif ifeq (${BACNET_PORT},win32) TARGET_BIN = ${TARGET}.exe LIBRARY1=-L=$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) -LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi +LIBRARY2=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm LIBRARIES=$(LIBRARY1),$(LIBRARY2) endif #build for release (default) or debug diff --git a/bacnet-stack/demo/writeprop/main.c b/bacnet-stack/demo/writeprop/main.c index 803ebed2..5312bf13 100644 --- a/bacnet-stack/demo/writeprop/main.c +++ b/bacnet-stack/demo/writeprop/main.c @@ -191,9 +191,9 @@ static void Init_DataLink( } pEnv = getenv("BACNET_MSTP_BAUD"); if (pEnv) { - RS485_Set_Baud_Rate(strtol(pEnv, NULL, 0)); + dlmstp_set_baud_rate(strtol(pEnv, NULL, 0)); } else { - RS485_Set_Baud_Rate(38400); + dlmstp_set_baud_rate(38400); } pEnv = getenv("BACNET_MSTP_MAC"); if (pEnv) { @@ -202,6 +202,15 @@ static void Init_DataLink( dlmstp_set_mac_address(127); } #endif + pEnv = getenv("BACNET_APDU_TIMEOUT"); + if (pEnv) { + apdu_timeout_set(strtol(pEnv, NULL, 0)); + fprintf(stderr, "BACNET_APDU_TIMEOUT=%s\r\n", pEnv); + } else { +#if defined(BACDL_MSTP) + apdu_timeout_set(60000); +#endif + } if (!datalink_init(getenv("BACNET_IFACE"))) { exit(1); } diff --git a/bacnet-stack/include/dlenv.h b/bacnet-stack/include/dlenv.h new file mode 100644 index 00000000..4edc2573 --- /dev/null +++ b/bacnet-stack/include/dlenv.h @@ -0,0 +1,38 @@ +/************************************************************************** +* +* Copyright (C) 2009 Steve Karg +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +* +*********************************************************************/ +#ifndef DLENV_H +#define DLENV_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +void dlenv_init( + void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif diff --git a/bacnet-stack/lib/Makefile b/bacnet-stack/lib/Makefile index afe6a31d..33eb3043 100644 --- a/bacnet-stack/lib/Makefile +++ b/bacnet-stack/lib/Makefile @@ -1,4 +1,4 @@ -#Makefile to build BACnet Library for the Linux Port +#Makefile to build BACnet Library with GCC # tools CC = gcc @@ -74,6 +74,7 @@ CORE_SRC = \ $(BACNET_CORE)/version.c HANDLER_SRC = \ + $(BACNET_HANDLER)/dlenv.c \ $(BACNET_HANDLER)/txbuf.c \ $(BACNET_HANDLER)/noserv.c \ $(BACNET_HANDLER)/h_npdu.c \ diff --git a/bacnet-stack/lib/bacnet.cbp b/bacnet-stack/lib/bacnet.cbp index 1d955778..7506d4e2 100644 --- a/bacnet-stack/lib/bacnet.cbp +++ b/bacnet-stack/lib/bacnet.cbp @@ -145,9 +145,12 @@ - - + + + + diff --git a/bacnet-stack/lib/bacnetdll.cbp b/bacnet-stack/lib/bacnetdll.cbp index b7c48f0d..84634721 100644 --- a/bacnet-stack/lib/bacnetdll.cbp +++ b/bacnet-stack/lib/bacnetdll.cbp @@ -110,7 +110,8 @@ - + + diff --git a/bacnet-stack/lib/makefile.b32 b/bacnet-stack/lib/makefile.b32 index 5704fc67..b83342ed 100644 --- a/bacnet-stack/lib/makefile.b32 +++ b/bacnet-stack/lib/makefile.b32 @@ -72,7 +72,9 @@ CORE3_SRC = $(BACNET_CORE)\arf.c \ $(BACNET_CORE)\whois.c \ $(BACNET_CORE)\wp.c -HANDLER_SRC = $(BACNET_HANDLER)\txbuf.c \ +HANDLER_SRC = \ + $(BACNET_HANDLER)\dlenv.c \ + $(BACNET_HANDLER)\txbuf.c \ $(BACNET_HANDLER)\noserv.c \ $(BACNET_HANDLER)\h_whois.c \ $(BACNET_HANDLER)\h_npdu.c \ diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.dsp b/bacnet-stack/ports/win32/bacnet/bacnet.dsp index 6593dda6..9a4c82a8 100644 --- a/bacnet-stack/ports/win32/bacnet/bacnet.dsp +++ b/bacnet-stack/ports/win32/bacnet/bacnet.dsp @@ -329,6 +329,10 @@ SOURCE=..\..\..\demo\handler\txbuf.c # End Source File # Begin Source File +SOURCE=..\..\..\demo\handler\dlenv.c +# End Source File +# Begin Source File + SOURCE=..\..\..\src\version.c # End Source File # Begin Source File diff --git a/bacnet-stack/ports/win32/dlmstp.cbp b/bacnet-stack/ports/win32/dlmstp.cbp index cf493cab..17ce6d89 100644 --- a/bacnet-stack/ports/win32/dlmstp.cbp +++ b/bacnet-stack/ports/win32/dlmstp.cbp @@ -44,36 +44,18 @@ - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/bacnet-stack/ports/win32/rs485.c b/bacnet-stack/ports/win32/rs485.c index 9f366e37..36cb0b0c 100644 --- a/bacnet-stack/ports/win32/rs485.c +++ b/bacnet-stack/ports/win32/rs485.c @@ -116,8 +116,6 @@ static void RS485_Print_Error( void) { LPVOID lpMsgBuf; - DWORD dwExtSize; - DWORD dwErr; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */ (LPTSTR) & lpMsgBuf, 0, NULL);