Interfacing with other programs


To use Guide, a planetarium program by Project Pluto (Bill Gray):

1. Simply select 'guide.bat' option from scope.exe's menu. Make sure that the 'wguide.exe' program is in c:\guide.
Guide will show you where the scope is pointing, and upon exiting Guide, Guide's last coordinates will be displayed in the Input equatorial fields. Select move to input, or reset to input.

2. To run concurrently with Guide6.exe, the Win95 version of Guide, configure Guide6 by going to Settings, then Scope Control. Select an unused comm port, and pick 'altaz'.  You will see a new drop down menu option appear, "Scope Pad".  Select it.  Be careful not to move the mouse as the cursor's position is used to send coordinates.  To send coordinates from guide6.exe to scope.exe, select 'slew scope' on the scope pad menu.  To receive coordinates into Guide6.exe from scope.exe, select 'slew guide'.  To send coordinates from scope.exe to guide6.exe, use the hotkey '8', to receive coordinates into scope.exe from guide6.exe, use the hotkey '7'.
 

Communicating With Other Programs

There are several methods to communicate with other astronomical software such as planetarium and control programs.

- via explicitedly calling the DOS version of Guide
- via the serial/modem port using lx200 protocol commands
- via agreed upon slew files
- via the IACA

Calling the DOS version of Guide via the menu option 'guide.bat' or the hotkey '`' (left apostrophe), does the following:
1. rewrites the startup.mar file that Guide uses to set its startup position
2. exits to DOS and calls guide.bat, which launches Guide
3. upon Guide's exit, Scope.exe reads startup.mar to ascertain the last coordinates that Guide used
4. these coordinates are placed in the input equatorial fields

Using the serial port to read and write lx200 protocol commands:
This is available if the lx200 serial port is set to 1 or 2 in the config.dat file.
Realtime display of lx200 commands processed and the character buffer is available if the menu option display LX200 is turned on.
Use a serial full null modem cable adapter to connect between the two serial ports.
Set the ports to 9600 baud, 8 databits, 1 stop bit, no parity.
It may be possible to use the modem. See http://www.ghg.net/cshaw/modem.htm for details.

Scope.exe can also communicate via two agreed upon files, using menu selections read slew and write slew or hotkeys '7' and '8'.
These files are located typically in the controlling planetarium program subdirectory, pointed to by the config.dat's InterfacePath variable, ie, c:\guide\
The file that is used to read in coordinates from the controlling planetarium program is called slew.dat and has two lines with the following format:
 R     <Ra degrees>
 D     <Dec degrees>
The file that is used to write coordinates to the controlling planetarium program is called slew_out.dat and has one line with the following format:
R          <Ra degrees>     <Dec degrees>
Any controlling program can thus add a little software to communicate with Scope.exe in this manner.

Finally, the IACA can be used under DOS multitasking programs such as Windows 3.x:
The Intra-Application Communication Area is a 16 byte area starting at 0040:00F0 that DOS sets aside to allow programs to communicate with each other; this area is used to exchange coordinates between the scope control program and graphically oriented CD-ROM planetarium programs such as Guide; the planetarium program's coordinates serve as input to the scope,
the scope program tells the planetarium program where the scope is pointing; coordinates are assumed to be precessed to the current date; each program, at startup, sets all coordinates initially to zero: this way, when non-zero coordinates are found, it can be assumed that the other program put them there; ie,
long iaca_ra = *(long far*) (0x4f0);
long iaca_dec = *(long far*) (0x4f4);
long scope_ra = *(long far*) (0x4f8);
long scope_dec = *(long far*) (0x4fc);
double scope_ra_in_decimal_hours = (double) scope_ra / 1.e+7;
double scope_dec_in_decimal_degrees = (double) scope_dec / 1.e+7;