Metadata-Version: 2.4
Name: fluxim-cs
Version: 1.0.1
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 <thomas.zilliox@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 chamber's temperature of Litos
- Control of the chamber's illumination cycle/intensity of Litos

## Installation

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

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



## Quick Start

All the examples can be found in this [directory](./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=[16,22,20]                  #list of target temperatures in °C 
    chambers_list=["CH1","CH2","CH3"]            #list of chambers to which the temperatures are applied
    pixels_list=["CH1.Px1","CH2.Px2","CH3.Px4"]  #list of pixels on which the intermediate measurement is performed
    settling_time=10                             #waiting time after temperature is reached in seconds
    int_meas="JV"                                #name of intermediate measurement to be performed (can also be a list).



    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=int_meas))
        time.sleep(2)
        litos.wait_for_status(pixels_list,["Constant Voltage","Constant Current","MPP-Tracking"])


    #Routine finished -> Stop Stressing
    litos.stop_stressing(chambers_list)

```


## License

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

