3232 SimpleAckPDU ,
3333 ErrorRejectAbortNack
3434)
35+ from bacpypes3 .comm import bind
3536
37+ from thingsboard_gateway .connectors .bacnet .application_service_access_point import ApplicationServiceAccessPoint
3638from thingsboard_gateway .connectors .bacnet .device import Device
3739from thingsboard_gateway .connectors .bacnet .entities .device_object_config import DeviceObjectConfig
3840
@@ -45,6 +47,9 @@ def __init__(self, device_object_config: DeviceObjectConfig, indication_callback
4547 self .__device_object = DeviceObject (** self .__device_object_config .device_object_config )
4648 super ().__init__ (self .__device_object , Address (self .__device_object_config .address ))
4749
50+ self .asap = ApplicationServiceAccessPoint (self .device_object , self .device_info_cache )
51+ bind (self , self .asap , self .nsap )
52+
4853 self .__log = logger
4954 self .__indication_callback = indication_callback
5055 self .__confirmation_queue = Queue (1_000_000 )
@@ -125,17 +130,22 @@ async def get_object_identifiers_without_segmentation(
125130 "objectList" ,
126131 array_index = 0 ,
127132 )
133+ except Exception as e :
134+ self .__log .error ('%s error reading object-list length: %s' , device_identifier , e )
135+ return []
128136
129- for i in range (object_list_length ):
137+ for i in range (object_list_length ):
138+ try :
130139 object_identifier = await self .read_property (
131140 device_address ,
132141 device_identifier ,
133142 "objectList" ,
134143 array_index = i + 1 ,
135144 )
136145 object_list .append (object_identifier )
137- except ErrorRejectAbortNack as err :
138- self .__log .info (f"{ device_identifier } object-list length error/reject: { err } " )
146+ except Exception as e :
147+ self .__log .error ('%s error reading object-list[%d]: %s' , device_identifier , i + 1 , e )
148+ continue
139149
140150 return object_list
141151
0 commit comments