Event based coordinate update
Mount has a timer based function updateTelescopeCoords()
that reads once per second the current status from the underlying INDI mount representation. This is not only an unnecessary complexity, it also creates concurrency issues for short mount slews.
The underlying ISD::Telescope
already partially uses events to communicates its status changes. These are enhanced so that the partially duplicated computation of the pointing position can be removed from Mount
.
-
Replace name based target event by a SkyPoint
based event -
Create a new event for coordinates updates in ISD::Telescope
-
Remove timer from Mount
updating the mount coordinates and use the event for coordinate updates -
Shift SkyPoint
calculation fromMount
toISD::Telescope
-
Merge events Mount::newCoords()
andISD::Telescope::newCoords()
Hint 1: This is the basic work making it possible shifting the entire target calculation to Mount
. Goal is that all EKOS modules communicate directly with events with Mount
instead of implementing their own interpretation of low level INDI mount communication. Since touching mount functionality is a critical part in EKOS I decided to split this technical refactoring of Mount
from refactorings of other modules.
Hint 2: I eliminated commented out code that breaks QTCreator file parsing.