Proceedings Article | 13 December 2002
KEYWORDS: Telescopes, Control systems, Human-machine interfaces, Java, Observatories, Telecommunications, Domes, Astronomical telescopes, Computing systems, Computer programming
We developed the telescope control software for the 188cm telescope of Okayama Astrophysical Observatory (OAO) based on Java technology. Basically, the software consists of two processes running on separate Java virtual machines; one of which is the “Command Dispatcher (CD)” and the other is the “User Interface (UI)”. Among the two, CD is the main engine/server of the telescope control, whereas UI is just a client. The “standard” UI we provide is a graphical user interface written in Java/Swing. CD communicates with the local control units (LCUs) of the telescope through RS232C. CD is a Java multi-thread program, in which a number of threads run simultaneously. The threads running in CD are the follows: UNIX socket servers for external communications, socket opener for on-demand open/close of a socket port, socket client manager, auto-guider and dome watcher, internal command dispatcher, status manager, status collector, RS232C writer and reader, logger, and control units. The above “control units” are software models (“objects”) of the telescope system. We introduced four control units- “Telescope”, “Dome”, “Weather-Monitor”, and “Pointing”- for telescope control. The first three units are simple software models of the real-worlds devices. The last one, “Pointing”, is a unit which abstracts pointing procedure of the telescope. CD and UI communicate with each other using UNIX socket. The command protocol of this communication is fairly simple, and observation instruments, auto guider, or additional UI for remote observation are also able to communicate with CD through socket using this protocol. CD opens and closes socket ports for communication on demand according to the request of client process (UI, instruments etc.), so that any clients can be connected to CD dynamically.