From 967b86721fa8d94b60a47f42e271ccc452012b7f Mon Sep 17 00:00:00 2001 From: skarg Date: Sun, 23 Aug 2009 03:36:11 +0000 Subject: [PATCH] Updated some old demos for the new RP handling. --- bacnet-stack/ports/linux/main.c | 29 +++------- bacnet-stack/ports/win32/main.c | 96 +++------------------------------ 2 files changed, 14 insertions(+), 111 deletions(-) diff --git a/bacnet-stack/ports/linux/main.c b/bacnet-stack/ports/linux/main.c index 7c90c1f4..5a902258 100644 --- a/bacnet-stack/ports/linux/main.c +++ b/bacnet-stack/ports/linux/main.c @@ -43,6 +43,7 @@ #include "datalink.h" #include "net.h" #include "txbuf.h" +#include "dlenv.h" /* This is an example application using the BACnet Stack on Linux */ bool Who_Is_Request = true; @@ -161,6 +162,11 @@ static void Read_Properties( static void Init_Service_Handlers( void) { + Device_Init(); + handler_read_property_object_set( + OBJECT_DEVICE, + Device_Encode_Property_APDU, + Device_Valid_Object_Instance_Number); /* we need to handle who-is to support dynamic device binding */ apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, LocalIAmHandler); @@ -173,15 +179,9 @@ static void Init_Service_Handlers( /* We must implement read property - it's required! */ apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, - handler_write_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_ATOMIC_READ_FILE, - handler_atomic_read_file); /* handle the data coming back from confirmed requests */ apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property_ack); - apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_ATOMIC_READ_FILE, - handler_atomic_read_file_ack); } static void print_address_cache( @@ -246,22 +246,7 @@ int main( /* setup this BACnet Server device */ Device_Set_Object_Instance_Number(111); Init_Service_Handlers(); -#ifdef BACDL_ETHERNET - /* init the physical layer */ - if (!ethernet_init("eth0")) - return 1; -#endif -#ifdef BACDL_BIP - bip_set_interface("eth0"); - bip_set_port(0xBAC0); - if (!bip_init()) - return 1; -#endif -#ifdef BACDL_ARCNET - if (!arcnet_init("arc0")) - return 1; -#endif - + dlenv_init(); /* loop forever */ for (;;) { /* input */ diff --git a/bacnet-stack/ports/win32/main.c b/bacnet-stack/ports/win32/main.c index 91785a34..a8cdf3e8 100644 --- a/bacnet-stack/ports/win32/main.c +++ b/bacnet-stack/ports/win32/main.c @@ -41,6 +41,7 @@ #include "client.h" #include "datalink.h" #include "txbuf.h" +#include "dlenv.h" /* buffer used for receive */ static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; @@ -153,6 +154,11 @@ static void LocalIAmHandler( static void Init_Service_Handlers( void) { + Device_Init(); + handler_read_property_object_set( + OBJECT_DEVICE, + Device_Encode_Property_APDU, + Device_Valid_Object_Instance_Number); /* we need to handle who-is to support dynamic device binding */ apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_WHO_IS, handler_who_is); apdu_set_unconfirmed_handler(SERVICE_UNCONFIRMED_I_AM, LocalIAmHandler); @@ -164,8 +170,6 @@ static void Init_Service_Handlers( /* we must implement read property - it's required! */ apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property); - apdu_set_confirmed_handler(SERVICE_CONFIRMED_WRITE_PROPERTY, - handler_write_property); /* handle the data coming back from confirmed requests */ apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROPERTY, handler_read_property_ack); @@ -208,92 +212,6 @@ static void print_address_cache( } } -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 */ @@ -306,7 +224,7 @@ int main(int argc, char *argv[]) { (void) argv; Device_Set_Object_Instance_Number(4194303); Init_Service_Handlers(); - Init_DataLink(); + dlenv_init(); datalink_get_broadcast_address(&broadcast_address); print_address("Broadcast", &broadcast_address); datalink_get_my_address(&my_address);