Previous Page Contents Next Page

SOME AGONIZING DETAILS

The Keyboard

To do its job, Qed communicates with the user through its display, and accepts commands from the keyboard. There are a lot of commands it can respond to, so there are a lot of different keystrokes (and keystroke combinations) to invoke them. Qed has 5 help screens to display brief descriptions of these commands as reminders, but you really do need to memorize a lot of them to reduce data efficiently. The commands are not assigned to random keys: there is almost always some mnemonic to help you remember them (e.g. '*' to multiply, 'd' to correct for detector deadtime, 'g' to mark a bad data point as garbage, '~' to smooth a light curve, etc.)

Both Q9 and Qed share the same display and many of the same keystrokes, so if you have used Q9 you already know how to manipulate the display screens. There are three of them: the Set Mode display, which shows the parameters put in by the observer when the data were taken (identical with Q9), the Run Mode (graphical) display that shows the light curves (mostly the same as Q9), and a text mode display showing the encoded reduction operations already performed.

Both Q9 and Qed also share the same philosophy for interacting with the user: respectful distrust. For any parameter input value, both programs check to see if it lies within a range the program is prepared to deal with, and both refuse the input if it does not. Limiting the universe of discourse in this way leads to programs that rarely crash, compared with others both more well known and more expensive.

The Display Screen

The Run Mode display is mostly controlled by non-printing keys on the keyboard: the arrow keys and keypad keys, in consort with the Ctrl, Alt and Shift keys. The display in Qed, like the one in Q9, is "live" -- that is, it is continually refreshed whenever the programs are not engaged in doing something else, so any changes appear immediately. This burns up a lot of CPU time, which is OK if Qed is the only program in action. MSDOS says it must be, but a different display strategy might be appropriate if Qed is ever ported to a multitasking operating system, where it would have to be a good neighbor.

The two light curves can be scrolled up or down with the up or down arrow keys, scrolling while you hold the arrow key down and stopping when you let it up. You can double-click one of them to get a continuous scroll, and stop the action with another click on either one. If the scrolling is down, the action will stop when the scroll offset goes to zero, just to show you where zero is. The curves can be magnified and demagnified in the Y direction by powers of 2, using the PgUp and PgDn keys, together or separately. The left and right arrow keys scroll the light curves left or right until you let up on the key, or continuously by holding down the Alt key when you hit one of them. This scrolling stops when the last data point in either direction encounters the cursor, and a hit on either key will stop the scrolling as well. The curves can be compressed or expanded in the X direction, together but NOT separately. They are time-locked to each other for obvious reasons.

One data point out of the many displayed is selected with the graphics cursor, a short line above the datum that can be moved around with respect to the light curve, and can be switched between the two curves with the Ins key. The top text display line shows which curve it is on (Crv A or Crv B) and which data channel is being displayed in that curve. You can put the contents of any one of the four data buffers into either of the two display curves, as needed. For example, if you address Crv B by holding down the Alt key, then press the '3' key, the contents of Ch3 (buffer 3) will show up. These are the sky measurements for Ch1, interpolated if you have executed the 'p' operation on Ch1. The cursor is put on any light curve selected this way, so Shift-1 will show Ch1 in Crv A, and put the cursor on it.

On startup, the target star data (Ch1) is put into Crv A, and the monitor star (Ch2) into Crv B. For most of the display operations, holding down the Shift key limits the requested action to Crv A, while the Alt key addresses Crv B. With neither Shift or Alt depressed, the action is applied to both curves.

The top display line also shows the datum number the cursor is selecting, followed by the number of photon counts for it (changed to counts/sec and back by Ctrl-C). Both values change as you move the cursor, which sticks to the light curve in the Y direction. The amount of compression or expansion in the X direction is shown next, ->16<- in the previous run.

On startup, Qed autoscales the data in the X direction, compressing it by whatever amount is needed to show the whole curve. There are 256 horizontal pixels allotted to each curve, so if there are more than 256 data points, some pixel-sharing is required. The compression factor shown is the number of data points stacked up in one pixel column. The cursor only designates one of them, however. You can expand the display to unstack the pixels (the 'x' command toggles back and forth between compressed and uncompressed, while Shift along with the Left and Right arrow keys change the compression by factors of 2). The data points are expanded or contracted around the datum the cursor is pointing to. In Q9, the cursor is parked at the right end of the screen to show the most recently acquired data point, so the '->' key, along with Shift, compresses the data, and the '<-' key uncompresses it. This seems backwards if the cursor is on the left of the screen, as it often is in Qed. An alternative is avaliable: the 'Z' key compresses the curve by 2, and 'Ctrl-Z' uncompresses it by 2. If you think of 'Z' as a crumpled horizontal line, it even has some mnemonic value :-).

The rightmost entry in the top display line is the clock time that corresponds to the data point selected with the cursor, the time at which that datum was taken. The Ctrl-T keystroke changes it to Elapsed Time (from the start of the run) and back again.

The second display line shows the encoded version of the keyboard commands as you execute them, so you can see what Qed just did to you. This is actually just the last of the lines in the oplist; the F5 key shows you the bottom page of the list. When you enter a parameter before one of the commands (like '5b' in the example above) the display of the last executed operation is replaced by the parameter characters as you enter them. All of the parameters are numeric. The only restriction on them is that a numeric character must precede a decimal point, if you use one. That means you must enter "0.32", for example, not just ".32". If you enter a comment (to record a comment in the oplist) the entered characters show up on the second line. You can enter a comment when you are displaying the oplist, too, and watch it go in. Comments are most useful when you explain why you did something; a future user can tell what you did from the recorded operations, but the reasoning behind an odd operation is often mysterious.

The bottom two display lines come alive to show text messages from Qed. The chattiness is adjustable: a verbosity threshold of 0 lets only error messages through, a level of 1 includes warning messages, and a level of 2 displays all the stuff Qed thinks you might want to know about. You can establish a customized startup value for this threshold, you can change it while Qed is running, or you can set the level to 2 for one command only, by preceding the command letter with 'v'. You can also query Qed about the parameters it is using internally, and the results show up on the bottom lines.

All the keystrokes connected with display control can be shown by hitting the F1 key (in Run mode), so you don't have to memorize them all at once. F1 again gets you back to the graphics screen. F2 brings up a screen showing the commands used in marking (and unmarking) the data, and reminds you how to highlight data points marked in different ways by making them blink. The F3 key evokes a screen describing all of the reduction operations available to you, while F4 will show you the input and output operations Qed is capable of, along with the few editing operations available when you are examining the list of recorded operations (F5).

You will notice that the light curves seem a bit ragged. This is a result of pixelization -- the screen has a resolution of 640 x 200, so the individual pixel columns do not blend together in X (actually a good thing, since we want to examine individual data points) and show staircasing in the Y direction (not such a good thing). It's the price paid for portability: the display software was written to run on the original IBM PC, with an 8088 (8 bit) CPU running at a whopping 4.75 MHz, and the original color graphics adaptor which, despite its name, could only do black-and-white graphics at this huge(!) resolution. It still runs unchanged on the latest Intel PCs, a lot faster but with the same display resolution. It will even run under Microsoft Windows. The crude graphics lettering is another consequence of this history. It's not very pretty, but it still works. Think of it as embedded history.


Previous Page Contents Next Page
Visual frame for the bottom of the page