From 83857fe94d8716a902e326f9edf7a493d07ee538 Mon Sep 17 00:00:00 2001 From: Joel Bender Date: Wed, 14 Feb 2018 22:28:56 -0500 Subject: [PATCH] fixes #166 --- py25/bacpypes/bvllservice.py | 96 ++++++++++++++++++++++++++++++++++++ py27/bacpypes/bvllservice.py | 96 ++++++++++++++++++++++++++++++++++++ py34/bacpypes/bvllservice.py | 96 ++++++++++++++++++++++++++++++++++++ 3 files changed, 288 insertions(+) diff --git a/py25/bacpypes/bvllservice.py b/py25/bacpypes/bvllservice.py index e195d39..eabd4cc 100755 --- a/py25/bacpypes/bvllservice.py +++ b/py25/bacpypes/bvllservice.py @@ -407,6 +407,54 @@ class BIPSimple(BIPSAP, Client, Server): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPSimple._warning("invalid pdu type: %s", type(pdu)) @@ -525,6 +573,54 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPForeign._warning("invalid pdu type: %s", type(pdu)) diff --git a/py27/bacpypes/bvllservice.py b/py27/bacpypes/bvllservice.py index 8c01f05..ae71941 100755 --- a/py27/bacpypes/bvllservice.py +++ b/py27/bacpypes/bvllservice.py @@ -404,6 +404,54 @@ class BIPSimple(BIPSAP, Client, Server): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPSimple._warning("invalid pdu type: %s", type(pdu)) @@ -521,6 +569,54 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPForeign._warning("invalid pdu type: %s", type(pdu)) diff --git a/py34/bacpypes/bvllservice.py b/py34/bacpypes/bvllservice.py index 2a6285c..db7e529 100755 --- a/py34/bacpypes/bvllservice.py +++ b/py34/bacpypes/bvllservice.py @@ -403,6 +403,54 @@ class BIPSimple(BIPSAP, Client, Server): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPSimple._warning("invalid pdu type: %s", type(pdu)) @@ -520,6 +568,54 @@ class BIPForeign(BIPSAP, Client, Server, OneShotTask, DebugContents): # send it upstream self.response(xpdu) + elif isinstance(pdu, WriteBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0010, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadBroadcastDistributionTable): + # build a response + xpdu = Result(code=0x0020, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, RegisterForeignDevice): + # build a response + xpdu = Result(code=0x0030, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, ReadForeignDeviceTable): + # build a response + xpdu = Result(code=0x0040, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DeleteForeignDeviceTableEntry): + # build a response + xpdu = Result(code=0x0050, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + + elif isinstance(pdu, DistributeBroadcastToNetwork): + # build a response + xpdu = Result(code=0x0060, user_data=pdu.pduUserData) + xpdu.pduDestination = pdu.pduSource + + # send it downstream + self.request(xpdu) + else: BIPForeign._warning("invalid pdu type: %s", type(pdu))