예제 #1
0
    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))
예제 #2
0
    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))
예제 #3
0
    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))
예제 #4
0
    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))
예제 #5
0
 def __init__(self, addr_input, owner):
     self._owner = owner
     self._initPosition = self._owner.worldPosition.copy()
     self._shm = shm([0, 0, 0, 0, 0, 0])
     self._receiver = Receiver(addr_input, shm)
     self._receiver.start()
예제 #6
0
 def __init__(self, addr_input, owner):
     self._owner = owner
     self._initPosition = self._owner.worldPosition.copy()
     self._shm = shm([0, 0, 0, 0, 0, 0])
     self._receiver = Receiver(addr_input, shm)
     self._receiver.start()