From 9efd3465cf6aa4833194c3525616d835009b0970 Mon Sep 17 00:00:00 2001 From: tbrennan3 Date: Thu, 7 Oct 2010 20:56:09 +0000 Subject: [PATCH] Adding more support for Network Layer Message handling. --- bacnet-stack/include/bactext.h | 3 +++ bacnet-stack/include/client.h | 6 +++++- bacnet-stack/include/handlers.h | 1 + bacnet-stack/src/bactext.c | 36 +++++++++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/bacnet-stack/include/bactext.h b/bacnet-stack/include/bactext.h index 2cac24dc..498c0829 100644 --- a/bacnet-stack/include/bactext.h +++ b/bacnet-stack/include/bactext.h @@ -120,6 +120,9 @@ extern "C" { const char *search_name, unsigned *found_index); + const char *bactext_network_layer_msg_name( + unsigned index); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/bacnet-stack/include/client.h b/bacnet-stack/include/client.h index 84887295..7fe8833a 100644 --- a/bacnet-stack/include/client.h +++ b/bacnet-stack/include/client.h @@ -185,6 +185,10 @@ extern "C" { uint32_t device_id, BACNET_EVENT_NOTIFICATION_DATA * data); + int Send_Network_Layer_Message( + BACNET_NETWORK_MESSAGE_TYPE network_message_type, + BACNET_ADDRESS * dst, + int * iArgs ); void Send_Who_Is_Router_To_Network( BACNET_ADDRESS * dst, int dnet); @@ -194,7 +198,7 @@ extern "C" { BACNET_ADDRESS * dst, BACNET_ROUTER_PORT * router_port_list); void Send_Initialize_Routing_Table_Ack( - BACNET_ROUTER_PORT * router_port_list); + const int DNET_list[]); uint8_t Send_Life_Safety_Operation_Data( uint32_t device_id, diff --git a/bacnet-stack/include/handlers.h b/bacnet-stack/include/handlers.h index cc261218..96be447a 100644 --- a/bacnet-stack/include/handlers.h +++ b/bacnet-stack/include/handlers.h @@ -56,6 +56,7 @@ extern "C" { void routing_npdu_handler( BACNET_ADDRESS * src, + int * DNET_list, uint8_t * pdu, uint16_t pdu_len); diff --git a/bacnet-stack/src/bactext.c b/bacnet-stack/src/bactext.c index 282a401f..08d4494e 100644 --- a/bacnet-stack/src/bactext.c +++ b/bacnet-stack/src/bactext.c @@ -1989,3 +1989,39 @@ const char *bactext_node_type_name( return indtext_by_index_default(bacnet_node_type_names, index, ASHRAE_Reserved_String); } + +INDTEXT_DATA network_layer_msg_names[] = { + {NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK, "Who-Is-Router-To-Network"} + , + {NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK, "I-Am-Router-To-Network"} + , + {NETWORK_MESSAGE_I_COULD_BE_ROUTER_TO_NETWORK, "I-Could-Be-Router-To-Network"} + , + {NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK, "Reject-Message-to-Network"} + , + {NETWORK_MESSAGE_ROUTER_BUSY_TO_NETWORK, "Router-Busy-To-Network"} + , + {NETWORK_MESSAGE_ROUTER_AVAILABLE_TO_NETWORK, "Router-Available-To-Network"} + , + {NETWORK_MESSAGE_INIT_RT_TABLE, "Initialize-Routing-Table"} + , + {NETWORK_MESSAGE_INIT_RT_TABLE_ACK, "Initialize-Routing-Table-Ack"} + , + {NETWORK_MESSAGE_ESTABLISH_CONNECTION_TO_NETWORK, "Est-Conn-Ntwk"} + , /* Terse since unused */ + {NETWORK_MESSAGE_DISCONNECT_CONNECTION_TO_NETWORK, "Dsc-Conn-Ntwk"} + , + {0, NULL} +}; + +const char *bactext_network_layer_msg_name( + unsigned index) +{ + if ( index <= 0x7F ) + return indtext_by_index_default(network_layer_msg_names, index, + ASHRAE_Reserved_String); + else if ( index < NETWORK_MESSAGE_INVALID ) + return Vendor_Proprietary_String; + else + return "Invalid Network Layer Message"; +}