def __init__(self, character_string=None, code_page=850, **keywords): if character_string != None: if keywords.has_key('decode'): raise ETypeError('character_string and decode keyword ' + 'are mutually exclusive') self.encode(character_string, code_page) elif keywords.has_key('decode'): self.decode(keywords['decode']) else: raise ETypeError('character_string or decode keyword required')
def __init__(self, *args, **keywords): if keywords.has_key('decode'): self.decode(keywords['decode']) elif len(args) == 1: self.encode(args[0]) else: raise ETypeError('requires ndpu or decode')
def decode(self, buffer): if len(buffer) != 10: raise ETypeError('BDT entries must be 10 octets long') self.encoding = buffer self.addr = Addr(self.encoding[0:6]) self.ttl = _str_as_ushort(self.encoding[6:8]) self.seconds_remaining = _str_as_ushort(self.encoding[8:10]) + 30
def decode(self, buffer): if len(buffer) != 10: raise ETypeError('BDT entries must be 10 octets long') self.encoding = buffer self.ip_address = _str_as_ulong(self.encoding[0:4]) self.ip_port = _str_as_ushort(self.encoding[4:6]) self.ip_mask = _str_as_ulong(self.encoding[6:10])
def __init__(self, *args, **keywords): if keywords.has_key('decode'): self.decode(keywords['decode']) elif len(args) == 0: self.encode() else: raise ETypeError('requires no parameters or decode=')
def get_bdt_for(network): if BBMD_servers.has_key(network): try: return BBMD_servers[network].bdt.as_text() except: raise ETypeError('BDT as text failed') return []
def __init__(self, *args, **keywords): self.entries = {} #self.network = 0 #init with network interface number? if keywords.has_key('from_text'): self.from_text(keywords['from_text']) elif len(args) > 0: raise ETypeError('requires no parameters or "from_text="') self._start_ticking()
def update_bbmds(network, list): try: if not BBMD_servers[ network].register_as_foreign_device: #block us from updating a table bdt = BroadcastDistributionTable(_network_map[network]) bdt.update_bbmds(network, list) except: msglog.exception() raise ETypeError('Update BBMDS failed')
def _ip_format_str_as_ulong(string): ip_string = string answer = 0L index = ip_string.find('.') i = 0 while index > 0: i += 1 answer *= 256L v = int(ip_string[0:index]) if v > 255: raise ETypeError('ip value greater than 255') answer += v ip_string = ip_string[index + 1:] index = ip_string.find('.') if i <> 3: raise ETypeError('ipstring format bad: %s' % string) answer *= 256L answer += int(ip_string) return answer
def encode_bit_string(value): """## # Return a Python string that contains the BACnet encoded octets for the # supplied BitString. # @param A BitString instance that describes the bit string # to encode. # @returns A Python string containing the encoded octets.""" if not isinstance(value, BitString): msg = 'Object must be derived from mpx.lib.bacnet.BitString' raise ETypeError(msg) return value.encoding
def encode_character_string(value): """## # Return a Python string that contains the BACnet encoded octets for the # supplied CharacterString. # @param A CharacterString derived class that describes the character string # to encode. # @returns A Python string containing the encoded octets.""" if not isinstance(value, CharacterString): msg = 'Object must be derived from mpx.lib.bacnet.CharacterString' raise ETypeError(msg) return value.encoding
def start_bbmd_service(interface=None, initial_table=None, node=None, register_as_foreign_device=None): global BBMD_servers global BBMD_thread_started, RAFD_thread_started global The_BBMD_Server try: if interface: if not BBMD_servers.has_key(interface.network): BBMD_servers[interface.network] = BBMD_Server(interface) BBMD_servers[interface.network].bdt.node = node if initial_table: BBMD_servers[interface.network].bdt.from_text( initial_table, node) if register_as_foreign_device: BBMD_servers[interface.network].register_as_foreign_device = 1 BBMD_servers[interface.network].bbmd_enabled(1) #still needs to be enabled, either by bbmd node or external call except: raise ETypeError('BBMD failed to initialize table') if not BBMD_thread_started: BBMD_thread_started = 1 The_BBMD_Server = _BBMD_Server(_recv_queue) try: if debug: print 'BBMD_Server: about to start' The_BBMD_Server.start() except: raise ETypeError('BBMD thread failed to start') #_bbmd_service( queue) #single threaded test mode if register_as_foreign_device: if not RAFD_thread_started: RAFD_thread_started = 1 The_RAFD_thread = _RAFD_Thread() try: The_RAFD_thread.start() except: raise EInvalidValue('RAFD thread failded to start')
def __init__(self, interface, *args, **keywords): self.interface = interface self.ourBDTentry = None self.entries = [] self.node = None #supervising ion # @fixme ADD SELF self.reports = {} #self.network = 0 #init with network interface number? if keywords.has_key('from_text'): self.from_text(keywords['from_text']) elif len(args) > 0: raise ETypeError('requires no parameters or "from_text="') if self.ourBDTentry is None: #used by broadcast_forwarded_message self._set_our_bdt_entry()