Bluefors Temperature Controller

The Bluefors Temperature Controller agent monitors and controls the Bluefors Temperature Controller device for temperature readout and DR control in newer Bluefors dilution refrigerators. The monitoring is done via HTTP via the requests package.

usage: python3 agent.py [-h] [--ip-address IP_ADDRESS]
                        [--serial-number SERIAL_NUMBER]
                        [--mode {idle,init,acq}]

Agent Options

--ip-address
--serial-number
--mode

Possible choices: idle, init, acq

Starting action for the Agent.

Default: “acq”

Dependencies

Todo

Any dependencies or special set up?

Configuration File Examples

Below are configuration examples for the ocs config file and for running the Agent in a docker container.

OCS Site Config

Todo

Add example config file entry

Docker Compose

Todo

Add example docker compose file entry

Direct Communication with Driver Code

Todo

Describe how to use driver code to communicate directly over serial

Agent API

class pcs.agents.bluefors_tc.agent.Bluefors_TC_Agent(agent, name, ip)[source]

Agent to connect to a single Bluefors Temperature Controller device.

init_bftc(auto_acquire=False, acq_params=None)[source]

Task - Perform first time setup of the communication to the BFTC.

Parameters:
  • auto_acquire (bool, optional) – Default is False. Starts data acquisition after initialization if True.

  • acq_params (dict, optional) – Params to pass to acq process if auto_acquire is True.

acq()[source]
Process - Acquire data from the BF TC. Set to check for new data at

2 Hz - this needs to be adjusted if wait_time+meas_time in the BF TC is shorter than a second (it is much longer than 1 sec by default).

Notes

The most recent data collected is stored in session data in the structure:

>>> response.session['data']
{"fields":
    {"Channel_05": {"T": 293.644, "R": 33.752, "timestamp": 1601924482.722671},
     "Channel_06": {"T": 0, "R": 1022.44, "timestamp": 1601924499.5258765},
     "Channel_08": {"T": 0, "R": 1026.98, "timestamp": 1601924494.8172355},
     "Channel_01": {"T": 293.41, "R": 108.093, "timestamp": 1601924450.9315426},
     "Channel_02": {"T": 293.701, "R": 30.7398, "timestamp": 1601924466.6130798},
    }
}

Todo

Can also add driver API eventually