Metadata-Version: 2.4
Name: fluxim-cs
Version: 1.0.3
Summary: A python library to control the Characterization Suite software (CS 4.5+).
Project-URL: Homepage, https://www.fluxim.com/
Project-URL: Repository, https://bitbucket.org/fluximag/fluxim-cs
Author-email: Fluxim AG <hardware@fluxim.com>
License-Expression: MIT
License-File: LICENSE
Keywords: cs,fluxim,measurement
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Requires-Dist: pyzmq
Description-Content-Type: text/markdown


<h2 align="center">
  <img src="https://bitbucket.org/fluximag/fluxim-cs/raw/6f6a79786c50044bc0ed9b280cad6975852f6142/docs/logo.png" width="512"/>
</h2>
<h3 align="center">
  A python library to control the Characterization Suite software (CS 4.5+).
</h3>

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




## What's New in 1.0

- Control of the Litos Chamber temperature
- Control of the Litos Chamber illumination
- Wait for a specific Chamber/Pixel Status
- Stop the Chamber/Pixel stress

## Installation

```bash
pip install fluxim-cs
```

**Requirements:** Python 3.10+ and Fluxim Characterization Suite software (4.5.1+)



## Quick Start

All the examples can be found in this [directory](https://bitbucket.org/fluximag/fluxim-cs/src/master/examples/).
```python
import fluxim_cs.litos as litos
import time
#In this example different temperatures (temperature_list) are sequentially applied to some chambers (chambers_list).
#Once the target temperature is reached an intermediate JV measurement is performed on defined pixels (pixels_list) after a waiting time (settling_time). When the pixels are back in a stressing state the next temperature is set. At the end the chambers are stopped.


if __name__ == "__main__":
    temperature_list=[20,30,40,50,60,70,20]     #list of target temperatures in °C 
    chambers_list=["CH1"]                       #list of chambers to which the temperatures are applied
    pixels_list=["CH1.Px1"]                     #list of pixels on which the intermediate measurement is performed
    settling_time=30                            #waiting time after temperature is reached in seconds


    for setT in temperature_list:
        #apply target temperature
        print("Set Temperature" + litos.set_temperature(setT, chambers_list))
        print("Enable Temperature" + litos.enable_temperature(True, chambers_list))
        time.sleep(2)

        #wait for chamber to reach target temperature
        litos.wait_for_status(chambers_list,["Setpoint Reached"])
        print("Setpoint Reached. Apply waiting time:"+str(settling_time))
        time.sleep(settling_time)

        #Start intermediate Measurement
        print("Start Intermediate Meas")
        print(litos.start_intermediate_measurement(pixels_chambers=pixels_list, measurement="JV"))
        litos.wait_for_status(pixels_list,["Constant Voltage","Constant Current","MPP-Tracking"])
        time.sleep(4)
        

    #Routine finished -> Stop Stressing
    litos.stop_stressing(chambers_list)
    print("Chamber stopped: "+str(chambers_list))

```


## License

This project is licensed under the [MIT License](LICENSE).

