slaclab / pysmurf

Other
2 stars 10 forks source link

shawnhammer overhaul #85

Open swh76 opened 5 years ago

swh76 commented 5 years ago

shawnhammer has (embarrassingly) become the primary method for rebooting and configuring SMuRF systems. I vote we make the following improvements to make it more usable:

slacrherbst commented 5 years ago

I think it should not be a script at all. A while back I had proposed a rogue instance to interface with the impi and other general shelf functions. The shamhammer functionality should be included as a routine in this rogue instance. This routine could then be initiated through an external command.

jlashner commented 4 years ago

Just for the record, here's my solution to this. jackhammer hammer implements everything that shawnhammer does in python, and brings up the OCS/smurf-streamer dockers. System and startup configuration info is stored in a yaml file "sys_config.yaml" located in the ocs-site-config directory. There are also other commands you can run such as jackhammer soft_reset which will just reset software without rebooting the smurf-slots, or jackhammer pysmurf <slot> which will place you in an ipython session with pysmurf instantiated. It would still be great to add validation steps to make sure the system has booted properly. lmk if you have any feedback, and if you think it's useful for non-simons experiments maybe we can move it to the pysmurf directory.

slacrherbst commented 4 years ago

Is there any chance we can attempt to overlap the configurarions on the jackhammer script and the core rogue/pysmurf system. This was we only have to set some variables in a single config file instead of two places?

jlashner commented 4 years ago

Sure, the sys_config.yaml file replaces the shawn_startup_config file and adds some additional info, like the location of the pysmurf config files. I'm hesitant to merge the sys_config and the pysmurf config files, since I'd like sys_config to be small and human readable and easy to compare, and I don't really want to put all of the rogue registers in there. What did you have in mind?

slacrherbst commented 4 years ago

We definitly could keep it a seeperate file and stie specific, but maybe change the structure a bit to match the equivelennt fields in th rogue/pysmurf configuration. And then we can just load that file as part of the rogue/pysmurf configuration process. I will take a closer look and suggest a format later today.