def connect_to_sensor(self):
     self.device.connect()
     self.signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(
         self.device.board)
     self.logger = create_voidp(
         lambda fn: libmetawear.mbl_mw_datasignal_log(
             self.signal, None, fn),
         resource="acc_logger")
     logging.info('metawear device connected')
     return 1
Пример #2
0
    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)

        #streaming and logging
        signal = libmetawear.mbl_mw_multi_chnl_temp_get_temperature_data_signal(self.device.board, \
            MetaWearRProChannel.ON_BOARD_THERMISTOR)
        libmetawear.mbl_mw_datasignal_log(signal, None, fn_wrapper)
        e.wait()
        
        if (result[0] is RuntimeError):
            raise result[0]

        self.logger = result[0]
        self.timer = self._setup_timer()
        self._setup_read_event(self.timer, signal)

        libmetawear.mbl_mw_logging_start(self.device.board, 0);
        libmetawear.mbl_mw_timer_start(self.timer)
Пример #3
0
    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)
Пример #4
0
import sys
import time

print("Searching for device...")
d = MetaWear(sys.argv[1])
d.connect()
print("Connected to " + d.address)

print("Configuring device")

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")
Пример #5
0
import sys

# connect
print("Searching for device...")
d = MetaWear(sys.argv[1])
d.connect()
print("Connected to " + d.address)

try:
    # setup events
    e = Event()
    print("Configuring device")
    
    # get temp signal and setup logger
    signal = libmetawear.mbl_mw_multi_chnl_temp_get_temperature_data_signal(d.board, MetaWearRProChannel.ON_BOARD_THERMISTOR)
    logger = create_voidp(lambda fn: libmetawear.mbl_mw_datasignal_log(signal, None, fn), resource = "temp_logger", event = e)
    
    # create a timer
    timer = create_voidp(lambda fn: libmetawear.mbl_mw_timer_create_indefinite(d.board, 1000, 0, None, fn), resource = "timer", event = e)
    
    # record an event
    libmetawear.mbl_mw_event_record_commands(timer)
    
    # event is to read temp signal
    libmetawear.mbl_mw_datasignal_read(signal)
    create_voidp_int(lambda fn: libmetawear.mbl_mw_event_end_record(timer, None, fn), event = e)
    
    # start logging
    libmetawear.mbl_mw_logging_start(d.board, 0)
    
    # start timer
    libmetawear.mbl_mw_acc_write_acceleration_config(s.device.board)
    print("setup accelerometer sensor")

    # get acc signal
    acc_signal = libmetawear.mbl_mw_acc_get_acceleration_data_signal(s.device.board)
    print("get accelerometer signal")

    # setup passthrough on acc data for x samples and log it 
    s.events["processor"].clear()
    print("setup passthrough")
    passthrough = libmetawear.mbl_mw_dataprocessor_passthrough_create(acc_signal, PassthroughMode.COUNT, 0, None, processor_created_fn)
    s.events["processor"].wait()

    # setup logger
    s.events["log"].clear()
    libmetawear.mbl_mw_datasignal_log(s.passthrough_signal, None, logger_created_fn)
    s.events["log"].wait()

    # wait 1s
    sleep(1.0)

    # setup any motion
    libmetawear.mbl_mw_acc_bosch_set_any_motion_count(s.device.board, 2)
    libmetawear.mbl_mw_acc_bosch_set_any_motion_threshold(s.device.board, 0.1)
    libmetawear.mbl_mw_acc_bosch_write_motion_config(s.device.board, AccBoschMotion.ANYMOTION)
    print("setup bmi160 motion recognition")

    # get motion signal    
    motion_signal = libmetawear.mbl_mw_acc_bosch_get_motion_data_signal(s.device.board)
    print("get motion signal")
Пример #7
0
print("Connecting to %s..." % (address))
d = MetaWear(address)
d.connect()
print("Connected")

print("Setting up Device")
libmetawear.mbl_mw_settings_set_connection_parameters(d.board, 7.5, 7.5, 0, 6000)

Long = LedPattern(pulse_duration_ms=1000, high_time_ms=500, high_intensity=16, low_intensity=16, repeat_count=Const.LED_REPEAT_INDEFINITELY)
sleep(1.0)

# Collecting GPIO and Switch Data
switch = libmetawear.mbl_mw_switch_get_state_data_signal(d.board)
GPIO = libmetawear.mbl_mw_gpio_get_analog_input_data_signal(d.board, 1, 0)

GPIO_logger = create_voidp(lambda fn: libmetawear.mbl_mw_datasignal_log(GPIO, None, fn), resource = "logger")
libmetawear.mbl_mw_datasignal_subscribe(switch, None, switch_callback)

timer = create_voidp(lambda fn: libmetawear.mbl_mw_timer_create_indefinite(d.board, 1000, 0, None, fn), resource = "timer", event = e) #sampling (ms)
libmetawear.mbl_mw_event_record_commands(timer)
libmetawear.mbl_mw_datasignal_read(GPIO)
libmetawear.mbl_mw_datasignal_read(switch)
create_voidp_int(lambda fn: libmetawear.mbl_mw_event_end_record(timer, None, fn), event = e)

# Logging Sensor Data
try:
    libmetawear.mbl_mw_led_write_pattern(d.board, byref(Long), LedColor.GREEN)
    libmetawear.mbl_mw_led_play(d.board)
    sleep(1.0)
    libmetawear.mbl_mw_led_stop_and_clear(d.board)
Пример #8
0
from threading import Event

import sys

print("Searching for device...")
d = MetaWear(sys.argv[1])
d.connect()
print("Connected to " + d.address)

try:
    e = Event()

    print("Configuring device")
    # logging
    battery_signal = libmetawear.mbl_mw_settings_get_battery_state_data_signal(d.board)
    logger = create_voidp(lambda fn: libmetawear.mbl_mw_datasignal_log(battery_signal, None, fn), resource="battery_logger",
                          event=e)

    # mbl_mw_timer_create_indefinite(
    # MblMwMetaWearBoard * board, uint32_t period, uint8_t  delay, void * context, MblMwFnTimerPtr received_timer
    # )
    #
    # Creates a timer that will run indefinitely.
    # Period is in 1/1000sec
    # Delay: 0 if the timer should immediately fire, non-zero to delay the first event.
    timer = create_voidp(lambda fn: libmetawear.mbl_mw_timer_create_indefinite(d.board, 1000, 0, None, fn),
                         resource="timer", event=e)
    libmetawear.mbl_mw_event_record_commands(timer)
    libmetawear.mbl_mw_datasignal_read(battery_signal)
    create_voidp_int(lambda fn: libmetawear.mbl_mw_event_end_record(timer, None, fn), event=e)