Пример #1
0
    def __init__(self, parentfilter, rospack, time_range_provider):
        """
        Widget for displaying interactive data related to time filtering.
        :param parentfilter: buddy filter were data is stored, ''TimeFilter''
        :param display_list_args: single element list containing one tuple with
        the min and max time to be displayed, ''list of tuple''
        """
        super(TimeFilterWidget, self).__init__()
        ui_file = os.path.join(
            rospack.get_path('rqt_console'), 'resource/filters', 'time_filter_widget.ui')
        loadUi(ui_file, self)
        self.setObjectName('TimeFilterWidget')
        self._parentfilter = parentfilter  # When data is changed it is stored in the parent filter

        self.start_datetime.dateTimeChanged[QDateTime].connect(self.handle_start_changed)
        self.stop_datetime.dateTimeChanged[QDateTime].connect(self.handle_stop_changed)
        self.stop_enabled_check_box.clicked[bool].connect(self.handle_stop_enabled_changed)

        # Times are passed in unixtimestamp '.' decimal fraction of a second
        mintime, maxtime = time_range_provider()
        if mintime != -1:
            mintime = str(mintime).split('.')
            maxtime = str(maxtime).split('.')

            time = QDateTime()
            time.setTime_t(int(mintime[0]))
            mintime = time.addMSecs(int(str(mintime[1]).zfill(9)[:3]))
            self.start_datetime.setDateTime(mintime)
            time.setTime_t(int(maxtime[0]))
            maxtime = time.addMSecs(int(str(maxtime[1]).zfill(9)[:3]))
            self.stop_datetime.setDateTime(maxtime)
        else:
            self.start_datetime.setDateTime(datetime.now())
            self.stop_datetime.setDateTime(datetime.now())
Пример #2
0
 def _get_stamp_as_qdatetime(self, stamp):
     if None in self.__stamp:
         return None
     dt = QDateTime()
     dt.setTime_t(stamp[0])
     dt.addMSecs(int(float(stamp[1]) / 10**6))
     return dt
Пример #3
0
 def time_as_qdatetime(self):
     """
     :returns: time with msecs included, ''QDateTime''
     """
     time = QDateTime()
     time.setTime_t(int(self._time[0]))
     time = time.addMSecs(int(str(self._time[1]).zfill(9)[:3]))
     return time
Пример #4
0
    def restore_settings(self, settings):
        """
        Restores the settings for this filter from an ini file.
        :param settings: used to extract the settings from an ini file ''qt_gui.settings.Settings''
        """
        self.handle_stop_enabled_changed(settings.value('stop_time_enabled') in [True, 'true'])
        if settings.contains('start_time'):
            self.handle_start_changed(QDateTime.fromString(settings.value('start_time'), 'hh:mm:ss.zzz (yyyy-MM-dd)'))
        else:
            self.handle_start_changed(QDateTime(datetime.now()))
        if settings.contains('stop_time'):
            self.handle_stop_changed(QDateTime.fromString(settings.value('stop_time'), 'hh:mm:ss.zzz (yyyy-MM-dd)'))
        else:
            self.handle_stop_changed(QDateTime(datetime.now()))

        self.stop_datetime.setDateTime(self._parentfilter._stop_time)
        self.start_datetime.setDateTime(self._parentfilter._start_time)
        self.stop_enabled_check_box.setChecked(self._parentfilter._stop_time_enabled)
Пример #5
0
 def datestamp_to_qdatetime(self, secs, nsecs):
     """
     :param secs: seconds from a datestamp ''int''
     :param nsecs: nanoseconds from a datestamp ''int''
     :returns: converted time ''QDateTime''
     """
     temp_time = QDateTime()
     temp_time.setTime_t(int(secs))
     return temp_time.addMSecs(int(str(nsecs).zfill(9)[:3]))
Пример #6
0
 def time_as_datestamp(self):
     """
     :returns: seconds with decimal fractions of a second, ''str''
     """
     seconds = self._time.toTime_t()
     seconds_in_qdate = QDateTime()
     seconds_in_qdate.setTime_t(seconds)
     msecs = seconds_in_qdate.msecsTo(self._time)
     return str(seconds) + '.' + str(msecs)
Пример #7
0
 def __init__(self):
     super(TimeFilter, self).__init__()
     self._start_time = QDateTime()
     self._stop_time = QDateTime()
     self._stop_time_enabled = True