示例#1
0
 def setDualRealay(self):
     self.__DUALRELAY = DualRelay(self.__UID, self.__IPCON)
     return self
示例#2
0
class tinkerforgeDriver(driver.driver.abstractDriver):

    '''
    classdocs
    '''
    __NAME = "Tinkerforge Driver"
    __HOST = "localhost"
    __PORT = 4223
    __UID = "9SS"
    __DUALRELAY = None
    __IPCON = IPConnection()
    __RELAY = 1

    def __init__(self):
        '''
        Constructor
        '''
        driver.driver.abstractDriver.__init__(self)
        self.__IPCON = IPConnection()  # Create IP connection

    def __del__(self):
        pass
        # if self.__IPCON.get_connection_state() == self.__IPCON.CONNECTION_STATE_CONNECTED: self.disconect()

    def getName(self):
        return self.__NAME

    def setHost(self, host):
        self.__HOST = host
        return self

    def getHost(self):
        return self.__HOST

    def setPort(self, port):
        self.__PORT = port
        return self

    def getPort(self):
        return self.__PORT

    def setUID(self, uid):
        self.__UID = uid
        return self

    def getUID(self):
        return self.__UID

    def setDualRealay(self):
        self.__DUALRELAY = DualRelay(self.__UID, self.__IPCON)
        return self

    def getDualRelay(self):
        return self.__DUALRELAY

    def connect(self):
        if isinstance(self.getDelay(), DualRelay) is False:
            self.setDualRealay()
        self.__IPCON.connect(self.__HOST, self.__PORT)

    def disconnect(self):
        self.__IPCON.disconnect()

    def connection_enabled(self):
        if self.__IPCON.get_connection_state() == self.__IPCON.CONNECTION_STATE_CONNECTED:
            return True
        else:
            return False

    def setup(self):
        while True:
            self.CleanScreen()
            print("Tinkerforge Driver Setup")
            print("Select an option:")
            print("1.    Set Host")
            print("2.    Set Port")
            print("3.    Set UID")
            print("4.    connect to Tinkerforge")
            print("0.    backward")
            option = int(input("Option: "))
            if(option == 0):
                break
            elif(option == 1):
                while True:
                    try:
                        host = input("Set Host: ")
                    except ValueError:
                        print("Invalid input!")
                        continue
                    else:
                        if self.connection_enabled() is True:
                            self.disconnect()
                        self.__HOST = host
                        break
            elif(option == 2):
                while True:
                    try:
                        port = int(input("Set Port: "))
                    except ValueError:
                        print("Invalid input!")
                        continue
                    else:
                        if self.connection_enabled() is True:
                            self.disconnect()
                        self.__PORT = port
                        break
            elif(option == 3):
                while True:
                    try:
                        uid = input("Set UID: ")
                    except ValueError:
                        print("Invalid input!")
                        continue
                    else:
                        if self.connection_enabled() is True:
                            self.disconnect()
                        self.__UID = uid
                        self.setDualRealay()
                        break
            elif(option == 4):
                self.connect()
                if self.connection_enabled:
                    print("Connected with Tinkerforge Bricklet")
            else:
                print("Invalid input!")

    def triggerRemote(self):
        if self.connection_enabled() is False:
            self.connect()
        self.__DUALRELAY.set_monoflop(self.__RELAY, True, 75)