def reset(device): libmetawear.mbl_mw_logging_stop(device.board) libmetawear.mbl_mw_logging_clear_entries(device.board) libmetawear.mbl_mw_macro_erase_all(device.board) libmetawear.mbl_mw_debug_reset_after_gc(device.board) print("Erase logger and clear all entries") sleep(1.0) libmetawear.mbl_mw_debug_disconnect(device.board) sleep(1.0)
def reset(device) -> None: """ This function resets your device if its stuck in a bad state :param device: :return None: """ # Stops data logging libmetawear.mbl_mw_logging_stop(device.board) # Clear the logger of saved entries libmetawear.mbl_mw_logging_clear_entries(device.board) # Remove all macros on the flash memory libmetawear.mbl_mw_macro_erase_all(device.board) # Restarts the board after performing garbage collection libmetawear.mbl_mw_debug_reset_after_gc(device.board) libmetawear.mbl_mw_debug_disconnect(device.board) device.disconnect()
def download_data(self): libmetawear.mbl_mw_timer_remove(self.timer) libmetawear.mbl_mw_logging_stop(self.device.board) e = Event() def progress_update_handler(context, entries_left, total_entries): if (entries_left == 0): e.set() fn_wrapper = FnVoid_VoidP_UInt_UInt(progress_update_handler) download_handler= LogDownloadHandler(context = None, \ received_progress_update = fn_wrapper, \ received_unknown_entry = cast(None, FnVoid_VoidP_UByte_Long_UByteP_UByte), \ received_unhandled_entry = cast(None, FnVoid_VoidP_DataP)) callback = FnVoid_VoidP_DataP(lambda ctx, p: print("%f" % (parse_value(p)))) libmetawear.mbl_mw_logger_subscribe(self.logger, None, callback) libmetawear.mbl_mw_logging_download(self.device.board, 0, byref(download_handler)) e.wait()
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
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") libmetawear.mbl_mw_settings_set_connection_parameters( d.board, 7.5, 7.5, 0, 6000) time.sleep(1.0) print("Setup Download handler") e = Event() read_count = 0 def progress_update_handler(context, entries_left, total_entries): if (entries_left == 0):
sleep(60.0) print("8 min") sleep(60.0) print("9 min") sleep(60.0) print("10 min") # tear down for s in states: # setup logging and acc print("Stop") libmetawear.mbl_mw_acc_stop(s.device.board) libmetawear.mbl_mw_acc_disable_acceleration_sampling(s.device.board) libmetawear.mbl_mw_acc_bosch_disable_motion_detection(s.device.board) libmetawear.mbl_mw_acc_bosch_stop(s.device.board) libmetawear.mbl_mw_logging_stop(s.device.board) # wait 1s print("Downloading data") sleep(1.0) # download handlers s.events["download"].clear() def progress_update_handler(context, entries_left, total_entries): if (entries_left == 0): s.events["download"].set() fn_wrapper = FnVoid_VoidP_UInt_UInt(progress_update_handler) download_handler = LogDownloadHandler(context = None, \ received_progress_update = fn_wrapper, \ received_unknown_entry = cast(None, FnVoid_VoidP_UByte_Long_UByteP_UByte), \