class UDSReader(object): """ classdocs """ # ---------------------------------------------------------------------------------------------------------------- def __init__(self, uds_name): """ Constructor """ if uds_name is None: self.__uds = None return try: os.remove(uds_name) # override any previous use of the UDS except OSError: pass self.__uds = DomainSocket(uds_name) # ---------------------------------------------------------------------------------------------------------------- def connect(self): if self.__uds: self.__uds.connect() def close(self): if self.__uds: self.__uds.close() def messages(self): if self.__uds: for message in self.__uds.read(): yield message.strip() else: for message in sys.stdin: yield message.strip() # ---------------------------------------------------------------------------------------------------------------- def __str__(self, *args, **kwargs): return "UDSReader:{uds:%s}" % self.__uds
subscribers.append( MQTTSubscriber(subscription.topic, handler.handle)) # client... client = MQTTClient(*subscribers) client.connect(ClientAuth.MQTT_HOST, client_auth.client_id, client_auth.user_id, client_auth.client_password) # ------------------------------------------------------------------------------------------------------------ # run... # publish... pub_comms.connect() for message in pub_comms.read(): try: datum = json.loads(message, object_pairs_hook=OrderedDict) except ValueError: handler.print_status("bad datum: %s" % message) continue success = False while True: publication = Publication.construct_from_jdict(datum) try: success = client.publish(publication, ClientAuth.MQTT_TIMEOUT)
print(cmd, file=sys.stderr) # ---------------------------------------------------------------------------------------------------------------- # resources... uds = DomainSocket(cmd.path) if cmd.verbose: print(uds, file=sys.stderr) sys.stderr.flush() try: # ------------------------------------------------------------------------------------------------------------ # run... uds.connect() for message in uds.read(): print(message) sys.stdout.flush() # ---------------------------------------------------------------------------------------------------------------- # end... except KeyboardInterrupt: if cmd.verbose: print("uds_reader: KeyboardInterrupt", file=sys.stderr) except Exception as ex: print(JSONify.dumps(ExceptionReport.construct(ex)), file=sys.stderr)