Pipe And Hub Information
A "hub" is an ASCOM tool for allowing multiple programs to
connect to ASCOM drivers that would otherwise only work with a single program.
The "Hub" hub is the simplest such program. Hub goes to a lot of trouble
to do nothing but pass through commands exactly as they are given. It just
mediates access for multiple programs.
Pipe is also a hub. It can be used instead of the
"Hub" hub as an ASCOM linkage debugger. Pipe is a hub that can be
inserted in between any two or more ASCOM components so that the traffic between these
components can be monitored. Pipe goes to a lot of trouble to do nothing but
log traffic and pass through commands exactly as they are given.
Simple Usage
- Select "Hub" or "Pipe" from the client chooser
- From the Hub or Pipe setup dialog choose Device(s)
- Close Hub or Pipe setup dialog and connect to devices via the
client programs
What Hub does:
- It is an ASCOM "hub" for telescope, dome, and focuser
connections in any combination.
What Hub does not do:
- Hub has no "handset" like GUI window. It is
just a hub. For a handset GUI use POTH.
What Pipe does:
- It is an ASCOM "hub" for telescope, dome, and focuser
connections in any combination.
- Logs ASCOM commands and responses to a window and a
file for diagnostic evaluation.
- Errors raised from the driver (whatever Pipe is
connected to) will also be displayed and logged, before being passed up to
the client (whatever has connected to Pipe).
What neither Pipe nor Hub do:
- They do not precondition commands as they pass
through.
- They do not test for and correct error
conditions.
- They do no dome slaving or focuser temperature
compensation
More complex things to do with Pipe
- There are control checkboxes on the main window for
selecting sets of interesting commands. They can be toggled at any
time.
- There are [Connect] buttons for manually connecting
to the desired drivers (as specified in the set-up dialog), or the client
software
can be left to do all connect operations.
- The logged data shows up in a scrolling area of the
main Pipe window.
- There is a [Mark] button for inserting a “Mark” into
the log for later discovery.
- There is a log file kept in the directory that
Pipe.exe is found. By default, this is “C:\Program Files\Common
Files\ASCOM\Telescope”. Each time Pipe is run it copies Pipe.log to Pipe.bak
and restarts Pipe.log at zero length. While the displayed log in the main
window throws away the older entries as it goes, the log file contains the
entire session.
- There is a [Clear] button that will zero the current
log file and clear the logging window. Clear will not copy the existing log
to Pipe.bak.
- There is an Enable/Disable button that allows
temporary suspension of logging. ASCOM commands will still be passing
through.
- If the [Advanced] button in the setup dialog is used to expose the advanced
area, and a given driver is connected, then the capabilities area will be filled
out for review. This will require Pipe to generate and send a series of requests
to the drivers. None of these values can be changed.
Programmers Information
- Errors raised from the driver (whatever Hub or Pipe
is connected to) will also be passed up to the client (whatever is connected to Hub
or Pipe). Pipe will also log the errors.
- Both support early and late binding from clients.
For late bindings, the "Name" property will return "Pipe->(driver name)".
For early bindings, the "Name" property will return "I_Pipe->(driver name)".
The "I" feature will likely be dropped after sufficient early binding
testing by the ASCOM comunity.
- Both support early and late binding to drivers.
Early binding will be attempted first, classic ASCOM late binding will
attempted as fall back. Late binding can be forced for test purposes
by putting a registry entry into Hub or Pipe's ASCOM registry area as "ForceLate".
ForceLate would be a string set to "True".