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 Contains filter logic for a time filter.
00040 If _stop_time_enabled is true then the message's time value must be between the dates provided
00041 to be considered a match
00042 If _stop_time_enabled is false then the time must simply be after _start_time
00043 """
00044
00045 def __init__(self):
00046 super(TimeFilter, self).__init__()
00047 self._start_time = QDateTime()
00048 self._stop_time = QDateTime()
00049 self._stop_time_enabled = True
00050
00051 def set_start_time(self, time):
00052 """
00053 Setter for _start_time
00054 :param time" start datetime for filter ''QDateTime''
00055 :emits filter_changed_signal: If _enabled is true
00056 """
00057 self._start_time = time
00058 if self.is_enabled():
00059 self.start_emit_timer()
00060
00061 def set_stop_time(self, time):
00062 """
00063 Setter for _stop_time
00064 :param time" stop datetime for filter ''QDateTime''
00065 :emits filter_changed_signal: If _enabled is true
00066 """
00067 self._stop_time = time
00068 if self.is_enabled():
00069 self.start_emit_timer()
00070
00071 def set_stop_time_enabled(self, checked):
00072 """
00073 Setter for _stop_time_enabled
00074 :param checked" boolean flag to set ''bool''
00075 :emits filter_changed_signal: If _enabled is true
00076 """
00077 self._stop_time_enabled = checked
00078 if self.is_enabled():
00079 self.start_emit_timer()
00080
00081 def has_filter(self):
00082 return True
00083
00084 def test_message(self, message):
00085 """
00086 Tests if the message matches the filter.
00087 If _stop_time_enabled is true then the message's time value must be between the dates provided
00088 to be considered a match
00089 If _stop_time_enabled is false then the time must simply be after _start_time
00090 :param message: the message to be tested against the filters, ''Message''
00091 :returns: True if the message matches, ''bool''
00092 """
00093 if not self.is_enabled():
00094 return False
00095 message_time = message.get_stamp_as_qdatetime()
00096 if message_time < self._start_time:
00097 return False
00098 if self._stop_time_enabled and self._stop_time < message_time:
00099 return False
00100 return True