PARAllel outdoor testing of SOLar modules.
parasol schedules periodic JV scans for multiple modules. Modules can be added and removed from the scheduler as necessary.
There are two main options for running a script:
1. Users may enter the python environment where PARASOL was installed and type:
from parasol.ui.RUN_UI import RUNNER
RUNNER()
2. Users may utilize the .bat files stored in the runtimes folder to launch the UIs by simply double clicking.
However, the code requires various information to run the UI's that are computer specific.
The basic code is:
call <path to activate Anaconda> <Anacoda environment name>
start <python (terminal) or pythonw (no terminal)> <Path to RUNNER or GRAPHER .pyw file>
parasol:
parasol:__init__.py --> initializes package
parasol:characterization.py --> controlls all characterization
parasol:controller.py --> interacts with hardware python files to que and run tasks
parasol:hardwareconstants.yaml --> holds constants & user preferences
parasol:analysis:
parasol:analysis:grapher.py --> all graphing functions
parasol:anaysis:analysis.py --> all analysis functions
parasol:drivers_and_diagrams:
parasol:drivers_and_diagrams:ET_5420.exe --> software (including drivers) installer for ET5420
parasol:drivers_and_diagrams:Labjack_Circut.png --> circut diagrams for environmental monitoring
parasol:drivers_and_diagrams:LabJack_U6PRO.exe --> software (including drivers) installer for LabJack U6
parasol:hardware:
parasol:hardware:easttester.py --> EastTester 5420 hardware interaction code
parasol.hardware:labjack.py --> Labjack U6 Pro hardware interaction code
parasol:hardware:port_finder.py --> software to find ports of hardware for consistent connectioins
parasol:hardware:relay.py --> Solarc relay hardware interaction code
parasol.hardware:scanner.py --> Yokogawa GS610 hardware interaction code
parasol:notebook:
parasol:notebook:graping_notebook.py --> barebones notebook template for further analysis
parasol:runtimes:
parasol:runtimes:GRAPHER_NOTERMINAL.bat --> launches the graph UI in given anaconda environment without terminal
parasol:runtimes:GRAPHER_TERMINAL.bat --> launches the graph UI in given anaconda environment with terminal
parasol:runtimes:RUNNER_NOTERMINAL.bat --> launches the run UI in given anaconda environment without terminal
parasol:runtimes:RUNNER_TERMINAL.bat --> launches the run UI in given anaconda environment with terminal
parasol:ui:
parasol:ui:graph_icon.png --> icon for Graph UI
parasol:ui:GRAPH_UI.py --> python file to read and talk to GRAPH_UI.ui file
parasol:ui:GRAPH_UI.ui --> .ui file to build the Graph UI
parasol:ui:GRAPHER.pyw --> pythonw file to launch Graph UI wihtout terminal
parasol:ui:run_icon.png --> icon for Run UI
parasol:ui:RUN_UI.py --> python file to read and talk to RUN_UI.ui file
parasol:ui:RUN_UI.ui --> .ui file generated by PyQt5 designer
parasol:ui:RUNNER.pyw --> pythonw file to launch Run UI wihtout terminal
The majority of code in the front end of this is database is designed to stay the same besides:
a. characterization.py --> add, remove, or change any characterization
b. hardwareconstants.py --> alter the root directory, any hardware constants, or port numbers
characterization.py has several main functions
init --> inializes the functions. In particular, two dictionaries need to be initialized:
self.jv_options --> houses jv scan options {if # : "Option Name"}
self.mpp_options --> houses mpp scan options {if # : "Option Name"}
scan_jv --> filled with if mode == #, then do option scans
track_mpp --> filled with if mode == #, then do option scans
calc_last_vmp --> calculates the last vmp using fwd/rev avgs across string or last value set by mpp
monitor_env --> monitors the enviornment using LabJack code
To add a function you must:
a. add the function using a if mode == # statement in the desired file
b. add an entry to the dictionary # : Desired Name
In contrast, the back end of this device aims only to provide the tools to:
a. Do basic analysis to extract scalar variables from the test
b. Provide a way to quickly graph data
More indepth analysis should be done on files. The 'notebook' folder contents are intended to assist in this workflow.