David's Astronomy Pages
|
Notes (S1388) |
Notes Main |
Home Page |
Notes (S1390) |
Main aims
Equipment & Software
Highlights
Summary Plots & Logs
Observing Plan ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Observing Result |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dome & Scope Slewing Performance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Slew/Centering Performance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Guiding Performance | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sky Conditions (Locate Frames) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Night Sky Summary Plot Top axis: Sky Brightness at Zenith (in ADU/s) Lefthand axis: Local Time (hh LT). Righthand axis: Sun Altitude (degs) Note: The NorthCam Star Count line is unreliable and should be ignored (The AstroNorthCam 'Find' Star method is producing many false positives from clouds) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Actual Weather vs Pre-Session Weather Forecast | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Session Event Log | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Session Alerts & Alarms | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Back to Top
Scope Slew Check Info Last Slew 6.26° (vs5.9° planned)
Scope Slew Check Info Last Slew 6.26° (vs 5.9° planned)
- Add a button to view the page link described by current Target's
Bottom Link
- Add a couple of readonly fields show TNS ID in
larger 16px font (making it easiest to see the key name)
-
Write Target Title, Title Notes, Gaia/TNS Links, Gallery Links to a
single cell instead of multiple cells
- Write Image Title,
Images Notes, Magnitude Notes, Italic Note to a single cells instead of
multiple cells Public
ObsComm As UdpNode ObsComm = New
UdpNode(5000, "AstroMain")
AddHandler
ObsComm.MessageReceived, AddressOf HandleObsCommMessage
ObsComm.StartListening()ObsComm.SendMessage("Hello World")
Public Sub HandleObsCommMessage(msg
As UdpMessage)
End Sub RemoteAddress,
senderComputer, senderApp, TimeStamp, MessageType, Message/Payload
Implemented in AstroCommon and AstroMain 3.79.13Back to Top Issue, Back to Top
Back to Top Issue, Back to Top
Introduction
ObsComm is a new Communication System for the Observatory based on the UDP
protocol..
The need for a communication system for adhoc and custom communication across the observatory and house computers has been recognised for some time. This will operate in addition to existing IP/TCP communication of specific record between computers.
Based on discussions with Copilot the UDP protocol has been selected for the communication system, following which code was developed again with CoPilot to put into a shared UpbComms.vb file/module with class definitions for UdpBroadcaster, UdpListener, UdpNode and UdpMessage. UdpNode is a node that comprises both a listener and a broadcaster to hide the underlying mechanism and allow programs to work with a single object reference (ObsComm).
AstroMain is the first program setup to use the new UDP system, but other programs in the AstroSuite will be set up in due course.
The basic
setup is as follow. One new declaration is placed in the
program's globals.vb or general.vb module : Public
ObsComm As UdpNode
ObsComms is then set up from the
program's Load() routine : ObsComm = New
UdpNode(5000, "AstroMain")
AddHandler
ObsComm.MessageReceived, AddressOf HandleObsCommMessage
ObsComm.StartListening()
Messages are broadcast to the
network from anywhere in the program using code like :
ObsComm.SendMessage("Hello World")
A routine
'HandleObsCommMessage()' is added to the program to handle
received messages. The contents of the handler will be different
in each program according to the communication plan which is still being
developed.
Public Sub HandleObsCommMessage(msg
As UdpMessage)
End Sub
UdpMessage currently
has 6 string fields
RemoteAddress,
senderComputer, senderApp, TimeStamp, MessageType, Message/Payload Implemented in AstroCommon and AstroMain 3.79.13 on
2025-01-04
AstroMain's 'HandleObsCommMessage()' routine is
placed within the Manager module, but outside of the ObsManager class object
Analysis
The precise message types & payloads to be used need to developed
and the requirements of program specific handlers need to be defined. - What is UDP used for in the
observatory ?
- What fields should every message contain ?
-
What message types do I need ?
- What does each app broadcast
?
- What does each app listen for ?
- What timestamp
format ?
- What payload format ?
- Is a UdpMessage
class required?
- Is protocol versioning required ?
What is UDP used for in the observatory ?
UDP is
intended to provide general and custom communication between the different
AstroSuite programs and computers running within the Observatory/House
Network.
- The new system will eventually replace the existing
use of flag files and the like
- The new system will not replace
the existing use of regular TCP/IP communication of data records (ObsEnv,
CloudSensor.WeatherData)
- Optionally the new UDP system might
replace the existing ObsCamControl (TCP/IP) system.
Current Flag
File messages: Broadcast Functions:
AstroMain
Disconnect AstroGuard Services()- SU.BaseFolder\Disconnect.dat
AstroGuard
AstroMain ConnectAstroGuardServices()
- SU.BaseFolder\Connect.dat
AstroGuard
AstroMain WriteRestartDomeFlag()
- SU.BaseFolder\RestartDome.dat
AstroGuard
AstroMain RestartTheSky6()
- SU.BaseFolder\RestartTheSkyFlag.dat AstroPlan
AstroMain
RestartTheSky6()
- SU.BaseFolder\RestartTheSkyFlag.dat AstroVOE
AstroMain
SetFlagChanged("Session") -
Flag_SessionChanged.dat
AstroPlan
AstroMain SetFlagChanged("Plan")
- Flag_PlanChanged.dat
AstroPlan
AstroMain SetFlagChanged("Event")
- Flag_EventChanged.dat
AstroPlan
AstroMain SetFlagChanged("Alert")
- Flag_AlertChanged.dat
AstroPlan
AstroMain SetFlagChanged("NewSession")
- Flag_NewSessionChanged.dat
AstroPlan
AstroMain SetFlagChanged("ResumeSession") -
Flag_ResumeSessionChanged.dat
AstroPlan
AstroMain SetFlagChanged("EndSession")
- Flag_EndSessionChanged.dat
AstroPlan
AstroMain OpenTargetInAstroPlan(TargetID) - CCD
Imaging\Common\OpenTarget.dat AstroPlan
AstroSN
OpenTargetInAstroPlan(TargetID) - CCD Imaging\Common\OpenTarget.dat
AstroPlan
AstroMain ObsManager.InitiateNewPlan
- SU.BaseFolder \CreatePlanFlag.dat AstroPlan
Listening
Functions
AstroMain RemoteAbortListener()
- CCD Imaging\AbortAstroMainJob.dat from ?
AstroMain
RemoteAbortListener()
- CCD Imaging\KillAstroMainJob.dat from
?
AstroMain ObsManager.MainLoop, WaitforNewPlan - SU.BaseFolder
\CreatePlanFlag.dat from AstroPlan
AstroMain CheckForNewToO()
- SU.BaseFolder \ToO_File.dat"
from AstroPlan/AstroVOE
AstroPlan WsFileWatcher.Start
- CCD Imaging\CreatePlanFlag.dat
from AstroMain
AstroPlan WsFileWatcher2.Start
- CCD Imaging\RestartTheSkyFlag.dat from
AstroMain
AstroPlan FlagChanged("Session")
- Flag_SessionChanged.dat
AstroPlan FlagChanged("Plan")
- Flag_PlanChanged.dat
AstroMain
AstroPlan FlagChanged("Event")
- Flag_EventChanged.dat
AstroMain
AstroPlan FlagChanged("Alert")
- Flag_AlertChanged.dat
AstroMain
AstroPlan FlagChanged("NewSession")
- Flag_NewSessionChanged.dat
AstroMain
AstroPlan FlagChanged("ResumeSession")
- Flag_ResumeSessionChanged.dat
AstroMain
AstroPlan FlagChanged("EndSession")
- Flag_EndSessionChanged.dat
AstroMain
AstroPlan RemoteTargetOpener()
- CCD Imaging\Common\OpenTarget.dat" AstroMain
One
thing that is commonly used in flag files is that the deletion of flag file
is used as indicator that request has been carried out and/or heard
What fields should every message contain ?
- IP
of the computer sending the message
(senderIP as string)
- Name of the Computer sending the message
(senderComputer as string)
- Name of the Application sending the
message (senderApp as string)
- TimeStamp for the time that
message sent (senderTimeStamp as string)
- The message's MessageType.
(messageType)
- The message or payload
(message)
- Name of the Audiance Computer ?
(forComputer as string) (default *)
- Name of
the Audiance App ?
(forApp as string)
(default *)
The Listener will also add
-
TimeStamp for the the time that message was received
(receivedTimeStamp)
Update 2026-01-05
- AstroMain - AstroPlan
Notification Event communications added (replacing FlagFiles)
- AstroMain
- AstroGuard Command/Completions Events added:
ConnectServices/DisconnectServices (replacing FlagFiles)
- AstroMain -
AstroObsCam Action Events added (replacing TCP/IP comms)
- AstroMain -
AstroPlan OpenTarget Events added: (replacing FlagFiles)
- AstroSN -
AstroPlan OpenTarget Events added: (replacing FlagFiles)
A lightweight, structured UDP messaging protocol for inter‑application
communication across the observatory ecosystem.
1. Purpose
ObsComm v2 defines a consistent, deterministic message format for communication between astronomy applications running on one or more computers. It supports:
The protocol is intentionally simple, human readable, and easy to extend.
2. Message Structure
Every ObsComm v2 message contains the following fields:
All fields are required.
3. MessageType Semantics
3.1 Command
A request for another application to perform an action.
Must be directed (TargetApp and/or TargetComputer not "*") unless intentionally broadcast
3.2 Response
A reply to a command.
3.3 Event
A broadcast notification. ' broadcast state change'
Typically uses TargetApp="*" and TargetComputer="*"
3.4 Error
Indicates a failure condition - "something went wrong"
3.5 Other types
4. Region Rules
5. Routing Logic (Receiver‑Side)
6. Examples
7. Versioning
Include a version field in the message header if you anticipate future
changes:
ProtocolVersion = "2.0"
Receivers should ignore messages with unsupported versions.
8. Design Principles
ObsComm v2 is built on:
Back to Top
AstroMain Observatory Control Progam has evolved over many years, growing into a sophisticated application that supports live imaging, monitoring, analysis, and scientific workflows. Much of the original code was developed incrementally in response to real-world operational needs. While this approach delivered a powerful system, it also created areas where responsibilities blurred, sequencing became fragile, and behaviour became difficult to reason about.
This refactoring project aims to bring clarity, structure, and long-term maintainability to the system in the area of Create/Reopen Sessions without compromising operational stability. The goal is not to rewrite everything, but to map the existing behaviour, extract responsibilities, and introduce a clean, layered architecture that future-proofs the application.
These notes document the design thinking, implementation steps, and technical details behind the refactor.
Review showed that there was a clear division of programe operation into Active Mode and
Passive Mode.
This refactoring effort is about more than cleaner code. It is about building a robust, maintainable foundation for the Observatory's automation system. By mapping legacy behaviour, clarifying responsibilities, and introducing a structured pipeline for both Active and Passive Modes, the system becomes easier to understand, safer to modify, and more resilient in real-world operation.
Pipeline
┌──────────────────────────────┐ ┌──────────────┐
│ btnLiveSession.Click │ │ │
│ btnGeneralSession.Click │ │ ObsManager │
│ btnTestSession.Click │ │ │
│ comboSessionList.Changed │ └───┬──────────┘
│ btnSelectSessionFolder.Click │ │
└──────────────┬───────────────┘ │
│ │
┌──────────────▼───────────────┐ │
│ RequestActiveSessionFromUI() │ │
└──────────────┬───────────────┘ │
│ │
┌──────────────▼───────────────────────▼─────┐
│ RequestActiveSession() │
│ - Phase 1. CreateActiveSessionIdentity() │
│ - Phase 2. ValidateActiveSessionIdentity() │
│ - Phase 3. Close Previous Session │
│ - Phase 4. ActivateActiveSession() │
└──────────────┬─────────────────────────────┘
│
┌──────────────▼─────────────────────────────┐
│ ActivateActiveSession() │
│ - Phase 5 CreateSessionInDatabase() │
│ - Phase 6. StartActiveSessionPreparation() │
│ - Phase 7. SetupSessionFoldersAndFiles() │
│ - Phase 7. BeginActiveSessionFiles() │
│ - Phase 8. PrepareUIForActiveSession() │
└──────────────┬─────────────────────────────┘
┌──────────────▼─────────────────────────────┐
│ Threaded Operation │
│ - Phase 10. InitialiseActiveSessionState() │
│ - Phase 11. BeginActiveSessionFiles() │
│ - Set Completion Flag │
└─────────┬───────────────────────┬──────────┘
│ │
┌─────────▼───────────┐ ┌──────▼───────┐
│ Manual Operatitions │ │ ObsManager │
└─────────────────────┘ └──────────────┘
Handled by CreateActiveSessionIdentity()
Handled by ValidateActiveSessionIdentity(). Helped by ConfirmNewSession() & ValidateProposedSession()
Pass identity into ActivateActiveSession(identity).
Handled by CreateSessionInDatabase(identity)
StartActiveSessionPreparation(identity)
Handled by SetupSessionFoldersAndFiles().
Handled by BeginActiveSessionFile().
Handled by objConsole.PrepareUIForActiveSession()
Handled by InitialiseActiveSessionState(), as threaded operation.
Handled by InitialiseActiveSessionRuntime(), as threaded operation.
┌────────────────────────────────┐
│ btnSelectLastSession.Click │
│ btnSelectPriorSession2.Click │
│ btnSelectPriorSession3.Click │
└──────────────┬─────────────────┘
│
┌──────────────▼───────────────┐
│ SelectPassiveSessionFromUI() │
└──────────────┬───────────────┘
│
┌──────────────▼────────────────────────┐
│ SelectPassiveSession() │
│ Phase 1. ValidatePassiveSession() │
│ Phase 2. CloseAllFiles() │
│ Phase 3. SetupPassiveSession() │
│ Phase 4. OpenPassiveSessionFiles() │
│ Phase 5. PrepareUIForPassiveSession()│
└──────────────┬────────────────────────┘
│
┌──────────────▼─────────┐
│ Manual Operatitions │
└────────────────────────┘
5.1 New Modules
As part of the refactoring of the Create/Reopen Session pipeline, several legacy routines have been replaced, consolidated, or re-scoped. The goal was not to change behaviour, but to reorganise responsibilities into clearer, more maintainable units. This section documents the routines that have been superseded, the new routines that replace them, and the reasoning behind each change.
Identity objects use Properties instead of fields to support validation, logging hooks, immutability control, binding, and future evolution.
Logging remains inline to preserve exact execution order, real-world diagnostics, timing analysis, and hardware interaction traces.
Back to Top
| This Web Page: | Notes - Session 1388 (2025-12-24) |
| Last Updated : | 2026-01-17 |
| Site Owner : | David Richards |
| Home Page : | David's Astronomy Web Site |