Ejemplo n.º 1
0
    def __init__(self):
        # open connection to RETHINKDB
        self.conn = rdb.connect(host=connDataRETHINK["host"],
                                port=connDataRETHINK["port"],
                                db=connDataRETHINK["db"])

        self.reader = RDBReader(connDataRETHINK)
        self.reader.start()

        devices = rdb.table("devices").run(self.conn)
        for device in list(devices):
            table = device["id"]
            if rdb.table(table).is_empty().run(self.conn) is False:
                datos = rdb.table(table).order_by(
                    index=rdb.desc('created_at')).limit(1).run(self.conn)
            self.reader.addTable(table)

        self.reader.signalVal.connect(self.slotFromReader)
Ejemplo n.º 2
0
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        global sensors, CURRENT_TABLE
        #self.conn = rdb.connect(host=connData["host"], port=connData["port"], db=connData["db"], auth_key=connData["auth_key"])
        self.conn = rdb.connect(host=connData["host"],
                                port=connData["port"],
                                db=connData["db"])
        # Set a changefeed for "Dispositivos" with initial state reading
        devices = rdb.table("devices").run(self.conn)
        pp = pprint.PrettyPrinter(indent=4)

        # Init the DB reader thread
        self.reader = RDBReader(connData, sensors)
        self.reader.signalVal.connect(self.slotFromReader)
        self.reader.start()

        for device in list(devices):
            #if device["id"] == CURRENT:
            ide = device["id"]
            sensors[ide] = device
            #table = "D" + ide.replace("-", "")
            #sensors[ide]["table"] = table
            # Poner todos como OFF y hacer esto en background
            if rdb.table(ide).is_empty().run(self.conn) is False:
                datos = rdb.table(ide).max("created_at").run(self.conn)
                sensors[ide]["canales"] = list()
                for k, v in datos["data"].iteritems():
                    sensors[ide]["canales"].append({"name": k, "value": v})
            sensors[ide]["timer"] = Timer(ide, 1000)
            sensors[ide]["timer"].timeout.connect(self.slotCountDown)
            #secs = (dt.datetime.now(pytz.utc) - parser.parse(datos["created_at"])).total_seconds()
            secs = (dt.datetime.now(pytz.utc) -
                    datos["created_at"]).total_seconds()
            sensors[ide]["updated"] = dt.timedelta(seconds=secs)
            sensors[ide]["active"] = True
            self.reader.addTable(ide)

        # print "Tree -----------------------"
        # pp = pprint.PrettyPrinter(indent=4)
        # pp.pprint(sensors)
        # print "-----------------------"

        # create Tree
        self.createTree()
        self.treeWidget.itemClicked.connect(self.on_itemClicked)

        # create UI table
        self.createTable(self.tableWidget)
        self.tableWidget.cellClicked.connect(self.on_graphClicked)
        self.show()

        # Start timers
        # self.reader.addTable("8c3450b7-9a74-4149-9ed3-a4098f4f88b3", "D8c3450b79a7441499ed3a4098f4f88b3")
        [s["timer"].start() for s in sensors.values()]

        # Svg rendering
        self.svg = Svg(self.tabWidget.widget(1), self.svgLayout)
        #self.tabWidget.currentChanged.connect(self.doSvg)

        # Flip button
        self.flipButton.clicked.connect(self.flipAll)