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)
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 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
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
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
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
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)
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
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)
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")
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)
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)
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))
def start(self): # start acc libmetawear.mbl_mw_acc_enable_acceleration_sampling(self.device.board) libmetawear.mbl_mw_acc_start(self.device.board)
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()