class UDSWriter(object): """ classdocs """ # ---------------------------------------------------------------------------------------------------------------- def __init__(self, address): """ Constructor """ self.__uds = DomainSocket(address) if address else None # ---------------------------------------------------------------------------------------------------------------- def connect(self): if self.__uds: self.__uds.connect() def close(self): if self.__uds: self.__uds.close() def write(self, message, wait_for_availability=False): if self.__uds: self.__uds.write(message, wait_for_availability) else: print(message) sys.stdout.flush() # ---------------------------------------------------------------------------------------------------------------- @property def address(self): return self.__uds.address if self.__uds else None # ---------------------------------------------------------------------------------------------------------------- def __str__(self, *args, **kwargs): return "UDSWriter:{uds:%s}" % self.__uds
Created on 26 May 2017 @author: Bruno Beloff ([email protected]) Note: multiple writers are permitted per UDS. https://pymotw.com/2/socket/uds.html """ import time from scs_host.comms.domain_socket import DomainSocket # -------------------------------------------------------------------------------------------------------------------- server_address = '/Users/bruno/Python/Mac/scs_analysis/scs_analysis/osio_mqtt_sub.uds' uds = DomainSocket(server_address) print(uds) while True: try: uds.connect() uds.write("Hello UDS!", True) finally: uds.close( ) # not needed - just to check a closed connection can be closed time.sleep(1)