Beispiel #1
0
    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)
Beispiel #2
0
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
Beispiel #3
0
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
        if cmd.verbose:
            print(api_auth, file=sys.stderr)

        # ClientAuth...
        client_auth = ClientAuth.load(Host)

        if client_auth is None:
            print("ClientAuth not available.", file=sys.stderr)
            exit(1)

        if cmd.verbose:
            print(client_auth, file=sys.stderr)

        # comms...
        pub_comms = DomainSocket(
            cmd.uds_pub_addr) if cmd.uds_pub_addr else StdIO()

        # manager...
        manager = TopicManager(HTTPClient(), api_auth.api_key)

        # check topics...
        unavailable = False
        for subscription in cmd.subscriptions:
            if not manager.find(subscription.topic):
                print("Topic not available: %s" % subscription[0],
                      file=sys.stderr)
                unavailable = True

        if unavailable:
            exit(1)
Beispiel #5
0
    # ----------------------------------------------------------------------------------------------------------------
    # cmd...

    cmd = CmdUDS()

    if not cmd.is_valid():
        cmd.print_help(sys.stderr)
        exit(2)

    if cmd.verbose:
        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()
Beispiel #6
0
 def __init__(self, address):
     """
     Constructor
     """
     self.__uds = DomainSocket(address) if address else None
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)
Beispiel #8
0
https://pymotw.com/2/socket/uds.html
"""

import sys

from scs_core.data.localized_datetime import LocalizedDatetime

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)

try:
    uds.connect()

    for message in uds.read():
        now = LocalizedDatetime.now()
        print("%s: got:[%s]" % (now.as_iso8601(), message))

except KeyboardInterrupt as ex:
    print("uds_reader_test: KeyboardInterrupt", file=sys.stderr)

finally:
    uds.close()