Example #1
0
    def add_widgets(self):
        # Tabbed view
        self.notebook = ttk.Notebook(self)
        self.notebook.pack(fill=tk.BOTH, expand=1)
        self.notebook.bind("<<NotebookTabChanged>>", self.manage_threads)

        # First Tab: Alarms
        self.alarms = Alarms(self.notebook)
        self.protocol("WM_DELETE_WINDOW", self.on_close)
        self.alarms.pack(fill=tk.BOTH, expand=1)
        self.notebook.add(self.alarms, text="Alarms")

        # Second Tab: Clock (Hopefully will add analog and digital)
        self.clock = Clock(self.notebook)
        self.clock.pack(fill=tk.BOTH, expand=1)
        self.notebook.add(self.clock, text="Clock")

        # Third Tab: Stopwatch
        self.stopwatch = Stopwatch(self.notebook)
        self.stopwatch.pack(fill=tk.BOTH, expand=1)
        self.notebook.add(self.stopwatch, text="Stopwatch")

        # Fourth Tab: Timer
        self.timer = Timer(self.notebook)
        self.timer.pack(fill=tk.BOTH, expand=1)
        self.notebook.add(self.timer, text="Timer")
    def _setup_ui(self):
        self.setFrameStyle(QFrame.StyledPanel | QFrame.Raised)
        layout = QVBoxLayout(self)
        self.setLayout(layout)
        layout.setAlignment(Qt.AlignTop)
        layout.setSpacing(2)
        layout.setMargin(2)
        layout.addSpacing(20)

        self._alarms = Alarms(self, self._usbif)
        layout.addWidget(self._alarms)

        self._meas = Measurements(self, self._usbif)
        layout.addWidget(self._meas)

        self._core_rope_sim = CoreRopeSim(self, self._usbif)
        layout.addWidget(self._core_rope_sim)
        layout.setAlignment(self._core_rope_sim, Qt.AlignTop)

        self._erasable_mem_sim = ErasableMemSim(self, self._usbif)
        layout.addWidget(self._erasable_mem_sim)
        layout.setAlignment(self._erasable_mem_sim, Qt.AlignTop)

        self._trace = Trace(self, self._usbif)
        layout.addWidget(self._trace)
Example #3
0
    def __init__(self):
        """Constructor, esto es lo que se ejecuta cuando se crea un objeto de la clase FaceDetection."""

        self.frame = None
        self.counter = 0
        self.EYE_AR_THRESH = 0.15
        self.EYE_AR_CONSEC_FRAMES = 2
        self.YAWN_THRESH = 10
        self.face_detected = False
        self.yawn_counter = 0
        self.CAR_REGISTRATION = 'SAF 6245'

        self.blink_verification = False
        self.blink_counter = 0
        self.t_end_blink = 0  #Variable para controlar alarma cuando los ojos se cierran
        self.BLINK_TIME_CLOSED = 1  # Tiempo en segundos para que se considere un parpadeo largo
        self.BLINK_TIME_GAP = 60  # el tiempo por el cuazl quedan guardado los parpadeos largos en el array
        self.BLINK_TIME_ALERT = 2  # cantidad de veces que se produscan pestaneos largos antes de que se dispare una alerta
        self.blink_time_alert_counter_a = [
        ]  # se guardan los moentos en que se detectaron los parpadeos largos
        self.blink_counter_verification = False  #veriable que permite verificar el momento de trasiciondes de estado del ojo(de abierto a cerrado)
        self.blink_eye_closed = 0  # momento en el que se detecto que el ojo se cerro

        self.yawn_closed = 0
        self.yawn_counter_verification = False
        self.t_end = 0  #Variable para controlar el tiempo de un bostezo
        self.YAWN_TIME_GAP = 60  #
        self.YAWN_TIME_ALERT = 2  # Cantidad de bostetzos por minuto para que se active la alarma
        self.yawn_time_alert_counter_a = [
        ]  #se guardan los bostezos (se guarda en formato time)
        self.t_end_alarm = 0
        self.EVENT_STRING_DROWSINESS = 'Sintomas de suenio'
        self.EVENT_STRING_SLEEP = 'Dormido'
        self.EVENT_STRING_DISTRACTION = 'Distraccion'
        self.face_angle_vertical = 0.0
        self.face_angle_horizontal = 0.0
        self.face_angle_horizontal = 0.0
        self.alarm = Alarms()

        #_face_detector detecta rostros
        self._face_detector = dlib.get_frontal_face_detector()

        #_predictor es usado para obtener los landmarks de una cara
        self._predictor = dlib.shape_predictor(
            path + "/shape_predictor_68_face_landmarks.dat")
Example #4
0
File: talk.py Project: zetof/VERT-X
    def __init__(self, loggerName, locale, wsURL, wsUser, wsPwd, callback):

        # Initialisation du logging
        logging.config.fileConfig('logging.conf')
        self.logger = logging.getLogger(loggerName)

        # Initialisation du langage
        self.i18n = I18N(locale)

        # Liste des alarmes en cours
        self.alarms = Alarms()

        # Initialisation du panneau des alarmes
        self.alarmPanel = AlarmPanel(8, 7, 11, 9, 600, True)

        # Initialisation de l'écran LCD
        self.lcd = LCDDisplay(27, 22, 25, 24, 23, 18, 16, 2, 4)

        # Liste des Arduinos à contacter
        self.arduinos = []

        # Démarrage du serveur de commande et de la communication vers internet
        self.httpServices = HttpServices(wsURL, wsUser, wsPwd, callback)
Example #5
0
def deamon(soc=-1):
    """ Main loop, gets battery data, gets summary.py to do logging"""

    try:
        import summary
        logsummary = summary.Summary()
        summary = logsummary.summary
        printtime = time.strftime("%Y%m%d%H%M%S ", time.localtime())
        while int(printtime) <= int(summary['current']['timestamp']):
            print(printtime, summary['current']['timestamp'])
            print("Error: Current time before last sample time")
            time.sleep(30)
            printtime = time.strftime("%Y%m%d%H%M%S", time.localtime())
        batdata = Readings()  # initialise batdata after we have valid sys time
        alarms = Alarms(batdata)  # initialise alarms

        print(str(printtime))
        filecopy(config['files']['summaryfile'],
                 config['files']['summaryfile'] + "R" + str(int(printtime)))
        if soc > config['battery']['capacity']:
            print("Battery DOD must be less than Battery Capacity")

        else:
            if soc < 0:
                batdata.soc = summary['current']['ah'][0]
                batdata.socadj = summary['current']['dod'][0]
            else:
                batdata.soc = soc
                batdata.socadj = soc
                summary['current']['dod'][3] = 0
            summary['current']['dod'][
                3] = -100  # flag don't adjust leakage current
            prevtime = logsummary.currenttime
            prevbatvoltage = batdata.batvoltsav[numcells]
            #    logsummary.startday(summary)
            #    logsummary.starthour(summary)

            while True:
                try:
                    for i in range(config['sampling']['samplesav']):
                        #          printvoltage = ''
                        #          for i in range(numcells+1):
                        #            printvoltage = printvoltage + str(round(batdata.batvolts[i],3)).ljust(5,'0') + ' '
                        #         print (printvoltage)
                        batdata.getraw()

                        #          if batdata.batvoltsav[numcells] >= 55.2 and prevbatvoltage < 55.2:  # reset SOC counter?
                        #          print batdata.socadj/(float(summary['current']['dod'][3])*24.0)
                        if batdata.batvoltsav[numcells] < config['battery']['vreset'] \
                        and prevbatvoltage >= config['battery']['vreset'] \
                        and summary['current']['dod'][3] != 0 \
                        and -batdata.currentav[0] < config['battery']['ireset']:  # reset SOC counter?

                            if summary['current']['dod'][3] <= 0:
                                socerr = 0
                            else:
                                socerr = batdata.socadj / (
                                    float(summary['current']['dod'][3]) * 24.0)
                                socerr = max(socerr, -0.01)
                                socerr = min(socerr, 0.01)
                            config['battery']['ahloss'] = config['battery'][
                                'ahloss'] - socerr / 2
                            batconfigdata = SafeConfigParser()
                            batconfigdata.read('battery.cfg')
                            batconfigdata.set('battery', 'ahloss',
                                              str(config['battery']['ahloss']))
                            with open('battery.cfg', 'w') as batconfig:
                                batconfigdata.write(batconfig)
                            batconfig.closed

                            batdata.soc = 0.0
                            batdata.socadj = 0.0
                            summary['current']['dod'][3] = 0
                        else:
                            batdata.soc = batdata.soc + batdata.batah
                            batdata.socadj = batdata.socadj + batdata.batahadj
                        batdata.ah = batdata.ah + batdata.batah
                        batdata.inahtot = batdata.inahtot + batdata.inah
                        batdata.pwrbattot = batdata.pwrbattot + batdata.pwrbat
                        batdata.pwrintot = batdata.pwrintot + batdata.pwrin
                    prevbatvoltage = batdata.batvoltsav[numcells]
                    # check alarms
                    alarms.scanalarms(batdata)
                    # update summaries
                    logsummary.update(summary, batdata)
                    if logsummary.currenttime[4] != logsummary.prevtime[
                            4]:  # new minute
                        loadconfig()
                        logsummary.updatesection(summary, 'hour', 'current')
                        logsummary.updatesection(summary, 'alltime', 'current')
                        logsummary.updatesection(summary, 'currentday',
                                                 'current')
                        logsummary.updatesection(summary, 'monthtodate',
                                                 'current')
                        logsummary.updatesection(summary, 'yeartodate',
                                                 'current')
                        logsummary.writesummary()
                        batdata.ah = 0.0
                        batdata.ahadj = 0.0
                        batdata.inahtot = 0.0
                        batdata.pwrbattot = 0.0
                        batdata.pwrintot = 0.0
                        for i in range(batdata.numiins):
                            batdata.kWhin[i] = 0.0
                            batdata.kWhout[i] = 0.0
                        for i in range(numcells):
                            batdata.baltime[i] = 0

                    if logsummary.currenttime[3] != logsummary.prevtime[
                            3]:  # new hour
                        logsummary.starthour(summary)

                    if logsummary.currenttime[3] < logsummary.prevtime[
                            3]:  # newday
                        logsummary.startday(summary)

                    if logsummary.currenttime[1] != logsummary.prevtime[
                            1]:  # new month
                        logsummary.startmonth(summary)

                    if logsummary.currenttime[0] != logsummary.prevtime[
                            0]:  # new year
                        logsummary.startyear(summary)

                except KeyboardInterrupt:
                    sys.stdout.write('\n')
                    logsummary.close()
                    sys.exit(9)
                    break
    except Exception as err:
        log.critical(err)
        raise
Example #6
0
    if currenttime[8:10] != prevtime[8:10]:  # new hour
        logsummary.starthour(summary)

    if currenttime[6:8] != prevtime[6:8]:  # newday
        logsummary.startday(summary)

    if currenttime[4:6] != prevtime[4:6]:  # new month
        logsummary.startmonth(summary)

    if currenttime[0:4] != prevtime[0:4]:  # new year
        logsummary.startyear(summary)

import summary
logsummary = summary.Summary()
batdata = Readings()  # initialise batdata
alarms = Alarms(batdata, summary)  # initialise alarms


def deamon(soc=-1):
    """Battery Management deamon to run in background"""

    numtries = 0
    while True:
        try:
            initmain(soc)
            while True:
                mainloop()
                numtries = 0
        except KeyboardInterrupt:
            numtries = maxtries
            sys.stdout.write('\n')
Example #7
0
 def __init__(self, bot):
     self.alarms = Alarms(bot)
Example #8
0
    def _setup_ui(self):
        column_layout = QHBoxLayout()
        self.setLayout(column_layout)
        column_layout.setMargin(0)
        column_layout.setSpacing(1)

        col1_layout = QVBoxLayout()
        col1_layout.setMargin(0)
        column_layout.addLayout(col1_layout)

        self._write_w = WriteW(self, self._usbif)
        col1_layout.addWidget(self._write_w)
        col1_layout.setAlignment(self._write_w, Qt.AlignTop | Qt.AlignLeft)

        col2_layout = QVBoxLayout()
        col2_layout.setMargin(0)
        col2_layout.setSpacing(2)
        col2_layout.addSpacing(10)
        column_layout.addLayout(col2_layout)

        regs_layout = QVBoxLayout()
        regs_layout.setSpacing(2)
        regs_layout.setMargin(0)
        col2_layout.addLayout(regs_layout)
        col2_layout.setAlignment(regs_layout, Qt.AlignTop)

        # Add all of the registers for display
        self._reg_a = Register(self, self._usbif, 'A', False, QColor(0, 255, 0))
        regs_layout.addWidget(self._reg_a)
        regs_layout.setAlignment(self._reg_a, Qt.AlignRight)

        self._reg_l = Register(self, self._usbif, 'L', False, QColor(0, 255, 0))
        regs_layout.addWidget(self._reg_l)
        regs_layout.setAlignment(self._reg_l, Qt.AlignRight)

        # self._reg_y = Register(regs, self._usbif, 'Y', False, QColor(0, 255, 0))
        # regs_layout.addWidget(self._reg_y)
        # regs_layout.setAlignment(self._reg_y, Qt.AlignRight)

        # self._reg_u = Register(regs, self._usbif, 'U', False, QColor(0, 255, 0))
        # regs_layout.addWidget(self._reg_u)
        # regs_layout.setAlignment(self._reg_u, Qt.AlignRight)

        self._reg_z = Register(self, self._usbif, 'Z', False, QColor(0, 255, 0))
        regs_layout.addWidget(self._reg_z)
        regs_layout.setAlignment(self._reg_z, Qt.AlignRight)

        # self._reg_q = Register(regs, self._usbif, 'Q', False, QColor(0, 255, 0))
        # regs_layout.addWidget(self._reg_q)
        # regs_layout.setAlignment(self._reg_q, Qt.AlignRight)

        self._reg_g = Register(self, self._usbif, 'G', True, QColor(0, 255, 0))
        regs_layout.addWidget(self._reg_g)
        regs_layout.setAlignment(self._reg_g, Qt.AlignRight)

        # self._reg_b = Register(regs, self._usbif, 'B', False, QColor(0, 255, 0))
        # regs_layout.addWidget(self._reg_b)
        # regs_layout.setAlignment(self._reg_b, Qt.AlignRight)

        self._reg_w = Register(self, self._usbif, 'W', True, QColor(0, 255, 0))
        regs_layout.addWidget(self._reg_w)
        regs_layout.setAlignment(self._reg_w, Qt.AlignRight)

        self._w_cmp = WComparator(self, self._usbif)
        regs_layout.addWidget(self._w_cmp)
        regs_layout.setAlignment(self._w_cmp, Qt.AlignRight)

        col2_layout.addSpacing(10)

        self._reg_s = AddressRegister(self, self._usbif, QColor(0, 255, 0))
        col2_layout.addWidget(self._reg_s)
        col2_layout.setAlignment(self._reg_s, Qt.AlignRight)

        self._s1_comp = SComparator(self, self._usbif, 1)
        col2_layout.addWidget(self._s1_comp)
        col2_layout.setAlignment(self._s1_comp, Qt.AlignRight)

        self._s2_comp = SComparator(self, self._usbif, 2)
        col2_layout.addWidget(self._s2_comp)
        col2_layout.setAlignment(self._s2_comp, Qt.AlignRight)

        col2_layout.addSpacing(10)

        self._reg_i = InstructionRegister(self, self._usbif, QColor(0, 255, 0))
        col2_layout.addWidget(self._reg_i)
        col2_layout.setAlignment(self._reg_i, Qt.AlignRight)

        self._i_comp = IComparator(self, self._usbif)
        col2_layout.addWidget(self._i_comp)
        col2_layout.setAlignment(self._i_comp, Qt.AlignRight)

        col2_layout.addSpacing(10)
        col2_layout.addStretch(1000)


        col3 = QWidget(self)
        col3_layout = QVBoxLayout(col3)
        col3_layout.setMargin(0)
        col3_layout.setSpacing(2)
        #col3_layout.addSpacing(10)
        column_layout.addWidget(col3)

        # Add the alarms panel
        self._alarms_panel = Alarms(col3, self._usbif)
        col3_layout.addWidget(self._alarms_panel)
        col3_layout.setAlignment(self._alarms_panel, Qt.AlignTop | Qt.AlignRight)

        # Add the control panel
        self._ctrl_panel = Control(col3, self._usbif)
        col3_layout.addWidget(self._ctrl_panel)
        col3_layout.setAlignment(self._ctrl_panel, Qt.AlignTop | Qt.AlignRight)

        # Add the computer stop panel
        self._comp_stop = CompStop(col3, self._usbif)
        col3_layout.addWidget(self._comp_stop)
        col3_layout.setAlignment(self._comp_stop, Qt.AlignTop | Qt.AlignRight)

        # Add the read/load panel
        self._read_load = ReadLoad(col3, self._usbif)
        col3_layout.addWidget(self._read_load)
        col3_layout.setAlignment(self._read_load, Qt.AlignTop | Qt.AlignRight)

        # Add the fixed memory panel
        self._fixed = FixedMemory(col3, self._usbif)
        col3_layout.addWidget(self._fixed)
        col3_layout.setAlignment(self._fixed, Qt.AlignTop | Qt.AlignRight)

        # Add the erasable memory panel
        self._erasable = ErasableMemory(col3, self._usbif)
        col3_layout.addWidget(self._erasable)
        col3_layout.setAlignment(self._erasable, Qt.AlignTop | Qt.AlignRight)

        col3_layout.addStretch()

        self.show()