You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A key architectural feature is the use of isolated process execution for each measurement module via Python's `multiprocessing` library, ensuring high stability and preventing inter-script conflicts. This platform is built to streamline data acquisition, enhance experimental reproducibility, and accelerate research workflows.
24
22
25
-
PICA is designed with a clear separation between the user interface (frontend) and the instrument control logic (backend). This modular approach makes the system easy to maintain, extend, and debug.
23
+
PICA is designed with a clear separation between the user interface (GUI) and the instrument control logic (backend). This modular approach makes the system easy to maintain, extend, and debug.
@@ -34,9 +32,9 @@ PICA is designed with a clear separation between the user interface (frontend) a
34
32
35
33
The core design philosophy of PICA is the separation of concerns, implemented through a distinct **GUI-Backend** architecture for each measurement module.
36
34
37
-
-**GUI:** Each measurement has a dedicated GUI script (e.g., `IV_K2400_GUI_v5.py`) built with `Tkinter` and the `CustomTkinter` library. It is responsible for all user interaction, parameter input, and data visualization (live plotting). It runs in the main process.
35
+
-**GUI (Frontend):** Each measurement has a dedicated GUI script (e.g., `IV_K2400_GUI_v5.py`) built with `Tkinter`. It is responsible for all user interaction, parameter input, and data visualization (live plotting). It runs in the main process to remain responsive.
38
36
-**Backend:** The instrument control logic is encapsulated in a separate class (e.g., `Keithley2400_Backend`). This class handles all `PyVISA` communication, instrument configuration, and data acquisition commands.
39
-
-**Process Isolation:** When a measurement is started, the frontend launches its corresponding backend logic in a separate, isolated process using Python's `multiprocessing` library. This is the key to PICA's stability: a crash or error in one measurement script will not affect the main launcher or any other running experiments.
37
+
-**Process Isolation:** When a measurement is started, the GUI launches its corresponding backend logic in a separate, isolated process using Python's `multiprocessing` library. This is the key to PICA's stability: a crash or error in one measurement script will not affect the main launcher or any other running experiments.
40
38
-**Communication:** The frontend and backend communicate via `multiprocessing.Queue` for thread-safe data exchange. The backend performs a measurement and places the data into a queue, which the frontend then reads to update plots and save to a file.
41
39
42
40
---
@@ -48,10 +46,8 @@ The core design philosophy of PICA is the separation of concerns, implemented th
@@ -206,28 +179,42 @@ Alternatively, you can use the `CITATION.cff` file in the root of the repository
206
179
207
180
---
208
181
209
-
## 🛠️ Extending PICA: Adding a New Module
182
+
## 📚 Resources & Documentation
210
183
211
-
The modular architecture makes it straightforward to add support for new instruments or measurement types. Here is a simplified example of the required structure.
184
+
**Comprehensive Documentation:**
185
+
For detailed setup instructions, hardware interfacing guides, and troubleshooting, please refer to the **[PICA User Manual](docs/User_Manual.md)** located in the `docs/` directory.
212
186
213
-
1. **Create a Backend Class:** Encapsulate all direct instrument communication (`PyVISA` commands) in a dedicated class.
214
-
2. **Create a GUI GUI:** Build a `Tkinter` GUI to gather user parameters and display live data. This GUI will instantiate and control the backend.
215
-
3. **Integrate with the Launcher:** Add a button and the script path to `PICA_v6.py` to make your new module accessible from the main dashboard.
187
+
**Instrument Manuals:**
188
+
A collection of official instrument manuals is provided within the `assets/Manuals/` directory for technical reference.
216
189
217
190
---
218
191
219
-
## Resources & Documentation
192
+
## How to Cite
220
193
221
-
#### Included Manuals
222
-
A collection of official instrument manuals and software library documentation is provided within the `/assets/Manuals/` directory. These documents serve as valuable technical references.
194
+
If you use this software in your research, please cite it. This helps to credit the work involved in creating and maintaining this resource.
223
195
224
-
#### Instrument Interfacing Guide
225
-
For a quick reference on instrument addresses, see the `GPIB_Address_Guide.md` file.
196
+
#### BibTeX Entry
226
197
227
-
---
198
+
```bibtex
199
+
@software{Deshmukh_PICA_2023,
200
+
author = {Deshmukh, Prathamesh Keshao and Mukherjee, Sudip},
201
+
title = {{PICA: Python-based Instrument Control and Automation Software Suite}},
- **Affiliation:** *[UGC-DAE Consortium for Scientific Research, Mumbai Centre](https://www.csr.res.in/Mumbai_Centre)*
250
237
251
238
#### Funding
239
+
252
240
Financial support for this work was provided under SERB-CRG project grant No. CRG/2022/005676 from the Anusandhan National Research Foundation (ANRF), a statutory body of the Department of Science & Technology (DST), Government of India.
0 commit comments