def stop(self): for s in self.states: # Disable acceleration libmetawear.mbl_mw_acc_stop(s.device.board) libmetawear.mbl_mw_acc_disable_acceleration_sampling( s.device.board) signal_acceleration = libmetawear.mbl_mw_acc_get_acceleration_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal_acceleration) # Disable gyro libmetawear.mbl_mw_gyro_bmi160_stop(s.device.board) libmetawear.mbl_mw_gyro_bmi160_disable_rotation_sampling( s.device.board) signal_gyro = libmetawear.mbl_mw_gyro_bmi160_get_rotation_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal_gyro) # Disable magnometer libmetawear.mbl_mw_mag_bmm150_stop(s.device.board) libmetawear.mbl_mw_mag_bmm150_disable_b_field_sampling( s.device.board) # Disconnect board and turn off LED libmetawear.mbl_mw_debug_disconnect(s.device.board) return
def close(self): libmetawear.mbl_mw_sensor_fusion_stop(self.board) libmetawear.mbl_mw_sensor_fusion_clear_enabled_mask(self.board) libmetawear.mbl_mw_datasignal_unsubscribe(self.euler_signal) self.device.disconnect() sleep(1) print("DISCONNETED")
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()
def stop_metawears(self): print 'shot has finished' for s in self.mw_states: libmetawear.mbl_mw_acc_stop(s.device.board) libmetawear.mbl_mw_acc_disable_acceleration_sampling( s.device.board) signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal) # libmetawear.mbl_mw_debug_disconnect(s.device.board) return
def run(self): loop_rate = rospy.Rate(100) while not rospy.is_shutdown(): loop_rate.sleep() print("Disconnect") libmetawear.mbl_mw_sensor_fusion_stop(self.device.board) #libmetawear.mbl_mw_datasignal_unsubscribe(self.gyro_signal) #libmetawear.mbl_mw_datasignal_unsubscribe(self.acc_signal) libmetawear.mbl_mw_datasignal_unsubscribe(self.rot_signal) #libmetawear.mbl_mw_datasignal_unsubscribe(self.acc_lin_signal) #libmetawear.mbl_mw_datasignal_unsubscribe(self.g_signal) libmetawear.mbl_mw_debug_disconnect(self.device.board)
def calibrate(self): e = Event() def calibration_data_handler(ctx, board, pointer): print("calibration data: %s" % (pointer.contents)) libmetawear.mbl_mw_sensor_fusion_write_calibration_data( board, pointer) libmetawear.mbl_mw_memory_free(pointer) e.set() def calibration_handler(ctx, pointer): value = parse_value(pointer) print("state: %s" % (value)) if (value.accelrometer >= Const.SENSOR_FUSION_CALIBRATION_ACCURACY_HIGH and value.gyroscope >= Const.SENSOR_FUSION_CALIBRATION_ACCURACY_HIGH and value.magnetometer >= Const.SENSOR_FUSION_CALIBRATION_ACCURACY_HIGH): libmetawear.mbl_mw_sensor_fusion_read_calibration_data( self.device.board, None, fn_wrapper_01) else: sleep(1.0) libmetawear.mbl_mw_datasignal_read(signal) fn_wrapper_01 = FnVoid_VoidP_VoidP_CalibrationDataP( calibration_data_handler) fn_wrapper_02 = FnVoid_VoidP_DataP(calibration_handler) signal = libmetawear.mbl_mw_sensor_fusion_calibration_state_data_signal( self.device.board) libmetawear.mbl_mw_sensor_fusion_set_mode(self.device.board, SensorFusionMode.NDOF) libmetawear.mbl_mw_sensor_fusion_write_config(self.device.board) libmetawear.mbl_mw_datasignal_subscribe(signal, None, fn_wrapper_02) libmetawear.mbl_mw_sensor_fusion_start(self.device.board) libmetawear.mbl_mw_datasignal_read(signal) e.wait() sleep(1.0) libmetawear.mbl_mw_sensor_fusion_stop(self.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal) e.clear()
def stop(self): if self.device == None: self.log("ERROR", "Device not available") return False dev_board = self.device.board self.log("INFO", "Stopping device...") lmw.mbl_mw_acc_stop(dev_board) lmw.mbl_mw_acc_disable_acceleration_sampling(dev_board) lmw.mbl_mw_gyro_bmi160_stop(dev_board) lmw.mbl_mw_gyro_bmi160_disable_rotation_sampling(dev_board) # Unsubscribe from accelerometer data acc = lmw.mbl_mw_acc_get_acceleration_data_signal(dev_board) lmw.mbl_mw_datasignal_unsubscribe(acc) # Unsubscribe from gyro data gyro = lmw.mbl_mw_gyro_bmi160_get_rotation_data_signal(dev_board) lmw.mbl_mw_datasignal_unsubscribe(gyro) self.log("INFO", "Device stopped.") return True
def stop(self): libmetawear.mbl_mw_sensor_fusion_stop(self.device.board) AccSignal = libmetawear.mbl_mw_sensor_fusion_get_data_signal( self.device.board, SensorFusionData.LINEAR_ACC) libmetawear.mbl_mw_datasignal_unsubscribe(AccSignal) gpioSignal = libmetawear.mbl_mw_gpio_get_pin_monitor_data_signal( self.device.board, 0) libmetawear.mbl_mw_datasignal_unsubscribe(gpioSignal) libmetawear.mbl_mw_gpio_stop_pin_monitoring(self.device.board, 0) resetSignal = libmetawear.mbl_mw_gpio_get_pin_monitor_data_signal( self.device.board, 1) libmetawear.mbl_mw_datasignal_unsubscribe(resetSignal) libmetawear.mbl_mw_gpio_stop_pin_monitoring(self.device.board, 1) libmetawear.mbl_mw_debug_disconnect(self.device.board) sleep(5.0) self.device.disconnect() sleep(1.0) print("DISCONNECTED!")
import sys device = MetaWear('FB:81:71:31:92:7A') device.connect() # Callback function to process/parse the battery data def data_handler(self, ctx, data): print("%s -> %s" % (self.device.address, parse_value(data))) callback = FnVoid_VoidP_DataP(data_handler) print("Configuring device") libmetawear.mbl_mw_settings_set_connection_parameters(device.board, 7.5, 7.5, 0, 6000) battery_signal = libmetawear.mbl_mw_settings_get_battery_state_data_signal( device.board) libmetawear.mbl_mw_datasignal_subscribe(battery_signal, None, callback) sleep(1.0) libmetawear.mbl_mw_datasignal_read(battery_signal) sleep(5.0) libmetawear.mbl_mw_datasignal_unsubscribe(battery_signal) libmetawear.mbl_mw_debug_disconnect(device.board) device.on_disconnect = lambda status: print("we are disconnected!") device.disconnect()
libmetawear.mbl_mw_gyro_bmi160_set_odr(s.device.board, AccBmi160Odr._50Hz) libmetawear.mbl_mw_gyro_bmi160_set_range(s.device.board, AccBoschRange._125dps) libmetawear.mbl_mw_gyro_bmi160_write_config(s.device.board) signal = libmetawear.mbl_mw_gyro_bmi160_get_rotation_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_subscribe(signal, None, s.callback) libmetawear.mbl_mw_gyro_bmi160_enable_rotation_sampling(s.device.board) libmetawear.mbl_mw_gyro_bmi160_start(s.device.board) sleep(10.0) for s in states: libmetawear.mbl_mw_gyro_bmi160_stop(s.device.board) libmetawear.libmetawear.mbl_mw_gyro_bmi160_disable_rotation_sampling( s.device.board) signal = libmetawear.mbl_mw_gyro_bmi160_get_rotation_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal) libmetawear.mbl_mw_debug_disconnect(s.device.board) sleep(1.0) conn.close() print("Total Samples Received") for s in states: print("%s -> %d" % (s.device.address, s.samples))
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) acc = libmetawear.mbl_mw_acc_get_acceleration_data_signal(s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(acc) gyro = libmetawear.mbl_mw_gyro_bmi270_get_rotation_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(gyro) libmetawear.mbl_mw_debug_disconnect(s.device.board) # recap print("Total Samples Received") for s in states: print("%s -> %d" % (s.device.address, s.samples))
''' Stop the device ''' #Turn of the LED at the end of the measures libmetawear.mbl_mw_led_stop_and_clear(d.board) #Stops the measures for s in states: libmetawear.mbl_mw_acc_stop( s.device.board) #switches the accelerometer to standby mode libmetawear.mbl_mw_acc_disable_acceleration_sampling( s.device.board) #disables acceleration sampling dataSignal = libmetawear.mbl_mw_acc_get_acceleration_data_signal( s.device.board ) #retrieves the data signal representing acceleration data libmetawear.mbl_mw_datasignal_unsubscribe( dataSignal) #unsubscribes from a data stream libmetawear.mbl_mw_debug_disconnect(s.device.board) #print("\nTotal Samples Received") #for s in states: #print("%s -> %d" % (s.device.address, s.samples)) #Creating dataframe d = { 'x-axis (g)': arrayDataX, 'y-axis (g)': arrayDataY, 'z-axis (g)': arrayDataZ } df = pd.DataFrame(data=d) #print(df)
def DevClose(self): libmetawear.mbl_mw_sensor_fusion_stop(self.board) libmetawear.mbl_mw_sensor_fusion_clear_enabled_mask(self.board) libmetawear.mbl_mw_datasignal_unsubscribe(self.euler_signal) self.device.disconnect() time.sleep(1)
s.device.board) signal_acc_x = libmetawear.mbl_mw_datasignal_get_component( signal_acc, Const.ACC_ACCEL_X_AXIS_INDEX) libmetawear.mbl_mw_datasignal_subscribe(signal_acc_x, None, s.callback) signal_acc_y = libmetawear.mbl_mw_datasignal_get_component( signal_acc, Const.ACC_ACCEL_Y_AXIS_INDEX) libmetawear.mbl_mw_datasignal_subscribe(signal_acc_y, None, s.callbacky) signal_acc_z = libmetawear.mbl_mw_datasignal_get_component( signal_acc, Const.ACC_ACCEL_Z_AXIS_INDEX) libmetawear.mbl_mw_datasignal_subscribe(signal_acc_z, None, s.callbackz) libmetawear.mbl_mw_acc_enable_acceleration_sampling(s.device.board) libmetawear.mbl_mw_acc_start(s.device.board) sleep(5.0) for s in states: libmetawear.mbl_mw_acc_stop(s.device.board) libmetawear.mbl_mw_acc_disable_acceleration_sampling(s.device.board) signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal( s.device.board) libmetawear.mbl_mw_datasignal_unsubscribe(signal_acc_x) libmetawear.mbl_mw_datasignal_unsubscribe(signal_acc_y) libmetawear.mbl_mw_datasignal_unsubscribe(signal_acc_z) libmetawear.mbl_mw_debug_disconnect(s.device.board) print("Total Samples Received") for s in states: print("%s -> %d" % (s.device.address, s.samples))