# devices.cryomagnetics:CS04


Cryomagnetics CS04 magnet power supply.


Usage

``` python
devices.cryomagnetics:CS04(
    interface,
    **kwargs,
)
```


Typically connected via `GPIB::<address>::INSTR` The user shall set `max_field` to a reasonable value upon initialization.


## Parameters


`interface: str`  
VISA resource name

`**kwargs`  
Additional arguments passed to VisaDevice. Includes the optional `max_field` (float), the maximum allowed field in Tesla (defaults to 0.1 T).


## Methods

| Name | Description |
|----|----|
| [get_field()](#get_field) | Get the current magnetic field. |
| [ident()](#ident) | Get the device identification string. |
| [reset()](#reset) | Reset the magnet to zero field. |
| [set_field()](#set_field) | Set the magnetic field to a specified value. |
| [wait_field()](#wait_field) | Wait until the magnet field reaches the specified setpoint. |

------------------------------------------------------------------------


### get_field()


Get the current magnetic field.


Usage

``` python
get_field()
```


#### Returns


`float`  
Current magnetic field in Tesla


------------------------------------------------------------------------


### ident()


Get the device identification string.


Usage

``` python
ident()
```


#### Returns


`str`  
Device identification string


------------------------------------------------------------------------


### reset()


Reset the magnet to zero field.


Usage

``` python
reset()
```


Sets the upper and lower limits to zero and initiates a slow sweep to zero field.


------------------------------------------------------------------------


### set_field()


Set the magnetic field to a specified value.


Usage

``` python
set_field(field)
```


#### Parameters


`field: float`  
Target magnetic field in Tesla


#### Notes

If field is zero, it will call reset(). If field exceeds max_field, the command will be rejected. For positive fields, it sets upper limit and sweeps up. For negative fields, it sets lower limit and sweeps down.

------------------------------------------------------------------------


### wait_field()


Wait until the magnet field reaches the specified setpoint.


Usage

``` python
wait_field(
    setpoint=None,
    delta=0.0002,
)
```


#### Parameters


`setpoint: float = None`  
Target field in Tesla. If None, uses the internal setpoint.

`delta: float = ``0.0002`  
Acceptable difference between current and target field, defaults to 0.0002 T


#### Notes

The method will wait until the field is within delta of the setpoint for at least two consecutive readings, then pause the sweep.
