コード例 #1
0
ファイル: ThreadedFilter.py プロジェクト: TurpIF/Togetic
class ThreadedFilter(AbstractServer):
    def __init__(self, addr_input, addr_output):
        AbstractServer.__init__(self)

        shm_in = shm()
        shm_out = shm()
        self._receiver = Receiver(addr_input, shm_in)
        self._handler = FilterHandler(shm_in, shm_out)
        self._emitter = Listener(addr_output, Emitter(shm_out))

    def start(self):
        self._receiver.start()
        self._handler.start()
        self._emitter.start()
        AbstractServer.start(self)

    def _serve(self):
        time.sleep(0.5)

    def _free(self):
        for s in [self._receiver, self._handler, self._emitter]:
            print('Stopping ', s)
            s.stop()
            s.join(2)
            print(s, 'stopped')
コード例 #2
0
ファイル: ThreadedFilter.py プロジェクト: TurpIF/Togetic
class ThreadedFilter(AbstractServer):
    def __init__(self, addr_input, addr_output):
        AbstractServer.__init__(self)

        shm_in = shm()
        shm_out = shm()
        self._receiver = Receiver(addr_input, shm_in)
        self._handler = FilterHandler(shm_in, shm_out)
        self._emitter = Listener(addr_output, Emitter(shm_out))

    def start(self):
        self._receiver.start()
        self._handler.start()
        self._emitter.start()
        AbstractServer.start(self)

    def _serve(self):
        time.sleep(0.5)

    def _free(self):
        for s in [self._receiver, self._handler, self._emitter]:
            print('Stopping ', s)
            s.stop()
            s.join(2)
            print(s, 'stopped')
コード例 #3
0
ファイル: ThreadedFilter.py プロジェクト: TurpIF/Togetic
    def __init__(self, addr_input, addr_output):
        AbstractServer.__init__(self)

        shm_in = shm()
        shm_out = shm()
        self._receiver = Receiver(addr_input, shm_in)
        self._handler = FilterHandler(shm_in, shm_out)
        self._emitter = Listener(addr_output, Emitter(shm_out))
コード例 #4
0
ファイル: ThreadedFilter.py プロジェクト: TurpIF/Togetic
    def __init__(self, addr_input, addr_output):
        AbstractServer.__init__(self)

        shm_in = shm()
        shm_out = shm()
        self._receiver = Receiver(addr_input, shm_in)
        self._handler = FilterHandler(shm_in, shm_out)
        self._emitter = Listener(addr_output, Emitter(shm_out))
コード例 #5
0
ファイル: ThreadedSensor.py プロジェクト: TurpIF/Togetic
    def __init__(self, addr_input, addr_output):
        AbstractServer.__init__(self)

        # Offset en bits
        # gyr_offset_x = 4.18973187447
        # gyr_offset_y = -7.3076830588
        # gyr_offset_z = 14.5367319947
        acc_scale = 1.0  # bits -> mg -> g
        gyr_scale = math.pi / 180.0 * 8.75 / 1000  # bits -> deg -> rad

        tr_accel = lambda bits, avg: (
            (bits[0] - avg[0]) * 0.00376390 * acc_scale,
            (bits[1] - avg[1]) * 0.00376009 * acc_scale,
            (bits[2] - avg[2]) * 0.00349265 * acc_scale + 1)
        tr_gyro = lambda bits, avg: ((bits[0] - avg[0]) * gyr_scale,
                                     (bits[1] - avg[1]) * gyr_scale,
                                     (bits[2] - avg[2]) * gyr_scale)
        tr_compass = lambda bits: (0.019292 * (bits[0] - 50.097), 0.019780 *
                                   (bits[1] + 313.964), 0.018400 *
                                   (bits[2] - 197.500))

        transformation = lambda bits, a_avg, g_avg: (tr_accel(
            bits[0:3], a_avg) + tr_gyro(bits[3:6], g_avg) + tr_compass(bits[6:9
                                                                            ]))

        shm_data = shm()
        # shm_accel = shm()
        # shm_gyro = shm()
        # shm_compass = shm()
        shm_serial = shm(serial.Serial(addr_input, 115200, timeout=0))
        self._handler = SerialHandler('R', 'r', transformation, shm_serial,
                                      shm_data)
        # self._accel_handler = SerialHandler('A', 'a', tr_accel, shm_serial, shm_accel)
        # self._gyro_handler = SerialHandler('G', 'g', tr_gyro, shm_serial, shm_gyro)
        # self._compass_handler = SerialHandler('C', 'c', tr_compass, shm_serial, shm_compass)
        self._emitter = Listener(
            addr_output,
            Emitter(shm_data))  #shm_accel, shm_gyro, shm_compass))