Top Level Command Processor shaneao

ShaneAO module provides a simple rtc command set at the top level for the operator to use during on-sky operations. ShaneAO runs on the real-time computer. Commands to it are typed on a terminal remotely connected to the real time computer.

Start up the rtc from the home directory on the rtc computer:

shaneao

See also RTC Status Display

Commands to shaneao are typed at the terminal. The command names are exposed at the top level, so there is no need to type the leading shaneao. string. Python demands however that you type the trailing () string on commands, even if there are no arguments.

shaneao.alpha(al=None)

set alpha, the filter time constant. alpha must be between 0 and 1, where 0 means immediate response, i.e. a time constant of one step and 1 means no response, i.e. a time constant of infinity. The filter behavior is: v = alpha*v + (1-alpha)*u

shaneao.bleed(b=None, w='all')

set or request the integrator bleed values bleed(b,’tweeter’) sets the tweeter integrator bleeds to b. b can be a scalar, to set all the bleeds to the same value, or a list. Similarly for bleed(b,’woofer’) and bleed(b,’all’). The default is ‘all’.

Querys are of the form bleed(‘tweeter’), bleed(‘woofer’), bleed(‘all’), or bleed(), which the same as bleed(‘all’)

shaneao.camstart()

Start the camera

shaneao.camstop()

Stop the camera

shaneao.close()

close the AO loop

shaneao.config_query()

List the configuration of the supervisory software

shaneao.crib(item=None)

crib is a quick help listing: crib() lists the whole list of ShaneAO commands or crib(item) to get help on a particular item

shaneao.dark(z=None)

Take a camera dark

dark() averages the wfs camera readings for one second and sets the background to that averabe dark(0) sets the camera background to zero

shaneao.dmesg()

Retrieve the last DPIO2 related message from the kernel message log. If it indicates a kernel memory problem, turn off the mems.

shaneao.estop()

emergency stop stop the control loop, turn off the mems and woofer thread and stop the heartbeat, which cuts power to the mems controller. This is a quick shutdwon procedure that is designed to protect the MEMS in case something goes wrong. Use:

shaneao.heartbeat_up()
to bring back the heartbeat. Or, restart the wfs camera with::
camstart()
shaneao.freeze()

freeze the DMs in their present positions

shaneao.gain(g=None, wg=None)

set or request the gain where g is the gain (I recommend this be positive, for stability reasons) NOTE: if the loop is open, g > 0 will close the loop!

shaneao.mems(power=None)

Set or querey the MEMS (tweeter) power state

shaneao.mode(aMode=None)

sets or requests the mode no arg returns the current mode arg = ‘?’ returns the list of valid modes

shaneao.offload(arg=None, interval=None, threshold=None)

begin offloading the excess woofer tip and tilt to the telescope

shaneao.open()

open the AO loop

shaneao.peek(item=None)

Peek(item) Peek at a specific variable in the real-time c-code Peek() prints a list of valid items

shaneao.rate(r=None)

set or get the wavefront sensor frame rate where r = a valid frame rate type rate(0) to see a list of valid rates

shaneao.refcent(z=None)

Take the reference centroids

refcent() averages the present centroids for one second and sets the refcents to that average refcent(0) sets the reference centoids to zero refcent(filename) loads new refcent from a file refcent(data) uses data as the new ref cents

shaneao.reset(restart=False)

do this to reset the camera if it hangs

shaneao.status()

print a brief report of the state of the system

shaneao.test()

initialize the regression tests. After initializing, crib(test) again to get a list of available regression tests

shaneao.ttcamstart()

Start the tt camera

shaneao.ttcamstop()

Stop the camera

shaneao.ttdark(z=None)

Take a camera dark

dark() averages the wfs camera readings for one second and sets the background to that averabe dark(0) sets the camera background to zero

shaneao.ttrate(r=None)

set or get the Tip Tilt sensor frame rate where r = a valid frame rate type rate(0) to see a list of valid rates

shaneao.ttreset(restart=False)

do this to reset the tt camera if it hangs

shaneao.tweeter_poke(pattern=None, n=None, scale=1.0)

will poke a given pattern on the tweeter. This function puts values directly into the rtc2 <rtc2> integrator, (so bleed settings and loop gain matter)

tweeter_poke() lists the available patterns. tweeter_poke(‘mode’,n) pokes a pre-calculated mode. the third argument, scale, must be between -1 and +1, and defaults to +1

shaneao.whereis(filename)

find out where a file is in the sys.path (the path for module imports)

shaneao.woof(woof_state=None)

turn the woofer on or off. This begins (or stops) a background process that regularly sends commands to the woofer.

shaneao.woofer_poke(pattern=None, n=None, scale=1.0)

will poke a given pattern on the woofer. This function puts values directly into the rtc2 <rtc2> integrator, (so bleed settings and loop gain matter)

woofer_poke() lists the available patterns. woofer_poke(‘mode’,n) pokes a pre-calculated mode. the third argument, scale, must be between -1 and +1, and defaults to +1

shaneao.wrate(woofer_update_rate=None)

set the woofer update rate, in Hz. currently, the rate can be no more than 200 Hz

shaneao.zero()

send the tweeter DM to a zero-point shape (defined by a0) The loop is openned