Exemple #1
0
    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
Exemple #2
0
	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")
Exemple #3
0
    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()
Exemple #4
0
    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)
Exemple #6
0
    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()
Exemple #7
0
    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
Exemple #8
0
 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!")
Exemple #9
0
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))
Exemple #11
0
    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)
Exemple #13
0
 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)
Exemple #14
0
        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))