libmetawear.mbl_mw_sensor_fusion_start(s.device.board) print("start streaming") sleep(5.0) for s in states: print("stop streaming") libmetawear.mbl_mw_sensor_fusion_stop(s.device.board) libmetawear.mbl_mw_acc_stop(s.device.board) libmetawear.mbl_mw_acc_disable_acceleration_sampling(s.device.board) print("Unsubscribing.. ") signal = libmetawear.mbl_mw_sensor_fusion_get_data_signal( s.device.board, SensorFusionData.EULER_ANGLE) libmetawear.mbl_mw_datasignal_unsubscribe(signal) acc = libmetawear.mbl_mw_sensor_fusion_get_data_signal( s.device.board, SensorFusionData.LINEAR_ACC) print("ths") ths = libmetawear.mbl_mw_dataprocessor_threshold_create( acc, ThresholdMode.BINARY, 0.2, 0.0, None, s.callbackax) libmetawear.mbl_mw_datasignal_unsubscribe(ths) print("ths ended") libmetawear.mbl_mw_debug_disconnect(s.device.board) print("Total Samples Received") for s in states: print("%s -> %d" % (s.device.address, s.samples)) print(az)
# setup averager - averages over 8 RMS samples @ 50Hz avg = create_voidp(lambda fn: libmetawear. mbl_mw_dataprocessor_average_create(rms, 8, None, fn), resource="averager", event=e) print("Averager created") # setup event on avg - reset averager libmetawear.mbl_mw_event_record_commands(avg) libmetawear.mbl_mw_dataprocessor_average_reset(avg) create_voidp_int( lambda fn: libmetawear.mbl_mw_event_end_record(avg, None, fn), event=e) # setup threshold detector - detect anything above 1 ths = create_voidp( lambda fn: libmetawear.mbl_mw_dataprocessor_threshold_create( avg, ThresholdMode.BINARY, 1.0, 0.0, None, fn), resource="threshold detector", event=e) print("Threshold detector created") # setup logger - log the final signal of the averaged data ths_logger = create_voidp( lambda fn: libmetawear.mbl_mw_datasignal_log(ths, None, fn), resource="threshold logger", event=e) print("Threshold logger created") # start accelerometer and event logging libmetawear.mbl_mw_acc_enable_acceleration_sampling(d.board) libmetawear.mbl_mw_acc_start(d.board) libmetawear.mbl_mw_logging_start(d.board, 0)