conn_params = cbpy.defaultConParams()
cbpy.open(parameter=conn_params)

print("Creating LSL Outlet")
outlet_info = pylsl.StreamInfo(name=STREAM_NAME, type=TYPE, channel_count=len(CHANNEL_NAMES),
                               nominal_srate=pylsl.IRREGULAR_RATE, channel_format=CHAN_FORMAT, source_id=SOURCE_ID)
outlet_info.desc().append_child_value("manufacturer", "Blackrock")
channels = outlet_info.desc().append_child("channels")
for c in CHANNEL_NAMES:
    channels.append_child("channel").append_child_value("label", c)
outlet = pylsl.StreamOutlet(outlet_info)

print("Sending timestamps...")
try:
    start_time = pylsl.local_clock()
    n_samples = 0
    target_isi = 1 / SYNC_RATE
    while True:
        while (pylsl.local_clock() - start_time) < (n_samples * target_isi):
            time.sleep(0.1/SYNC_RATE)
        cbpy.trial_config(reset=True, noevent=True, nocontinuous=True, nocomment=True)
        res, ts = cbpy.time()
        lsl_stamp = pylsl.local_clock()
        outlet.push_sample([int(ts)], timestamp=lsl_stamp)
        n_samples += 1
except KeyboardInterrupt:
    print("Terminating...")

del outlet
cbpy.close()
print ''

n_secs = 5
loop_time = 0.1
n_itrs = int(n_secs / loop_time)

for itr in range(n_itrs):
    t_start = time.time()
    print '\nitr %d of %d:' % (itr + 1, n_itrs)

    # print 'calling cbpy.trial_event()'
    # result, trial = cbpy.trial_event(reset=True)
    # result, nsp_time = cbpy.time()
    print 'calling cbpy.trial_continuous()'
    result, trial = cbpy.trial_continuous(reset=True)
    result, nsp_time = cbpy.time()
    for i in range(len(trial)):
        print '# samples:', len(trial[i][1])

    print 'result:', result
    print 'trial:', trial
    print ''

    # print 'calling cbpy.time()'
    result, nsp_time = cbpy.time()
    print 'result:', result
    print 'time:', nsp_time
    print ''

    t_elapsed = time.time() - t_start
    if t_elapsed < loop_time:
n_secs = 20
loop_time = 0.1
n_itrs = int(n_secs / loop_time)

last_nsp_time = 0

for itr in range(n_itrs):
    t_start = time.time()
    print '-' * 79
    print '\nitr %d of %d:' % (itr+1, n_itrs)
    print ''

    # print 'calling cbpy.trial_event(), followed by cbpy.time()'
    # print ''
    trial_event_result, trial = cbpy.trial_event(reset=True)
    time_result, nsp_time = cbpy.time()

    n_ts = 0
    for list_ in trial:
        for unit, unit_ts in enumerate(list_[1]['timestamps']):
            n_ts += len(unit_ts)

    data = np.zeros((n_ts, 3), dtype=np.int32)  # 3 columns: timestamp, chan, unit
    idx = 0
    for list_ in trial:
        chan = list_[0] - nPlay_chan_offset
        for unit, unit_ts in enumerate(np.array(list_[1]['timestamps'])):
            if len(unit_ts) > 0:
                for ts in unit_ts:
                    if ts < last_nsp_time:
                        args = (ts, chan, unit, last_nsp_time)
Пример #4
0
 def time(self):
     if self.is_connected:
         res, time = cbpy.time(instance=self.instance)
         return time
     else:
         return None