File tree Expand file tree Collapse file tree
thingsboard_gateway/connectors/bacnet Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1717from threading import Thread
1818
1919from bacpypes3 .primitivedata import ObjectIdentifier
20+ from bacpypes3 .pdu import LocalBroadcast , Address
2021
2122from thingsboard_gateway .connectors .bacnet .bacnet_uplink_converter import AsyncBACnetUplinkConverter
2223from thingsboard_gateway .connectors .bacnet .entities .bacnet_device_details import BACnetDeviceDetails
@@ -118,12 +119,21 @@ def is_address_match(address, pattern):
118119
119120 @staticmethod
120121 def get_address_regex (pattern ):
121- regex = escape (pattern ).replace ("X" , r"\d" )
122+ regex = ''
123+ i = 0
124+ while i < len (pattern ):
125+ if pattern [i ] == 'X' :
126+ while i < len (pattern ) and pattern [i ] == 'X' :
127+ i += 1
128+ regex += r'\d+'
129+ else :
130+ regex += escape (pattern [i ])
131+ i += 1
122132 return f"^{ regex } $"
123133
124134 @staticmethod
125135 def get_who_is_address (address ):
126- if Device . is_pattern_address ( address ) :
136+ if 'X' in address or '*' in address :
127137 return Device .__get_broadcast_address (address )
128138 else :
129139 return address
You can’t perform that action at this time.
0 commit comments