Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • To test your changes, you can run the MPS GUI
    • Check out the MPSGui project
    • Add the MPSConfig project to MPSGui's build path
    • Remove the library mpsconfig.jar from MPSGui's build path
    • Run MPS GUI inside Eclipse

Development

Design

...

Classes and Functionalities

edu.stanford.slac.mps.epics.ControlSystem
  • Monitors current Macro state numbers from IOC:BSY0:MP01:TTBLST.VALA
  • Bypasses faults to a value for a time duration
  • bypassed faults and end times
  • Given a fault name, gets current state, type, and timestamp
    of the fault
  • Given a PV, gets beam rate names (MPS and actual)
  • Translates between EPICS and Java time
edu.stanford.slac.mps.jdbc.JDBCMonitor
  • Loads all data from Config/Logic DB
    • JDBC url for Config DB URL prefix: jdbc:sqlite:/usr/local/lcls/epics/iocTop/MachineProtection/mpsConfiguration/database/current_version/mpsdb.sqlite3 current_version is stored in PV IOC:BSY0:MP01:DBVERSJDBC url for
    • Logic DB URL prefix: jdbc:sqlite:/usr/local/lcls/epics/iocTop/MachineProtection/mpsConfiguration/database/current_version/mpsdb.sqlite3 algorithm/
  • Checks periodically for new versions
    • Current Config DB version is stored in IOC:BSY0:MP01:DBVERS
    • Current Logic DB current_ version is stored in PV IOC:BSY0:MP01:ALGRNAME
    • Checks periodically for new versions
  • Monitors current Macro states
  • Bypasses faults to a value for a time duration
  • Monitors bypassed faults and end times
  • Given a fault name, gets current state, type, and timestamp
    of the fault
  • Gets beam rates (MPS and actual)
  • Translates between EPICS and Java time

...

edu.stanford.slac.mps.jdbc.config.ConfigDB
  • Singleton
  • Serves as a facade to information about faults
edu.stanford.slac.mps.jdbc.logic.LogicDB
  • Singleton
  • Serves as a facade to information about Macros (and states), ignoring Macros, current MacroStates

Release with Eclipse

  • Add a note in $MPSGUI_ROOT/RELEASE_NOTES
    • Increment the tag version accordingly
  • Commit to CVS
  • Tag with mpsconfig-R#-#-#
  • Check out the tagged version into production
    Code Block
    cd $PHYSICS_TOP/release
    cvs co -r mpsconfig-R#-#-# -d mpsconfig-R#-#-# physics/mps/mpsconfig
    
  • Select File => New Java project => Create project from existing source
  • Select $PHYSICS_TOP/release/mpsconfig-R#-#-#
  • Name the project mpsconfig-R#-#-#
  • Press "Finish"
  • Right-click on the new project mpsconfig-R#-#-# => Export...
  • Select Java => JAR file
  • Check mpsconfig-R#-#-# in "Resources to export"
  • Check "Export generated class files and resources"
  • As the export destination, type (and/or select)
    Code Block
    $PHYSICS_TOP/release/mpsconfig-R#-#-#/jar/mpsconfig.jar
    
  • Press "Finish"
  • Move the symbolic link
    Code Block
    cd $PHYSICS_TOP/
    rm -rf mpsconfig; ln -s release/mpsconfig-R#-#-# mpsconfig
    
  • Launch MPS GUI from lclshome
    • MPS Global => MPS GUI...
    • MPS Global => MPS CUD...