From c0d63a1ed0781cb8bc8d6c37a9f26aa1a4366934 Mon Sep 17 00:00:00 2001 From: skarg Date: Sun, 18 Jul 2010 20:22:24 +0000 Subject: [PATCH] Added a MSTP monitor build for BACnet Development Kit. Use 'make BUILD=monitor' with Makefile. Uses second serial port at 115200, and can be monitored using mstpcap utility. --- bacnet-stack/ports/bdk-atxx4-mstp/Makefile | 6 +++++- bacnet-stack/ports/bdk-atxx4-mstp/bacnet.c | 1 + bacnet-stack/ports/bdk-atxx4-mstp/rs485.c | 6 ++++++ bacnet-stack/ports/bdk-atxx4-mstp/test.c | 16 ++++++++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile index dbd9aaea..126dd741 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile +++ b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile @@ -155,6 +155,10 @@ ifeq (${BUILD},release) OPTIMIZATION = -Os $(OPTIMIZE_FLAGS) DEBUGGING = -DNDEBUG endif +ifeq (${BUILD},monitor) +OPTIMIZATION = -Os $(OPTIMIZE_FLAGS) +DEBUGGING = -DNDEBUG -DMSTP_MONITOR +endif ## BACnet options BFLAGS = -DBACDL_MSTP @@ -271,7 +275,7 @@ AVRDUDE_WRITE_FLASH = -e -U flash:w:$(TARGET).hex AVRDUDE_INSTALL = $(AVRDUDE_WRITE_FLASH) #AVRDUDE_INSTALL += $(AVRDUDE_WRITE_FUSES) -## Objects that must be built in order to link +## Objects not in library that must be built in order to link OBJECTS = $(COBJ) $(DEMOOBJ) ## Build diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.c b/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.c index ba1687ec..c5218b3f 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/bacnet.c @@ -31,6 +31,7 @@ #include "nvdata.h" #include "rs485.h" #include "input.h" +#include "adc.h" /* BACnet Stack includes */ #include "datalink.h" #include "npdu.h" diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/rs485.c b/bacnet-stack/ports/bdk-atxx4-mstp/rs485.c index 6287b25e..d546f292 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/rs485.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/rs485.c @@ -108,6 +108,9 @@ ISR(USART0_RX_vect) if (BIT_CHECK(UCSR0A, RXC0)) { /* data is available */ data_byte = UDR0; +#ifdef MSTP_MONITOR + UDR1 = data_byte; +#endif (void) FIFO_Put(&Receive_Buffer, data_byte); timer_elapsed_start(&Silence_Timer); } @@ -144,6 +147,9 @@ void rs485_bytes_send( while (nbytes) { /* Send the data byte */ UDR0 = *buffer; +#ifdef MSTP_MONITOR + UDR1 = *buffer; +#endif while (!BIT_CHECK(UCSR0A, UDRE0)) { /* do nothing - wait until Tx buffer is empty */ } diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/test.c b/bacnet-stack/ports/bdk-atxx4-mstp/test.c index e1192cff..c908259a 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/test.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/test.c @@ -39,9 +39,24 @@ static uint8_t MSTP_MAC_Address; void test_init( void) { +#ifdef MSTP_MONITOR + serial_baud_rate_set(115200); +#else + serial_baud_rate_set(9600); +#endif timer_interval_start_seconds(&Test_Timer, 1); } +#ifdef MSTP_MONITOR +void test_task( + void) +{ + if (timer_interval_expired(&Test_Timer)) { + timer_interval_reset(&Test_Timer); + MSTP_MAC_Address = MSTP_MAC_Address; + } +} +#else void test_task( void) { @@ -81,3 +96,4 @@ void test_task( serial_byte_transmit_complete(); } } +#endif