Skip to content

Commit

Permalink
fixed reading binary values that are 0 with read_property_single
Browse files Browse the repository at this point in the history
  • Loading branch information
cmromo committed Dec 11, 2023
1 parent 46bdd73 commit b35bc11
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions services/core/BACnetProxy/bacnet_proxy/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import sys
import datetime
import json
import traceback

from volttron.platform.vip.agent import Agent, RPC
from volttron.platform.async_ import AsyncCall
Expand All @@ -51,7 +52,7 @@

bacnet_logger = logging.getLogger("bacpypes")
bacnet_logger.setLevel(logging.WARNING)
__version__ = '0.5.8'
__version__ = '0.5.9'

from collections import defaultdict

Expand Down Expand Up @@ -999,7 +1000,6 @@ def read_using_single_request(self, target_address, point_map):
Iteratively reads points from a device one at a time
"""
results = {}

for point, properties in point_map.items():
if len(properties) == 3:
object_type, instance_number, property_name = properties
Expand All @@ -1014,7 +1014,7 @@ def read_using_single_request(self, target_address, point_map):
try:
prop = self.read_property(
target_address, object_type, instance_number, property_name, property_index)
if not prop:
if prop is None:
continue
if not self.is_valid_json(prop):
_log.debug(f"not valid JSON: {dir(prop)} on prop")
Expand Down Expand Up @@ -1051,7 +1051,8 @@ def read_property(self, target_address, object_type, instance_number, property_n
self.bacnet_application.submit_request(iocb)
try:
bacnet_results = iocb.ioResult.get(10)
except RuntimeError:
except RuntimeError as exc:
trace = traceback.format_exc()
_log.error(f"could not read {property_name} on {object_type}-{instance_number} from device {target_address}")
return None
# _log.debug(f"found {bacnet_results} for {property_name} on {object_type}-{instance_number} from device {target_address}")
Expand Down Expand Up @@ -1107,7 +1108,7 @@ def find_error_object(self, read_access_list: list, target_address: str, excepti
bacnet_results = {}
for entry in read_access_list:
for prop in entry.listOfPropertyReferences:
_log.debug(f"making request: {target_address=} {entry.objectIdentifier=} {prop.propertyIdentifier=} {prop.propertyArrayIndex=}")
# _log.debug(f"making request: {target_address=} {entry.objectIdentifier=} {prop.propertyIdentifier=} {prop.propertyArrayIndex=}")
request = ReadPropertyRequest(objectIdentifier=entry.objectIdentifier,
propertyIdentifier=prop.propertyIdentifier,
propertyArrayIndex=prop.propertyArrayIndex
Expand Down

0 comments on commit b35bc11

Please sign in to comment.