Пример #1
0
def test_post_stream(mock_post):
  # Create a mocked response object.
  mock_r = mock.create_autospec(requests.Response)
  mock_r.json = mock.MagicMock(return_value=dict(stream_id='test_stream'))
  mock_post.return_value = mock_r

  # Do the actual call.
  stream_cfg = StreamConfig(['a', 'b', 'c'], 64, 'test_hw')
  stream_id = idport.post_stream('http://example.com', 'test-user', stream_cfg)

  # Verify URL and data posted to URL.
  (url,), kwargs = mock_post.call_args
  assert url == 'http://example.com/u/test-user/s'
  assert StreamConfig.fromstring(kwargs['data']) == stream_cfg

  # Check that errors are raised.
  mock_r.raise_for_status.assert_called_with()
  assert stream_id == 'test_stream'
Пример #2
0
  ftc = ftbuffer.Client()   

  log.info('Connecting to FieldTrip buffer at %s:%s...', 
    args.ft_hostname, args.ft_port)
  ftc.connect(args.ft_hostname, args.ft_port)
  
  log.info('Reading EEG config.')
  H = ftc.getHeader()
  assert H
  assert H.dataType == 10  
  # Magic number from Emotiv EPOC stream... I don't know how well other
  # data types work.

  # Create a stream on the IDPort server
  stream_config = idport.StreamConfig(H.labels, H.fSample, args.hardware_id)
  stream_id = idport.post_stream(args.idport_url, args.user_id, stream_config)
  log.info('Created stream %s.', stream_id)

  # Start streaming from the /current/ point in time.
  i = H.nSamples - 1
  log.info('Starting streaming from sample %d...', i)

  while True:
    nsamples, nevents = ftc.poll()
    log.debug('Server holds %d samples and %d events.', nsamples, nevents)
    assert nevents == 0, 'Handling of events is not implemented!'
    lag = nsamples - i
    if lag > (stream_config.sample_rate * .1):
      log.warning('Lagging %d samples', lag)
    assert lag < stream_config.sample_rate * .2