Ejemplo n.º 1
0
    def set_logging_start_stop(self):
        start_status = self.comboBox_logging_start.currentIndex()
        stop_status = self.comboBox_logging_stop.currentIndex()
        cdt = QDateTime.currentDateTime()

        if start_status == 1 and self.dateTimeEdit_logging_start.dateTime(
        ) <= cdt:
            self.show_alert_dialog(
                "Start: date & time can't be less than current date & time.")
            return

        if stop_status == 1 and self.dateTimeEdit_logging_stop.dateTime(
        ) <= cdt:
            self.show_alert_dialog(
                "Stop: date & time can't be less than current date & time.")
            return

        if start_status == 1 and stop_status == 1:
            if self.dateTimeEdit_logging_start.dateTime(
            ) >= self.dateTimeEdit_logging_stop.dateTime():
                self.show_alert_dialog(
                    "Start date & time should be greater than stop date & time."
                )
                return

        start_td = self.dateTimeEdit_logging_start.dateTime().toString(
            "hh:mm:ss d/M/yy")
        stop_td = self.dateTimeEdit_logging_stop.dateTime().toString(
            "hh:mm:ss d/M/yy")
        w_str = " ".join(
            [str(start_status), start_td,
             str(stop_status), stop_td])
        TaskConsumer().insert_task(
            Task(TaskTypes.SERIAL_WRITE_LOG_START_STOP,
                 self.task_done_callback, w_str))
Ejemplo n.º 2
0
 def erase_data(self):
     reply = QtGui.QMessageBox.question(
         self, 'Message',
         "Are you sure ? All data will be deleted with this action.",
         QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
     if reply == QtGui.QMessageBox.Yes:
         logger.debug("worked")
         TaskConsumer().insert_task(
             Task(TaskTypes.SERIAL_ERASE, self.task_done_callback))
Ejemplo n.º 3
0
    def set_logging_interval(self):
        interval_value = self.lineEdit_logging_interval.text()

        if interval_value == "":
            self.show_alert_dialog("Interval can't be empty.")
            return

        elif not interval_value.isnumeric() or int(interval_value) > 1440:
            self.show_alert_dialog(
                "Interval value should be positive and numeric(range 0 to 1440)."
            )
            return

        TaskConsumer().insert_task(
            Task(TaskTypes.SERIAL_WRITE_LOG, self.task_done_callback,
                 interval_value))
Ejemplo n.º 4
0
    def check_device_connectivity_status(self):
        dr = DataReader()
        device = dr.get_connected_device()

        if device:
            if not self.queue_timer.isActive():
                self.queue_timer.start()

            if not self.miscellaneous_timer.isActive():
                self.miscellaneous_timer.start()

            if not dr.is_port_open():
                self.label_device_id.setText(
                    'Reader found ! Connecting logger...')
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_OPEN, self.task_done_callback))

        else:
            self.after_device_not_found_change()
Ejemplo n.º 5
0
    def set_alarm(self):
        high_temp = int(self.lineEdit_high_temp.text())
        low_temp = int(self.lineEdit_low_temp.text())
        if low_temp > high_temp:
            self.show_alert_dialog(
                "High temperature should be greater than low temperature.")
            return
        elif high_temp > 85:
            self.show_alert_dialog("High temperature can be maximum 85.")
            return
        elif low_temp < -45:
            self.show_alert_dialog(
                "Low temperature should be greater than or equal to -45.")
            return

        if self.checkBox_temp_alarm_status.isChecked():
            new_str = " ".join(["1", str(high_temp), str(low_temp)])
        else:
            new_str = " ".join(["0", str(high_temp), str(low_temp)])

        TaskConsumer().insert_task(
            Task(TaskTypes.SERIAL_WRITE_ALARM, self.task_done_callback,
                 new_str))
Ejemplo n.º 6
0
 def start_reading_logger_data(self):
     TaskConsumer().insert_task(
         Task(TaskTypes.SERIAL_READ_LOGGER_DATA, self.task_done_callback))
     self.msg_box_read_log_data = CustomDialog(self)
     self.msg_box_read_log_data.show()
Ejemplo n.º 7
0
    def task_done_callback(self, response):
        print(f"task response : {response}")

        if 'exception' in response:
            return

        if response['task_type'] == TaskTypes.SERIAL_OPEN:
            TaskConsumer().insert_task(
                Task(TaskTypes.SERIAL_READING_MODE, self.task_done_callback))

        elif response['task_type'] == TaskTypes.SERIAL_READING_MODE:
            data = response['data']

            if data == 'no_device':
                self.label_device_id.setText('No reader found !')
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READING_MODE,
                         self.task_done_callback))

            elif data == 'not_found':
                self.label_device_id.setText(
                    'Reader found but not in reading mode !')
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READING_MODE,
                         self.task_done_callback))

            elif data == 'found':
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_DEV_ID, self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_DEV_NAME, self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READ_LOG, self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READ_CONST, self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_TIME_BATTERY,
                         self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READ_DAYLIGHT,
                         self.task_done_callback))
                TaskConsumer().insert_task(
                    Task(TaskTypes.SERIAL_READ_ALARM, self.task_done_callback))

        elif response['task_type'] == TaskTypes.SERIAL_DEV_ID:
            self.label_device_id.setText(response['data'])
            lst = response['data'].split('-')
            if lst[1] == 'T':
                self.label_device_type.setText('Temperature Logger')

        elif response['task_type'] == TaskTypes.SERIAL_TIME_BATTERY:
            time, date, battery = response['data'].strip().split()
            self.label_battery_level.setText(battery + " V")
            if float(battery.strip()) <= CONSCIOUS_BATTERY_LEVEL:
                self.label_battery_level_low_signal.setText(
                    "Please change your battery.")

            datetime_str = date + ' ' + time
            datetime_object = datetime.datetime.strptime(
                datetime_str, '%d/%m/%Y %H:%M:%S')
            utils.CURRENT_DEVICE_TIME_RESPONSE = datetime_object
            self.update_device_time()

        elif response['task_type'] == TaskTypes.SERIAL_DEV_NAME:
            self.lineEdit_device_name.setText(response['data'])

        elif response['task_type'] == TaskTypes.SERIAL_READ_CONST:
            utils.READ_CONST_RESPONSE = response['data']
            # print(utils.READ_CONST_RESPONSE)

        elif response['task_type'] == TaskTypes.SERIAL_READ_LOGGER_DATA:
            self.msg_box_read_log_data.close()
            logger_plot_window = LoggerPlotWindow(self)
            logger_plot_window.initialize_and_show(self.interval,
                                                   response['data'])

        elif response['task_type'] == TaskTypes.SERIAL_RENAME_DEV_NAME:
            self.show_alert_dialog("Device rename successful!")

        elif response['task_type'] == TaskTypes.SERIAL_WRITE_TIME:
            TaskConsumer().insert_task(
                Task(TaskTypes.SERIAL_TIME_BATTERY, self.task_done_callback))
            self.show_alert_dialog("Write time successful!")

        elif response['task_type'] == TaskTypes.SERIAL_WRITE_LOG:
            self.show_alert_dialog("Logging interval set successful!")

        elif response['task_type'] == TaskTypes.SERIAL_ERASE:
            self.show_alert_dialog("All data deleted.")

        elif response['task_type'] == TaskTypes.SERIAL_WRITE_LOG_START_STOP:
            self.show_alert_dialog(
                "Logging start stop time setting successful!")

        elif response['task_type'] == TaskTypes.SERIAL_READ_ALARM:
            alarm_status, high_temp_value, low_temp_value = response[
                'data'].split()

            if alarm_status == '1':
                self.checkBox_temp_alarm_status.setChecked(True)
                self.lineEdit_high_temp.setText(high_temp_value)
                self.lineEdit_low_temp.setText(low_temp_value)
            else:
                self.checkBox_temp_alarm_status.setChecked(False)
                self.lineEdit_high_temp.setText(high_temp_value)
                self.lineEdit_low_temp.setText(low_temp_value)

        elif response['task_type'] == TaskTypes.SERIAL_WRITE_ALARM:
            self.show_alert_dialog("Write alarm successful!")

        elif response['task_type'] == TaskTypes.SERIAL_READ_LOG:
            utils.READ_LOG_RESPONSE = response['data']
            self.interval, start_type, start_time, start_date, stop_type, stop_time, stop_date = response[
                'data'].split()
            self.lineEdit_logging_interval.setText(self.interval)
            self.update_logging_start_stop(start_type, start_time, start_date,
                                           stop_type, stop_time, stop_date)

        elif response['task_type'] == TaskTypes.SERIAL_WRITE_DAYLIGHT:
            if self.checkBox_dst.isChecked():
                self.show_alert_dialog(
                    "Daylight saving turned on successfully!")
            else:
                self.show_alert_dialog(
                    "Daylight saving turned off successfully!")

        elif response['task_type'] == TaskTypes.SERIAL_READ_DAYLIGHT:
            if response['data'] == '1':
                self.checkBox_dst.setChecked(True)
            else:
                self.checkBox_dst.setChecked(False)
Ejemplo n.º 8
0
 def sync_device_and_system_time(self):
     dt_str = datetime.datetime.now().strftime('%H:%M:%S %d/%m/%y')
     TaskConsumer().insert_task(
         Task(TaskTypes.SERIAL_WRITE_TIME, self.task_done_callback, dt_str))
Ejemplo n.º 9
0
 def toogle_dst(self):
     new_str = '1' if self.checkBox_dst.isChecked() else "0"
     TaskConsumer().insert_task(
         Task(TaskTypes.SERIAL_WRITE_DAYLIGHT, self.task_done_callback,
              new_str))
Ejemplo n.º 10
0
 def rename_device(self):
     new_name = self.lineEdit_device_name.text()
     TaskConsumer().insert_task(
         Task(TaskTypes.SERIAL_RENAME_DEV_NAME, self.task_done_callback,
              new_name))