コード例 #1
0
 def __init__(self, ts_ary, display_sample):
     self.ir_timestamp_ary = ts_ary
     self.position = 0
     self.max_boundary = display_sample
     self.display_sample = display_sample
     self.current_sample_time_point = 0
     self.stroke_sensor_rec = StrokeSensorRecorder()
コード例 #2
0
class StrokeBatchGenerator(object):
    """My class docstring."""
    def __init__(self, ts_ary, display_sample):
        self.ir_timestamp_ary = ts_ary
        self.position = 0
        self.max_boundary = display_sample
        self.display_sample = display_sample
        self.current_sample_time_point = 0
        self.stroke_sensor_rec = StrokeSensorRecorder()

    def __iter__(self):
        return self

    def next(self):
        """Get the next sample's worth of data."""
        count = 0

        #while current_elapsed < self.max_boundary:
        while self.position < len(self.ir_timestamp_ary) and \
            self.ir_timestamp_ary[self.position][0] < self.max_boundary:

            current_elapsed = self.ir_timestamp_ary[self.position][0]
            ir_id = self.ir_timestamp_ary[self.position][1]
            count += self.stroke_sensor_rec.update(current_elapsed, ir_id)
            self.position += 1
            self.stroke_sensor_rec.reset_change()

        stroke_pos_change = count
        count = 0
        self.max_boundary += self.display_sample
        return stroke_pos_change
コード例 #3
0
 def test_reset_the_recorder(self):
     ssr = StrokeSensorRecorder()
     ssr.update('800', 3)
     ssr.update('810', 2)
     ssr.update('820', 1)
     ssr.reset_change()
     self.assertEquals(0, ssr.get_stroke_pos_change())
     self.assertEquals([], ssr.get_ir_pos_updates())
コード例 #4
0
 def test_moving_back_cancels_out_moving_forward(self):
     ssr = StrokeSensorRecorder()
     ssr.update('800', 3)
     ssr.update('810', 2)
     ssr.update('820', 1)
     ssr.update('830', 2)
     ssr.update('840', 3)
     ssr.update('850', 1)
     self.assertEquals(0, ssr.get_stroke_pos_change())
     self.assertEquals([['800',3], \
                        ['810',2], \
                        ['820',1], \
                        ['830',2], \
                        ['840',3], \
                        ['850',1]], ssr.get_ir_pos_updates())
コード例 #5
0
 def test_two_stroke_pos_change_back(self):
     ssr = StrokeSensorRecorder()
     ssr.update('800', 3)
     ssr.update('810', 2)
     ssr.update('820', 1)
     ssr.update('830', 3)
     ssr.update('840', 2)
     ssr.update('850', 1)
     self.assertEquals(-2, ssr.get_stroke_pos_change())
     self.assertEquals([['800',3], \
                        ['810',2], \
                        ['820',1], \
                        ['830',3], \
                        ['840',2], \
                        ['850',1]],ssr.get_ir_pos_updates())
コード例 #6
0
 def test_no_stroke_pos_change(self):
     ssr = StrokeSensorRecorder()
     ssr.update('800', 3)
     ssr.update('810', 2)
     ssr.update('820', 3)
     ssr.update('830', 2)
     self.assertEquals(0, ssr.get_stroke_pos_change())
     self.assertEquals([['800',3], \
                        ['810',2], \
                        ['820',3], \
                        ['830',2]], ssr.get_ir_pos_updates())
コード例 #7
0
class Sample(object):
    def __init__(self):
        self.ssr = StrokeSensorRecorder()
        self.fwr = FlywheelRecorder()
        self.elapsed_time = 0

    def collect_sample(self, flywheel_q, session_start_time, session_end_time, sample_end_time):
        sample_current_time = datetime.datetime.now()
        while sample_current_time < sample_end_time and sample_current_time < session_end_time:
            if not flywheel_q.empty():
                flywheel_time = flywheel_q.get_nowait()
                self.elapsed_time = flywheel_time - session_start_time
                self.elapsed_time = timedelta_milliseconds(self.elapsed_time)
                self.fwr.update(self.elapsed_time)

            if not IRq.empty():
                item = IRq.get_nowait()
                ir_time = item[0]
                new_ir = item[1]
                self.elapsed_time = ir_time - session_start_time
                self.elapsed_time = timedelta_milliseconds(self.elapsed_time)
                self.ssr.update(self.elapsed_time, new_ir)

            sample_current_time = datetime.datetime.now()

    def get_sample_flywheel_updates(self):
        return self.fwr.flywheel_updates

    def get_sample_ir_updates(self):
        return self.ssr.get_ir_pos_updates()

    def get_stroke_pos_change(self):
        return self.ssr.get_stroke_pos_change()

    def get_flywheel_change(self):
        return self.fwr.get_change()

    def reset(self):
        self.fwr.reset_change()
        self.ssr.reset_change()
コード例 #8
0
 def test_one_stroke_pos_change_forwrd_and_two_back(self):
     ssr = StrokeSensorRecorder()
     ssr.update('800', 1)
     ssr.update('810', 2)
     ssr.update('820', 3)
     ssr.update('830', 2)
     ssr.update('840', 1)
     ssr.update('850', 3)
     ssr.update('860', 2)
     ssr.update('870', 1)
     ssr.update('880', 3)
     self.assertEquals(-1, ssr.get_stroke_pos_change())
     self.assertEquals([['800',1], \
                        ['810',2], \
                        ['820',3], \
                        ['830',2], \
                        ['840',1], \
                        ['850',3], \
                        ['860',2], \
                        ['870',1], \
                        ['880',3]],ssr.get_ir_pos_updates())
コード例 #9
0
 def test_no_activity(self):
     ssr = StrokeSensorRecorder()
     self.assertEquals(0, ssr.get_stroke_pos_change())
     self.assertEquals([], ssr.get_ir_pos_updates())
コード例 #10
0
 def __init__(self):
     self.ssr = StrokeSensorRecorder()
     self.fwr = FlywheelRecorder()
     self.elapsed_time = 0