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()
received_unhandled_entry = cast(None, FnVoid_VoidP_DataP)) def data_handler(p): global read_count read_count += 2 #print("{epoch: %d, value: %s}" % (p.contents.epoch, parse_value(p))) callback = FnVoid_VoidP_DataP(lambda ctx, p: data_handler(p)) print("Subscribe to logger") libmetawear.mbl_mw_logger_subscribe(logger, None, callback) print("Download data") dl_time = time.time() libmetawear.mbl_mw_logging_download(d.board, 0, byref(download_handler)) e.wait() dl_time = time.time() - dl_time print("Entry Read Count: %d" % (read_count)) print("Entry Read Rate: %0.1f entries/s" % (read_count / dl_time)) except RuntimeError as err: print(err) finally: print("Resetting device") e = Event() d.on_disconnect = lambda status: e.set() print("Debug reset") libmetawear.mbl_mw_debug_reset(d.board) e.wait()
from mbientlab.metawear.cbindings import * from time import sleep from threading import Event import platform import sys event = Event() # connect device = MetaWear(sys.argv[1]) device.connect() print("Connected to " + device.address) sleep(1.0) # remove macros print("Removing all macros") libmetawear.mbl_mw_macro_erase_all(device.board) sleep(1.0) # reset print("Debug reset and garbage collect") libmetawear.mbl_mw_debug_reset_after_gc(device.board) sleep(1.0) # disconnect print("Disconnect") device.on_disconnect = lambda status: event.set() libmetawear.mbl_mw_debug_disconnect(device.board) event.wait()
# calbration handle fxn ptr fn_wrapper_02 = FnVoid_VoidP_DataP(calibration_handler) # setup sensor fusion config libmetawear.mbl_mw_sensor_fusion_set_mode(device.board, SensorFusionMode.NDOF) libmetawear.mbl_mw_sensor_fusion_write_config(device.board) # subscribe to the calibration sensor fusion signal libmetawear.mbl_mw_datasignal_subscribe(signal, None, fn_wrapper_02) # start libmetawear.mbl_mw_sensor_fusion_start(device.board) # read libmetawear.mbl_mw_datasignal_read(signal) # wait for event e.wait() print("Disconnecting") e.clear() device.on_disconnect = lambda s: e.set() # stop libmetawear.mbl_mw_sensor_fusion_stop(device.board) sleep(2.0) # disconnect libmetawear.mbl_mw_debug_disconnect(device.board) # wait until done e.wait()
if (left == 0): e.set() # unknown entry handler fxn def unknown_entry_handler(ctx, id, epoch, data, length): print("unknown entry = " + str(id)) # download handlers print("Downloading log") progress_update_fn = FnVoid_VoidP_UInt_UInt(progress_update_handler) unknown_entry_fn = FnVoid_VoidP_UByte_Long_UByteP_UByte( unknown_entry_handler) download_handler = LogDownloadHandler( context=None, received_progress_update=progress_update_fn, received_unknown_entry=unknown_entry_fn, received_unhandled_entry=cast(None, FnVoid_VoidP_DataP)) # download libmetawear.mbl_mw_logging_download(metawear.board, 10, byref(download_handler)) # wait until done e.wait() # wait 1s sleep(1.0) print("Download completed") e.clear() metawear.on_disconnect = lambda status: e.set() # disconnect libmetawear.mbl_mw_debug_disconnect(metawear.board) e.wait()