コード例 #1
0
    def start(self):
        libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling(
            self.device.board)
        libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board)

        libmetawear.mbl_mw_gyro_bmi160_start(self.device.board)
        libmetawear.mbl_mw_acc_start(self.device.board)
コード例 #2
0
ファイル: stream_acc.py プロジェクト: PawelTomkow/iot
    def start_test(self, time_tests):
        for device in self.device_list:
            logger.info_log(f"Start device: {device.device.address}")
            signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
                device.device.board)
            libmetawear.mbl_mw_datasignal_subscribe(signal, None,
                                                    device.callback)

            libmetawear.mbl_mw_acc_enable_acceleration_sampling(
                device.device.board)
            libmetawear.mbl_mw_acc_start(device.device.board)
            sleep(5.0)

        sleep(time_tests)

        for device in self.device_list:
            libmetawear.mbl_mw_acc_stop(device.device.board)
            libmetawear.mbl_mw_acc_disable_acceleration_sampling(
                device.device.board)

            signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
                device.device.board)
            libmetawear.mbl_mw_datasignal_unsubscribe(signal)
            libmetawear.mbl_mw_debug_disconnect(device.device.board)
            logger.info_log(f"Stop device: {device.device.address}")

        if DEBUG_STREAM_ACC:
            start_debug()
            for s in self.device_list:
                if BATCH_STORE:
                    self.strage.store(s.data)
                print("%s -> %d" % (s.device.address, s.samples))
            end_debug()
コード例 #3
0
    def start(self):
        if self.device == None:
            self.log("ERROR", "Device not available")
            return False

        dev_board = self.device.board

        self.log("INFO", "Configuring device")
        lmw.mbl_mw_settings_set_connection_parameters(dev_board, 7.5, 7.5, 0,
                                                      6000)
        time.sleep(1.5)

        # Subscribe to accelerometer data
        acc = lmw.mbl_mw_acc_get_acceleration_data_signal(dev_board)
        lmw.mbl_mw_datasignal_subscribe(acc, None, self.callback_acc)

        # Subscribe to gyro data
        gyro = lmw.mbl_mw_gyro_bmi160_get_rotation_data_signal(dev_board)
        lmw.mbl_mw_datasignal_subscribe(gyro, None, self.callback_gyr)

        self.log("INFO", "Starting device...")
        # Enable accelerometer sampling
        lmw.mbl_mw_acc_enable_acceleration_sampling(dev_board)
        lmw.mbl_mw_acc_start(dev_board)

        # Enable gyrp sampling
        lmw.mbl_mw_gyro_bmi160_enable_rotation_sampling(dev_board)
        lmw.mbl_mw_gyro_bmi160_start(dev_board)

        self.log("INFO", "Device started.")

        return True
コード例 #4
0
ファイル: gui.py プロジェクト: rdmejia/tesis
    def btn_start_shot_click(self):
        self.mw_states = []
        self.xyz_shots = []
        for device in self.mw_devices:
            # try:
            #     device.connect()
            # except:
            #     print 'connection to %s failed (the device might be already connected)' % device.address
            self.mw_states.append(
                MetaWearState(device, self.mw_positions[device.address], self))

        for s in self.mw_states:
            libmetawear.mbl_mw_settings_set_connection_parameters(
                s.device.board, 7.5, 7.5, 0, 6000)
            sleep(1.5)

            libmetawear.mbl_mw_acc_set_odr(s.device.board, 100.0)
            libmetawear.mbl_mw_acc_set_range(s.device.board, 16.0)
            libmetawear.mbl_mw_acc_write_acceleration_config(s.device.board)

            signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
                s.device.board)
            libmetawear.mbl_mw_datasignal_subscribe(signal, None, s.callback)

            libmetawear.mbl_mw_acc_enable_acceleration_sampling(s.device.board)
            libmetawear.mbl_mw_acc_start(s.device.board)

        # t = Timer(15, self.time_elapsed)
        # t.start()
        print 'shot has started'
        return
コード例 #5
0
 def start(self):
     # Start every piece of data collection for every address
     for s in self.states:
         libmetawear.mbl_mw_acc_start(s.device.board)
         libmetawear.mbl_mw_gyro_bmi160_start(s.device.board)
         libmetawear.mbl_mw_mag_bmm150_enable_b_field_sampling(
             s.device.board)
         libmetawear.mbl_mw_mag_bmm150_start(s.device.board)
         libmetawear.mbl_mw_led_stop_and_clear(s.device.board)
     return
コード例 #6
0
    def start(self):
        libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling(
            self.device.board)
        libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board)

        libmetawear.mbl_mw_gyro_bmi160_start(self.device.board)
        libmetawear.mbl_mw_acc_start(self.device.board)

        if self.led:
            self.led_on(LedColor.GREEN, 0, False)
            self.led_on_bool = True
            self.steps_since_led_on = 0
コード例 #7
0
 def start(self):
     # start gyro sampling - MMRL, MMC, MMR only
     #libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling(self.device.board)
     # start gyro sampling - MMS ONLY
     libmetawear.mbl_mw_gyro_bmi270_enable_rotation_sampling(
         self.device.board)
     # start acc sampling
     libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board)
     # start gyro - MMRL, MMC, MMR only
     #libmetawear.mbl_mw_gyro_bmi160_start(self.device.board)
     # start gyro sampling - MMS ONLY
     libmetawear.mbl_mw_gyro_bmi270_start(self.device.board)
     # start acc
     libmetawear.mbl_mw_acc_start(self.device.board)
コード例 #8
0
    def gather_data(self, seconds=3):

        try:
            libmetawear.mbl_mw_logging_start(self.device.board, 0)
            libmetawear.mbl_mw_acc_enable_acceleration_sampling(
                self.device.board)
            libmetawear.mbl_mw_acc_start(self.device.board)
            logging.info('data gathering started')

            time.sleep(int(seconds))

            libmetawear.mbl_mw_acc_stop(self.device.board)
            libmetawear.mbl_mw_acc_disable_acceleration_sampling(
                self.device.board)
            libmetawear.mbl_mw_logging_stop(self.device.board)
            logging.info('data gathering stopped')

        except RuntimeError as err:
            print(err)
            logging.info('runtime error in gather_data() occurred')
            return 0

        return 1
コード例 #9
0
    def setup_logger(self):
        e = Event()
        result = [None]

        def logger_handler(ctx, pointer):
            result[0] = RuntimeError(
                "Could not create logger") if pointer == None else pointer
            e.set()

        fn_wrapper = FnVoid_VoidP_VoidP(logger_handler)

        signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
            self.device.board)
        libmetawear.mbl_mw_datasignal_log(signal, None, fn_wrapper)
        e.wait()

        if (result[0] is RuntimeError):
            raise result[0]

        self.logger = result[0]

        libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board)
        libmetawear.mbl_mw_acc_start(self.device.board)
        libmetawear.mbl_mw_logging_start(self.device.board, 0)
コード例 #10
0
try:
    print("Get and log acc signal")
    signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(d.board)
    logger = create_voidp(
        lambda fn: libmetawear.mbl_mw_datasignal_log(signal, None, fn),
        resource="acc_logger")

    print("Start logging")
    libmetawear.mbl_mw_logging_start(d.board, 0)

    print("Start acc")
    libmetawear.mbl_mw_acc_set_odr(d.board, 400.)
    libmetawear.mbl_mw_acc_write_acceleration_config(d.board)
    libmetawear.mbl_mw_acc_enable_acceleration_sampling(d.board)
    libmetawear.mbl_mw_acc_start(d.board)

    print("Logging data for 10s")
    time.sleep(10.0)

    print("Setop acc")
    libmetawear.mbl_mw_acc_stop(d.board)
    libmetawear.mbl_mw_acc_disable_acceleration_sampling(d.board)

    print("Stop logging")
    libmetawear.mbl_mw_logging_stop(d.board)

    print("Flush cache if MMS")
    libmetawear.mbl_mw_logging_flush_page(d.board)

    print("Downloading data")
コード例 #11
0
                                             GyroBoschRange._1000dps)
    libmetawear.mbl_mw_gyro_bmi270_set_odr(s.device.board, GyroBoschOdr._50Hz)
    libmetawear.mbl_mw_gyro_bmi270_write_config(s.device.board)

    # get acc and subscribe
    acc = libmetawear.mbl_mw_acc_get_acceleration_data_signal(s.device.board)
    libmetawear.mbl_mw_datasignal_subscribe(acc, None, s.accCallback)

    # get gyro and subscribe
    gyro = libmetawear.mbl_mw_gyro_bmi270_get_rotation_data_signal(
        s.device.board)
    libmetawear.mbl_mw_datasignal_subscribe(gyro, None, s.gyroCallback)

    # start acc
    libmetawear.mbl_mw_acc_enable_acceleration_sampling(s.device.board)
    libmetawear.mbl_mw_acc_start(s.device.board)

    # start gyro
    libmetawear.mbl_mw_gyro_bmi270_enable_rotation_sampling(s.device.board)
    libmetawear.mbl_mw_gyro_bmi270_start(s.device.board)

# sleep
sleep(10.0)

# stop
for s in states:
    libmetawear.mbl_mw_acc_stop(s.device.board)
    libmetawear.mbl_mw_acc_disable_acceleration_sampling(s.device.board)

    libmetawear.mbl_mw_gyro_bmi270_stop(s.device.board)
    libmetawear.mbl_mw_gyro_bmi270_disable_rotation_sampling(s.device.board)
コード例 #12
0
ファイル: lunxun.py プロジェクト: Hallows/Fall-detec
print("Connected to GYO device at MAC:" + d.address)
g=gState(d)
sleep(0.5)


print("configuring device..........")
libmetawear.mbl_mw_settings_set_connection_parameters(a.device.board, 7.5, 7.5, 0, 6000)
libmetawear.mbl_mw_acc_set_odr(a.device.board, 25.0);
libmetawear.mbl_mw_acc_set_range(a.device.board, 16.0);
libmetawear.mbl_mw_acc_write_acceleration_config(a.device.board);

asignal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(a.device.board)
libmetawear.mbl_mw_datasignal_subscribe(asignal, a.callback)

libmetawear.mbl_mw_acc_enable_acceleration_sampling(a.device.board);
libmetawear.mbl_mw_acc_start(a.device.board);
print("ACC config finished")

libmetawear.mbl_mw_settings_set_connection_parameters(g.device.board, 7.5, 7.5, 0, 6000)
libmetawear.mbl_mw_gyro_bmi160_set_odr(g.device.board, GyroBmi160Odr._25Hz);
libmetawear.mbl_mw_gyro_bmi160_set_range(g.device.board, GyroBmi160Range._500dps)
libmetawear.mbl_mw_gyro_bmi160_write_config(g.device.board)

gsignal = libmetawear.mbl_mw_gyro_bmi160_get_rotation_data_signal(g.device.board)
libmetawear.mbl_mw_datasignal_subscribe(gsignal, g.callback)

libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling(g.device.board)
libmetawear.mbl_mw_gyro_bmi160_start(g.device.board)
print("GYRO config finished")

sleep(10)
コード例 #13
0
print("Configuring device")
libmetawear.mbl_mw_settings_set_connection_parameters(states[0].device.board,
                                                      7.5, 7.5, 0, 6000)
sleep(1.5)

# start reading in acc data
libmetawear.mbl_mw_acc_set_odr(states[0].device.board, 100.0)
libmetawear.mbl_mw_acc_set_range(states[0].device.board, 16.0)
libmetawear.mbl_mw_acc_write_acceleration_config(states[0].device.board)

signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
    states[0].device.board)
libmetawear.mbl_mw_datasignal_subscribe(signal, None, states[0].callback)

libmetawear.mbl_mw_acc_enable_acceleration_sampling(states[0].device.board)
libmetawear.mbl_mw_acc_start(states[0].device.board)

# continue running for number of seconds defined by user when running script
sleep(int(sys.argv[1]))

libmetawear.mbl_mw_acc_stop(states[0].device.board)
libmetawear.mbl_mw_acc_disable_acceleration_sampling(states[0].device.board)

# unsubscribe from stream and disconnect from device
signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
    states[0].device.board)
libmetawear.mbl_mw_datasignal_unsubscribe(signal)
libmetawear.mbl_mw_debug_disconnect(states[0].device.board)

# print total number of samples received
print("%s -> %d" % (states[0].device.address, states[0].samples))
コード例 #14
0
 def start(self):
     # start acc
     libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board)
     libmetawear.mbl_mw_acc_start(self.device.board)
コード例 #15
0
        s.device.board, 50.0)  #sets the output data rate (frequency, in Hz)
    libmetawear.mbl_mw_acc_set_range(s.device.board,
                                     8.0)  #sets the full scale range
    libmetawear.mbl_mw_acc_write_acceleration_config(
        s.device.board)  #writes the acceleration settings to the board

    dataSignal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
        s.device.board
    )  #retrieves the data signal representing acceleration data
    libmetawear.mbl_mw_datasignal_subscribe(
        dataSignal, None, s.callback
    )  #subscribes to a data stream, processing messages with the given handler

    libmetawear.mbl_mw_acc_enable_acceleration_sampling(
        s.device.board)  #enables acceleration sampling
    libmetawear.mbl_mw_acc_start(
        s.device.board)  #switches the accelerometer to active mode
    print('Device ready')

print('\nConfiguring the software...')

#Turn on the LED during the measures
pattern = LedPattern(repeat_count=Const.LED_REPEAT_INDEFINITELY)
libmetawear.mbl_mw_led_load_preset_pattern(byref(pattern), LedPreset.SOLID)
libmetawear.mbl_mw_led_write_pattern(d.board, byref(pattern), LedColor.RED)
libmetawear.mbl_mw_led_play(d.board)

#___________________________________________
''' infinite loop used to run the application '''

root.mainloop()