From dffc351abef659037c718d6ba19d6aaca580fa63 Mon Sep 17 00:00:00 2001 From: Patrick Grimm Date: Sun, 30 Oct 2016 23:23:46 +0100 Subject: [PATCH] cleanup --- demo/object/.nc.c.marks | Bin 30 -> 0 bytes ports/linux/main.c | 289 ---------------------------------------- release-branch.sh | 119 ----------------- 3 files changed, 408 deletions(-) delete mode 100644 demo/object/.nc.c.marks delete mode 100644 ports/linux/main.c delete mode 100644 release-branch.sh diff --git a/demo/object/.nc.c.marks b/demo/object/.nc.c.marks deleted file mode 100644 index 66750c09c9a6576a54dc798501aabe1f33b65848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30 bcmY#nur@X{Ff@mdT#7)hnX!chgyaGMP=^Im diff --git a/ports/linux/main.c b/ports/linux/main.c deleted file mode 100644 index 0da82c0..0000000 --- a/ports/linux/main.c +++ /dev/null @@ -1,289 +0,0 @@ -/************************************************************************** -* -* Copyright (C) 2005 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. -* -*********************************************************************/ -#include -#include -#include -#include -#include -#include -#include "config.h" -#include "address.h" -#include "bacdef.h" -#include "handlers.h" -#include "client.h" -#include "bacdcode.h" -#include "npdu.h" -#include "apdu.h" -#include "iam.h" -#include "tsm.h" -#include "device.h" -#include "bacfile.h" -#include "datalink.h" -#include "net.h" -#include "txbuf.h" -#include "dlenv.h" - -/** @file linux/main.c Example application using the BACnet Stack on Linux. */ - -bool Who_Is_Request = true; - -/* buffers used for receiving */ -static uint8_t Rx_Buf[MAX_MPDU] = { 0 }; - -static void LocalIAmHandler( - uint8_t * service_request, - uint16_t service_len, - BACNET_ADDRESS * src) -{ - int len = 0; - uint32_t device_id = 0; - unsigned max_apdu = 0; - int segmentation = 0; - uint16_t vendor_id = 0; - - (void) src; - (void) service_len; - len = - iam_decode_service_request(service_request, &device_id, &max_apdu, - &segmentation, &vendor_id); - fprintf(stderr, "Received I-Am Request"); - if (len != -1) { - fprintf(stderr, " from %u!\n", device_id); - address_add(device_id, max_apdu, src); - } else - fprintf(stderr, "!\n"); - - return; -} - -static void Read_Properties( - void) -{ - uint32_t device_id = 0; - bool status = false; - unsigned max_apdu = 0; - BACNET_ADDRESS src; - bool next_device = false; - static unsigned index = 0; - static unsigned property = 0; - /* list of required (and some optional and proprietary) - properties in the Device Object. Note that this demo - tests for error messages so that the device doesn't have - to have all the properties listed here. */ - const int object_props[] = { - PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, - PROP_OBJECT_TYPE, - PROP_SYSTEM_STATUS, - PROP_VENDOR_NAME, - PROP_VENDOR_IDENTIFIER, - PROP_MODEL_NAME, - PROP_FIRMWARE_REVISION, - PROP_APPLICATION_SOFTWARE_VERSION, - PROP_PROTOCOL_VERSION, - PROP_PROTOCOL_SERVICES_SUPPORTED, - PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED, - PROP_MAX_APDU_LENGTH_ACCEPTED, - PROP_SEGMENTATION_SUPPORTED, - PROP_LOCAL_TIME, - PROP_LOCAL_DATE, - PROP_UTC_OFFSET, - PROP_DAYLIGHT_SAVINGS_STATUS, - PROP_APDU_SEGMENT_TIMEOUT, - PROP_APDU_TIMEOUT, - PROP_NUMBER_OF_APDU_RETRIES, - PROP_TIME_SYNCHRONIZATION_RECIPIENTS, - PROP_MAX_MASTER, - PROP_MAX_INFO_FRAMES, - PROP_DEVICE_ADDRESS_BINDING, - /* note: PROP_OBJECT_LIST is missing because - the result can be very large. Read index 0 - which gives us the number of objects in the list, - and then we can read index 1, 2.. n one by one, - rather than trying to read the entire object - list in one message. */ - /* some proprietary properties */ - 514, 515, - /* end of list */ - -1 - }; - - if (address_count()) { - if (address_get_by_index(index, &device_id, &max_apdu, &src)) { - if (object_props[property] < 0) - next_device = true; - else { - /* note: if we wanted to do this synchronously, we would get the - invoke ID from the sending of the request, and wait until we - got the reply with matching invoke ID or the TSM of the - invoke ID expired. This demo is doing things asynchronously. */ - status = Send_Read_Property_Request(device_id, /* destination device */ - OBJECT_DEVICE, device_id, object_props[property], - BACNET_ARRAY_ALL); - if (status) - property++; - } - } else - next_device = true; - if (next_device) { - next_device = false; - index++; - if (index >= MAX_ADDRESS_CACHE) - index = 0; - property = 0; - } - } - - return; -} - -static void Init_Service_Handlers( - void) -{ - Device_Init(NULL); - 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); - - /* set the handler for all the services we don't implement */ - /* It is required to send the proper reject message... */ - apdu_set_unrecognized_service_handler_handler - (handler_unrecognized_service); - /* Set the handlers for any confirmed services that we support. */ - /* We must implement read property - it's required! */ - apdu_set_confirmed_handler(SERVICE_CONFIRMED_READ_PROPERTY, - handler_read_property); - /* handle the data coming back from confirmed requests */ - apdu_set_confirmed_ack_handler(SERVICE_CONFIRMED_READ_PROPERTY, - handler_read_property_ack); -} - -static void print_address_cache( - void) -{ - unsigned i, j; - BACNET_ADDRESS address; - uint32_t device_id = 0; - unsigned max_apdu = 0; - - fprintf(stderr, "Device\tMAC\tMaxAPDU\tNet\n"); - for (i = 0; i < MAX_ADDRESS_CACHE; i++) { - if (address_get_by_index(i, &device_id, &max_apdu, &address)) { - fprintf(stderr, "%u\t", device_id); - for (j = 0; j < address.mac_len; j++) { - fprintf(stderr, "%02X", address.mac[j]); - } - fprintf(stderr, "\t"); - fprintf(stderr, "%hu\t", max_apdu); - fprintf(stderr, "%hu\n", address.net); - } - } -} - -static void print_tsm_stats( - void) -{ - int idle = 0; - int total = 0; - - idle = tsm_transaction_idle_count(); - total = MAX_TSM_TRANSACTIONS; - fprintf(stderr, "TSM: %d idle of %d transactions\n", idle, total); -} - -static void sig_handler( - int signo) -{ - datalink_cleanup(); - print_address_cache(); - print_tsm_stats(); - - exit(0); -} - -int main( - int argc, - char *argv[]) -{ - BACNET_ADDRESS src = { 0 }; /* address where message came from */ - uint16_t pdu_len = 0; - unsigned timeout = 100; /* milliseconds */ - unsigned count = 0; /* milliseconds */ - time_t start_time; - time_t new_time = 0; - - start_time = time(NULL); /* get current time */ - /* Linux specials */ - signal(SIGINT, sig_handler); - signal(SIGHUP, sig_handler); - signal(SIGTERM, sig_handler); - /* setup this BACnet Server device */ - Device_Set_Object_Instance_Number(111); - Init_Service_Handlers(); - dlenv_init(); - /* loop forever */ - for (;;) { - /* input */ - new_time = time(NULL); - /* returns 0 bytes on timeout */ - pdu_len = datalink_receive(&src, &Rx_Buf[0], MAX_MPDU, timeout); - - /* process */ - if (pdu_len) { - npdu_handler(&src, &Rx_Buf[0], pdu_len); - } - if (new_time > start_time) { - tsm_timer_milliseconds(new_time - start_time * 1000); - start_time = new_time; - } - if (I_Am_Request) { - I_Am_Request = false; - Send_I_Am(&Handler_Transmit_Buffer[0]); - } else if (Who_Is_Request) { - Who_Is_Request = false; - Send_WhoIs(-1, -1); - } - /* output */ - /* some round robin task switching */ - count++; - switch (count) { - case 1: - /* used for testing, but kind of noisy on the network */ - /*Read_Properties(); */ - break; - case 2: - break; - default: - count = 0; - break; - } - - /* blink LEDs, Turn on or off outputs, etc */ - } - - return 0; -} diff --git a/release-branch.sh b/release-branch.sh deleted file mode 100644 index d2e23f3..0000000 --- a/release-branch.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh -# Release helper for this project - -PROJECT=bacnet -SVN_MODULE=bacnet-stack -FRS_URL=skarg,bacnet@frs.sourceforge.net:/home/frs/project/b/ba/bacnet/bacnet-stack - -if [ -z "$1" ] && [ -z "$2" ] -then - echo "Usage: `basename $0` 0.0.0 0.0.1" - echo "Use dotted version as [branch-revision] [tag-revision]." - echo "Creates the ChangeLog." - echo "Creates the release files." - echo "Tags this branch release in subversion." - exit 1 -fi - -# convert 0.0.0 to 0-0-0 -BRANCH_VERSION_DOTTED="$1" -BRANCH_VERSION_DASHED="$(echo "$1" | sed 's/[\.*]/-/g')" -TAGGED_VERSION_DOTTED="$2" -TAGGED_VERSION_DASHED="$(echo "$2" | sed 's/[\.*]/-/g')" -echo "Creating the ${TAGGED_VERSION_DOTTED} release files for ${BRANCH_VERSION_DOTTED}" - -CHANGELOG=ChangeLog-${TAGGED_VERSION_DOTTED} -echo "Creating the ${PROJECT} change log ${CHANGELOG}" -if [ -e "${CHANGELOG}" ] -then -rm ${CHANGELOG} -fi -svn update -svn log --xml --verbose | xsltproc svn2cl.xsl - > ${CHANGELOG} -if [ -e "${CHANGELOG}" ] -then - echo "${CHANGELOG} created." -else - echo "Failed to create ${CHANGELOG}" - exit 1 -fi - -BRANCH_NAME=${SVN_MODULE}-${BRANCH_VERSION_DASHED} -ARCHIVE_NAME=${SVN_MODULE}-${TAGGED_VERSION_DOTTED} -TAGGED_NAME=${SVN_MODULE}-${TAGGED_VERSION_DASHED} -SVN_BASE_URL=https://${PROJECT}.svn.sourceforge.net/svnroot/${PROJECT} - -SVN_BRANCH_NAME=${SVN_BASE_URL}/branches/releases/${BRANCH_NAME} -SVN_TAGGED_NAME=${SVN_BASE_URL}/tags/${TAGGED_NAME} -echo "Setting a tag on the ${SVN_MODULE} module called ${TAGGED_NAME}" -svn copy ${SVN_BRANCH_NAME} ${SVN_TAGGED_NAME} -m "tagged" > /dev/null -echo "done." - -if [ -d "${ARCHIVE_NAME}" ] -then - echo "removing old ${ARCHIVE_NAME}..." - rm -rf ${ARCHIVE_NAME} - echo "done." -fi - -echo "Getting a clean version out of subversion for Linux gzip" -svn export ${SVN_TAGGED_NAME} ${ARCHIVE_NAME} > /dev/null -echo "done." - -GZIP_FILENAME=${ARCHIVE_NAME}.tgz -echo "tar and gzip the clean directory" -if [ -e "${GZIP_FILENAME}" ] -then - echo "removing old ${GZIP_FILENAME}..." - rm ${GZIP_FILENAME} - echo "done." -fi -tar -cvvzf ${GZIP_FILENAME} ${ARCHIVE_NAME}/ > /dev/null -echo "done." -if [ -e "${GZIP_FILENAME}" ] -then - echo "${GZIP_FILENAME} created." -else - echo "Failed to create ${GZIP_FILENAME}" - exit 1 -fi - -if [ -d "${ARCHIVE_NAME}" ] -then - echo "removing old ${ARCHIVE_NAME}..." - rm -rf ${ARCHIVE_NAME} - echo "done." -fi -echo "Getting another clean version out of subversion for Windows zip" -svn export --native-eol CRLF ${SVN_TAGGED_NAME} ${ARCHIVE_NAME} > /dev/null -ZIP_FILENAME=${ARCHIVE_NAME}.zip -echo "done." -echo "Zipping the directory exported for Windows." -zip -r ${ZIP_FILENAME} ${ARCHIVE_NAME} > /dev/null -if [ -e "${ZIP_FILENAME}" ] -then - echo "${ZIP_FILENAME} created." -else - echo "Failed to create ${ZIP_FILENAME}" - exit 1 -fi - -# remove SVN files -if [ -d "${ARCHIVE_NAME}" ] -then - echo "removing ${ARCHIVE_NAME}..." - rm -rf ${ARCHIVE_NAME} - echo "done." -fi - -echo "Creating ${ARCHIVE_NAME}" -mkdir ${ARCHIVE_NAME} -mv ${ZIP_FILENAME} ${ARCHIVE_NAME} -mv ${GZIP_FILENAME} ${ARCHIVE_NAME} -mv ${CHANGELOG} ${ARCHIVE_NAME} -cp readme.txt ${ARCHIVE_NAME} - -echo "Sending ${ARCHIVE_NAME} to SourceForge using scp..." -scp -r ${ARCHIVE_NAME} ${FRS_URL} - -echo "Complete!"