Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 from python_qt_binding.QtCore import QDateTime
00034 from .base_filter import BaseFilter
00035
00036
00037 class TimeFilter(BaseFilter):
00038
00039 """
00040 Contains filter logic for a time filter.
00041 If _stop_time_enabled is true then the message's time value must be between the dates provided
00042 to be considered a match
00043 If _stop_time_enabled is false then the time must simply be after _start_time
00044 """
00045
00046 def __init__(self):
00047 super(TimeFilter, self).__init__()
00048 self._start_time = QDateTime()
00049 self._stop_time = QDateTime()
00050 self._stop_time_enabled = True
00051
00052 def set_start_time(self, time):
00053 """
00054 Setter for _start_time
00055 :param time" start datetime for filter ''QDateTime''
00056 :emits filter_changed_signal: If _enabled is true
00057 """
00058 self._start_time = time
00059 if self.is_enabled():
00060 self.start_emit_timer()
00061
00062 def set_stop_time(self, time):
00063 """
00064 Setter for _stop_time
00065 :param time" stop datetime for filter ''QDateTime''
00066 :emits filter_changed_signal: If _enabled is true
00067 """
00068 self._stop_time = time
00069 if self.is_enabled():
00070 self.start_emit_timer()
00071
00072 def set_stop_time_enabled(self, checked):
00073 """
00074 Setter for _stop_time_enabled
00075 :param checked" boolean flag to set ''bool''
00076 :emits filter_changed_signal: If _enabled is true
00077 """
00078 self._stop_time_enabled = checked
00079 if self.is_enabled():
00080 self.start_emit_timer()
00081
00082 def has_filter(self):
00083 return True
00084
00085 def test_message(self, message):
00086 """
00087 Tests if the message matches the filter.
00088 If _stop_time_enabled is true then the message's time value must be between the dates
00089 provided to be considered a match
00090 If _stop_time_enabled is false then the time must simply be after _start_time
00091 :param message: the message to be tested against the filters, ''Message''
00092 :returns: True if the message matches, ''bool''
00093 """
00094 if not self.is_enabled():
00095 return False
00096 message_time = message.get_stamp_as_qdatetime()
00097 if message_time < self._start_time:
00098 return False
00099 if self._stop_time_enabled and self._stop_time < message_time:
00100 return False
00101 return True