Skip to content

fenning-research-group/parasol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PARASOL

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.

Running PARASOL

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>

Folder/File Structure

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

Editing & Adding Functionaility (Front End)

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

Editing & Adding Functionaility (Back End)

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6