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
Example #2
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)

        #streaming and logging
        signal = libmetawear.mbl_mw_multi_chnl_temp_get_temperature_data_signal(self.device.board, \
            MetaWearRProChannel.ON_BOARD_THERMISTOR)
        libmetawear.mbl_mw_datasignal_log(signal, None, fn_wrapper)
        e.wait()
        
        if (result[0] is RuntimeError):
            raise result[0]

        self.logger = result[0]
        self.timer = self._setup_timer()
        self._setup_read_event(self.timer, signal)

        libmetawear.mbl_mw_logging_start(self.device.board, 0);
        libmetawear.mbl_mw_timer_start(self.timer)
Example #3
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)
print("Searching for device...")
d = MetaWear(sys.argv[1])
d.connect()
print("Connected to " + d.address)

print("Configuring device")

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")
    # get motion signal    
    motion_signal = libmetawear.mbl_mw_acc_bosch_get_motion_data_signal(s.device.board)
    print("get motion signal")

    # create event that changes count based on motion signal
    s.events["event"].clear()
    libmetawear.mbl_mw_event_record_commands(motion_signal)
    libmetawear.mbl_mw_dataprocessor_passthrough_set_count(s.passthrough_signal, 10)
    print("create event that changes counter based on motion")
    libmetawear.mbl_mw_event_end_record(motion_signal, None, event_created_fn)
    s.events["event"].wait()

    # start
    print("Start")
    libmetawear.mbl_mw_logging_start(s.device.board, 0)
    libmetawear.mbl_mw_acc_enable_acceleration_sampling(s.device.board)
    libmetawear.mbl_mw_acc_start(s.device.board)       
    libmetawear.mbl_mw_acc_bosch_enable_motion_detection(s.device.board)
    libmetawear.mbl_mw_acc_bosch_start(s.device.board)

print("0 min")
sleep(60.0)
print("1 min")
sleep(60.0)
print("2 min")
sleep(60.0)
print("3 min")
sleep(60.0)
print("4 min")
sleep(60.0)