cmtest is a Cshell Motor Test program. This lets you exercise the individual
axis and io bits of the PC 38 card.

Here are the DC motors commands:

   DIT [off|on]   - Moves the CCD/Dichroic assembly.

   DIMIRROR [off|on]   - Moves the Direct Imaging mirror.

   LAMP [ off | ar | kr | xe | cont ] - Turn on the calibration lamps.

   LMIRROR [ off | on ] - Move the CalBox or Lamp mirror.

Here are the stepper motor commands:

   SET [ FilterA | FilterB | Shutter | Slit | Grating ] - Sets up the
              internal parameters to one of these motors.

   INIT - Initializes the stepper motor wheel by searching for the limit.

   MOVETO num - Move to the step position indicated by num.

   QUIT  - exits the application.


Entering anything which do not match the above commands will be sent directly
to the PC-38 board. So you may enter PC-38 commands directly.


GRATING stay within 100,000 to 400,000 (of encoder) 

   au st lf hh vl5000; lp0;   // Axis U, Stop, Limits ON, HomeHigh, Vel=5000, loadpos

   au rp                      // Axis U, Report position

   au mr500; go               // Axis U, Move Relative GO.

   au ma0; go                  // Axis U, Move Absolute GO.
   au ma100000; go            // Axis U, Move Absolute GO.

   au st                      // Axus U, Sop


FILTER A size=14000 axis=r homelow  

init:   ar lf pa st hl vl400;

home:   ar ic hm0; id rm1400;

query:  ar qa                    // query axis       [P/N] [D/N] [L/N] [H/N]
        ar ic                    // interupt clear
        ar rp                    // report position.

        ar ic km  id     // home and kill. At 14000s / 200 s/sec = 70 sec for 1 rev.

move commands:
        ar mr400;  ic go id
        ar mr-400;  ic go id
        ar mr1000;  ic go id


FILTER B size=14000 axis=s homelow  

init:   as lf pa st hl vl400;

home:   as ic hm0; id rm1400;

query:  as qa                    // query axis       [P/N] [D/N] [L/N] [H/N]
        as ic                    // interupt clear
        as rp                    // report position.

        as ic km  id     // home and kill. At 14000s / 400 s/sec = 35 sec for 1 rev.

move commands:
        as mr400;  ic go id
        as mr-400;  ic go id

SLIT size=56000 axis=t homelow  

init:   at lf pa st hl vl600;

home:   at ic hm0; id rm56000;

query:  at qa                    // query axis       [P/N] [D/N] [L/N] [H/N]
        at ic                    // interupt clear
        at rp                    // report position.

        at ic km  id     // home and kill. At 56000s / 600 s/sec = 93 sec for 1 rev.

move commands:
        at mr400;  ic go id
        at mr-400; ic go id


XUI 
"knock knock"
gratingpos #num     #num = 100000 to 400000
filterpos A #num B #num


XUI