Skip to content

RPC interface for Swabian Instruments' Time Tagger. Control your Time Tagger over the network.

License

Notifications You must be signed in to change notification settings

swabianinstruments/TimeTaggerRPC

Repository files navigation

PyPI Version PyPI - Downloads

Time Tagger RPC implementation using Pyro5.

Alpha version !

This project is in the alpha stage of the development. This means that the code successfully passed basic testing and is operational. However, some things might be broken, and the API may change in the future versions.

Install

> pip install TimeTaggerRPC

Run server

Start the server on a PC with the Time Tagger connected.

> TimeTaggerRPC-server --help
usage: TimeTaggerRPC-server [-h] [--host localhost] [--port 23000] [--use_ns] [--start_ns]

--------------------------------------------
Swabian Instruments Time Tagger RPC Server.
--------------------------------------------

optional arguments:
  -h, --help        show this help message and exit
  --host localhost  Hostname or IP on which the server will listen for connections.
  --port 23000      Server port.
  --use_ns          Use Pyro5 name server.
  --start_ns        Start Pyro5 name server in a subprocess.

Client example

Control Time Tagger remotely over the network.

import matplotlib.pyplot as plt
from TimeTaggerRPC import client

with client.createProxy(host='localhost', port=23000) as TT:
   tagger = TT.createTimeTagger()
   tagger.setTestSignal(1, True)
   tagger.setTestSignal(2, True)

   hist = TT.Correlation(tagger, 1, 2, binwidth=5, n_bins=2000)
   hist.startFor(int(10e12), clear=True)

   x = hist.getIndex()
   while hist.isRunning():
      plt.pause(0.1)
      y = hist.getData()
      plt.cla()
      plt.plot(x, y)

   TT.freeTimeTagger(tagger)
   

You can find more information about the Time Tagger API in the official documentation.