Tags: realtime development

FieldTrip buffer Python interface

Client side pure Python implementation

The directory fieldtrip/realtime/src/buffer/python contains a single-file Python module called FieldTrip.py. This provides classes that wrap FieldTrip-style header structures, events, and client connections to a server, including functions for the various requests to read and write samples and events. The module depends on Numpy for representing data matrices and the type and value fields of events.

The following Python code example demonstrates how to use the interface

import sys
import FieldTrip
import numpy as np

ftc = FieldTrip.Client()
ftc.connect('localhost', 1972)    # might throw IOError
H = ftc.getHeader()

if H is None:
  print('Failed to retrieve header!')
  sys.exit(1)

print(H)
print(H.labels)

if H.nSamples > 0:
  print('Trying to read last sample...')
  index = H.nSamples - 1
  D = ftc.getData([index, index])
  print(D)

print("writing random data to buffer")
arr = np.random.random([H.nSamples, H.nChannels])
ftc.putData(arr)

if H.nEvents > 0:
  print('Trying to read (all) events...')
  E = ftc.getEvents()
  for e in E:
      print(e)

ftc.disconnect()