Esempio n. 1
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()
        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()
Esempio n. 3
0
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()
Esempio n. 4
0
# 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()