From cc3ec5ba38a4fc7be014a648ecaea5334baea121 Mon Sep 17 00:00:00 2001 From: skarg Date: Fri, 27 May 2005 12:39:32 +0000 Subject: [PATCH] created --- bacnet-stack/datalink.c | 95 +++++++++++++++++++++++++++++++++++++++++ bacnet-stack/datalink.h | 66 ++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 bacnet-stack/datalink.c create mode 100644 bacnet-stack/datalink.h diff --git a/bacnet-stack/datalink.c b/bacnet-stack/datalink.c new file mode 100644 index 00000000..8de7edeb --- /dev/null +++ b/bacnet-stack/datalink.c @@ -0,0 +1,95 @@ +/*####COPYRIGHTBEGIN#### + ------------------------------------------- + Copyright (C) 2004 Steve Karg + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to: + The Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA. + + As a special exception, if other files instantiate templates or + use macros or inline functions from this file, or you compile + this file and link it with other works to produce a work based + on this file, this file does not by itself cause the resulting + work to be covered by the GNU General Public License. However + the source code for this file must still be made available in + accordance with section (3) of the GNU General Public License. + + This exception does not invalidate any other reasons why a work + based on this file might be covered by the GNU General Public + License. + ------------------------------------------- +####COPYRIGHTEND####*/ +#include +#include +#include +#include "datalink.h" +// currently this is oriented to a single data link +// However, it could handle multiple data links with the +// addition of passing a network number or datalink number +// as part of the calls. + +int datalink_send_pdu( + BACNET_ADDRESS *dest, // destination address + uint8_t *pdu, // any data to be sent - may be null + unsigned pdu_len) // number of bytes of data +{ +#ifdef BACDL_ETHERNET + return ethernet_send_pdu( + dest, + pdu, + pdu_len); +#endif +#ifdef BACDL_MSTP + return mstp_send_pdu( + dest, + pdu, + pdu_len); +#endif +#ifdef BACDL_BIP + return bip_send_pdu( + dest, + pdu, + pdu_len); +#endif +} + +void datalink_get_broadcast_address( + BACNET_ADDRESS *dest) // destination address +{ +#ifdef BACDL_ETHERNET + ethernet_get_broadcast_address(dest); +#endif +#ifdef BACDL_MSTP + mstp_get_broadcast_address(dest); +#endif +#ifdef BACDL_BIP + bip_get_broadcast_address(dest); +#endif +} + +void datalink_get_my_address( + BACNET_ADDRESS *my_address) +{ +#ifdef BACDL_ETHERNET + ethernet_get_my_address(my_address); +#endif +#ifdef BACDL_MSTP + mstp_get_my_address(my_address); +#endif +#ifdef BACDL_BIP + bip_get_my_address(my_address); +#endif +} + diff --git a/bacnet-stack/datalink.h b/bacnet-stack/datalink.h new file mode 100644 index 00000000..d2cc67e4 --- /dev/null +++ b/bacnet-stack/datalink.h @@ -0,0 +1,66 @@ +/*####COPYRIGHTBEGIN#### + ------------------------------------------- + Copyright (C) 2005 Steve Karg + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to: + The Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA. + + As a special exception, if other files instantiate templates or + use macros or inline functions from this file, or you compile + this file and link it with other works to produce a work based + on this file, this file does not by itself cause the resulting + work to be covered by the GNU General Public License. However + the source code for this file must still be made available in + accordance with section (3) of the GNU General Public License. + + This exception does not invalidate any other reasons why a work + based on this file might be covered by the GNU General Public + License. + ------------------------------------------- +####COPYRIGHTEND####*/ +#ifndef DATALINK_H +#define DATALINK_H + +#include +#include +#include +#include "bacdef.h" + +#ifdef BACDL_ETHERNET +#include "ethernet.h" +#endif + +#ifdef BACDL_MSTP +#include "mstp.h" +#endif + +#ifdef BACDL_BIP +#include "bip.h" +#endif + + +int datalink_send_pdu( + BACNET_ADDRESS *dest, // destination address + uint8_t *pdu, // any data to be sent - may be null + unsigned pdu_len); // number of bytes of data + +void datalink_get_broadcast_address( + BACNET_ADDRESS *dest); // destination address + +void datalink_get_my_address( + BACNET_ADDRESS *my_address); + +#endif