Events Module
The events subsystem provides a real-time stream of Seestar state
changes over a persistent TCP connection. Use
start_listener() to begin
collecting events in a background thread, and inspect
LATEST_STATE for the most
recent data.
Listener
- seestarpy.events.event_listener.dashboard_url()
Get file paths to the bundled HTML dashboard pages.
These dashboards connect to the WebSocket server started by
start_listener()and display live Seestar state. Open the returned paths in a web browser.- Returns:
Paths to the
basic.htmlandfancy.htmldashboard files.- Return type:
list of pathlib.Path
Examples
>>> from seestarpy.events.event_listener import dashboard_url >>> dashboard_url() [PosixPath('.../dashboards/basic.html'), PosixPath('.../dashboards/fancy.html')]
- async seestarpy.events.event_listener.heartbeat(writer)
Send periodic heartbeat messages to keep the TCP connection alive.
Cycles through several query methods (
get_device_state,iscope_get_app_state,scope_get_equ_coord,scope_get_horiz_coord) so thatevent_stream.LATEST_STATEstays up to date even when the Seestar is idle.- Parameters:
writer (asyncio.StreamWriter) – The open TCP writer for the Seestar connection.
- async seestarpy.events.event_listener.run()
Main event loop: connect to the Seestar and process incoming events.
Opens a persistent TCP connection, starts a
heartbeat()task, and reads newline-delimited JSON messages. Each message is passed toevent_stream.handle_event(). Automatically reconnects on connection loss.
- seestarpy.events.event_listener.start_listener(with_websocket=True)
Start the background event listener in a daemon thread.
Opens a persistent TCP connection to the Seestar and continuously reads incoming event messages, keeping
event_stream.LATEST_STATEup to date. Optionally starts a WebSocket server so that the bundled HTML dashboards can display live data.This function is safe to call multiple times — subsequent calls are a no-op if the listener is already running.
- Parameters:
with_websocket (bool, optional) – Also start the WebSocket relay server on
ws://0.0.0.0:8765. Default isTrue.
See also
stop_listenerStop the background listener.
dashboard_urlGet paths to the bundled HTML dashboards.
Examples
>>> from seestarpy import start_listener, stop_listener >>> start_listener() [seestarpy] Starting background thread with asyncio loop. Connecting to 192.168.1.243:4700... Connected to 192.168.1.243:4700 >>> stop_listener()
- seestarpy.events.event_listener.stop_listener()
Stop the background event listener.
Signals the listener thread to shut down and clears internal state. Safe to call even if the listener is not running.
See also
start_listenerStart the background listener.
- async seestarpy.events.event_listener.websocket_server()
Start a WebSocket server that broadcasts
event_stream.LATEST_STATE.Serves on
ws://0.0.0.0:8765. Each connected client receives the full state dictionary once per second. Used by the HTML dashboards returned bydashboard_url().
Event Stream
- seestarpy.events.event_stream.LATEST_LOGS = deque([], maxlen=500)
Rolling buffer of the last 500 raw event dictionaries, in chronological order.
- Type:
deque
- seestarpy.events.event_stream.LATEST_STATE = {}
Most recent event data keyed by event type (e.g.
"Stack","PlateSolve"). Updated in real time byhandle_event()while the listener is running.- Type:
dict
- seestarpy.events.event_stream.handle_event(data)
Route an incoming Seestar event into the shared state stores.
Extracts the
"Event"key from data and upserts the entry inLATEST_STATE, so that each event type always holds the most recent message. The full message is also appended toLATEST_LOGS.- Parameters:
data (dict) – A JSON-parsed Seestar message that must contain an
"Event"key to be stored. Messages without an"Event"key are silently ignored.
Event Definitions
Typed dataclasses for every known Seestar event. Each class maps 1-to-1
with the "Event" key in the JSON messages sent by the device.
- class seestarpy.events.event_definitions.AIProcess(state, lapse_ms, ori_name=None, dst_name=None, route=<factory>)
Bases:
objectAI image-processing event.
Emitted when the Seestar applies its on-board AI enhancement to an image (e.g. noise reduction, sharpening).
- Parameters:
state (str) – Current state. Values: ‘working’, ‘complete’
lapse_ms (int) – Elapsed time in ms.
ori_name (str) – Original image filename. Example: ‘ori_path.jpg’
dst_name (str) – Destination image filename. Example: ‘dst_path.jpg’
route (list) – Contextual route. Example: [‘View’]
- dst_name: str | None = None
- lapse_ms: int
- ori_name: str | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.Alert(error, code)
Bases:
objectAlert event raised during observations.
Emitted when the Seestar encounters a problem such as the target dropping below the horizon, too few stars for stacking, or star trails being detected.
- Parameters:
error (str) – Description of the error. Values: ‘below horizon’, ‘stack error, too few stars’, ‘stack error, transform failed’, ‘star trails’
code (int) – Numeric error code. Values: 263, 264, 270, 530
- code: int
- error: str
- class seestarpy.events.event_definitions.Annotate(state, page=None, lapse_ms=None, result=<factory>, route=<factory>)
Bases:
objectImage-annotation event.
Emitted when the Seestar annotates a stacked image with detected object labels (stars, DSOs, etc.).
- Parameters:
state (str) – Status of the annotation. Values: ‘start’, ‘working’, ‘complete’
page (str) – Page context. Values: ‘stack’
lapse_ms (int) – Time taken for annotation.
result (dict) – Annotation results including object metadata.
route (list) – UI route. Example: [‘View’, ‘Stack’]
- lapse_ms: int | None = None
- page: str | None = None
- result: Dict[str, Any] | None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.AutoFocus(state, lapse_ms=None, error=None, code=None, route=<factory>, result=<factory>)
Bases:
objectAuto-focus event.
Emitted during the automated focus routine. The Seestar sweeps through focuser positions and measures star FWHM to find the optimal focus point.
- Parameters:
state (str) – Autofocus state. Values: ‘start’, ‘working’, ‘fail’
lapse_ms (int) – Elapsed time in milliseconds.
error (str) – Description of error if failed. Values: ‘no star is detected’
code (int) – Numeric error code. Values: 279
route (list) – Route context. Example: [‘View’]
result (dict) – Result of focus scan (scale, points, etc).
- code: int | None = None
- error: str | None = None
- lapse_ms: int | None = None
- result: Dict[str, Any] | None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.AutoGoto(state, page=None, tag=None, func=None, error=None, code=None, target_ra_dec=<factory>, target_name=None, lapse_ms=None, count=None, hint=None, route=<factory>)
Bases:
objectAuto-goto event.
Emitted during the automated goto sequence: the mount slews to the target coordinates, then enters a plate-solve loop to refine pointing accuracy.
- Parameters:
state (str) – State of the goto process. Values: ‘start’, ‘working’, ‘complete’, ‘fail’
page (str) – UI page. Values: ‘preview’
tag (str) – UI tag. Values: ‘Exposure’
func (str) – Function executed. Values: ‘goto_ra_dec’
error (str) – Error reason. Values: ‘mount goto failed’, ‘solve failed’
code (int) – Error code. Values: 251, 501
target_ra_dec (list) – Target coordinates in RA/DEC. Example: [13.4, 54.900002]
target_name (str) – Name of the target. Example: ‘Mizar’
lapse_ms (int) – Elapsed time in milliseconds.
count (int) – Retry or step count.
hint (bool) – Whether a hint was used. Values: True, False
route (list) – UI route. Examples: [‘View’], [‘View’, ‘3PPA’]
- code: int | None = None
- count: int | None = None
- error: str | None = None
- func: str | None = None
- hint: bool | None = None
- lapse_ms: int | None = None
- page: str | None = None
- route: List[str] | None
- state: str
- tag: str | None = None
- target_name: str | None = None
- target_ra_dec: List[float] | None
- class seestarpy.events.event_definitions.AutoGotoStep(state, page=None, tag=None, func=None, count=None, error=None, code=None)
Bases:
objectIndividual step within an
AutoGotosequence.Emitted for each slew-and-solve iteration during the goto process.
- Parameters:
state (str) – Status of the step. Values: ‘fail’
page (str) – UI page. Values: ‘preview’
tag (str) – UI tag. Values: ‘Exposure’
func (str) – Function name. Values: ‘goto_ra_dec’
count (int) – Step or retry count. Example: 6
error (str) – Error reason. Values: ‘mount goto failed’
code (int) – Error code. Values: 501
- code: int | None = None
- count: int | None = None
- error: str | None = None
- func: str | None = None
- page: str | None = None
- state: str
- tag: str | None = None
- class seestarpy.events.event_definitions.BalanceSensor(code, data=<factory>)
Bases:
objectBalance-sensor reading event.
Reports the accelerometer data (x, y, z) and the computed tilt angle of the Seestar’s body. Useful for verifying the tripod is level.
- Parameters:
code (int) – Status code. Values: 0
data (dict) – Balance data with x, y, z acceleration and angle. Example: {‘x’: 0.316085, ‘y’: -0.515709, ‘z’: 1.104264, ‘angle’: 28.712015}
- code: int
- data: Dict[str, Any] | None
- class seestarpy.events.event_definitions.ContinuousExposure(state, lapse_ms=None, fps=None, route=<factory>)
Bases:
objectContinuous-exposure (live-view) event.
Emitted while the camera is running in live-view mode, before stacking has started. Reports the frame rate and elapsed time.
- Parameters:
state (str) – Current state. Values: ‘cancel’, ‘working’
lapse_ms (int) – Duration in milliseconds.
fps (float) – Frames per second. Example: 2.024457
route (list) – Route in the UI. Example: [‘View’]
- fps: float | None = None
- lapse_ms: int | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.DarkLibrary(state, lapse_ms=None, percent=None, route=<factory>)
Bases:
objectDark-frame library creation event.
Emitted while the Seestar is capturing dark frames for calibration. Reports progress as a percentage.
- Parameters:
state (str) – Process state. Values: ‘working’, ‘complete’
lapse_ms (int) – Time in milliseconds.
percent (float) – Completion percentage. Example: 100.0
route (list) – UI route. Example: [‘View’, ‘Initialise’]
- lapse_ms: int | None = None
- percent: float | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.DiskSpace(used_percent)
Bases:
objectDisk-space usage event.
Reports the percentage of used storage on the Seestar’s internal eMMC drive.
- Parameters:
used_percent (int) – Used space percentage. Example: 38
- used_percent: int
- class seestarpy.events.event_definitions.Exposure(state, page=None, tag=None, ac_count=None, exp_us=None, gain=None, error=None, code=None, lapse_ms=None, exp_ms=None, route=<factory>)
Bases:
objectSingle-exposure capture event.
Emitted for each individual sub-frame during stacking or auto-goto plate-solving. Reports the exposure duration, gain, and capture state.
- Parameters:
state (str) – Current state of the exposure. Values: ‘start’, ‘working’, ‘downloading’, ‘complete’, ‘fail’, ‘cancel’
page (str) – UI context. Values: ‘preview’, ‘stack’
tag (str) – Tag for identifying exposure type. Example: ‘Exposure-AutoGoto’
ac_count (int) – Auto capture count. Example: 1
exp_us (int) – Exposure time in microseconds. Example: 2000000, 10000000
gain (int) – Gain setting. Example: 80
error (str) – Error description. Values: ‘interrupt’
code (int) – Error code. Values: 514
lapse_ms (int) – Elapsed time in milliseconds.
exp_ms (float) – Exposure duration in milliseconds. Example: 1000.0, 2000.0, 10000.0
route (list) – Route path. Examples: [‘View’, ‘Stack’], [‘View’, ‘AutoFocus’]
- ac_count: int | None = None
- code: int | None = None
- error: str | None = None
- exp_ms: float | None = None
- exp_us: int | None = None
- gain: int | None = None
- lapse_ms: int | None = None
- page: str | None = None
- route: List[str] | None
- state: str
- tag: str | None = None
- class seestarpy.events.event_definitions.FocuserMove(state, lapse_ms=None, position=None, route=<factory>)
Bases:
objectFocuser-movement event.
Emitted when the focuser motor moves to a new position, either manually or as part of the auto-focus routine.
- Parameters:
state (str) – State of the focuser. Values: ‘complete’, ‘working’
lapse_ms (int) – Time in milliseconds.
position (int) – Final position. Examples: 0, 1540, 1580, 1820
route (list) – UI route. Examples: [‘View’, ‘AutoFocus’]
- lapse_ms: int | None = None
- position: int | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.GSensorMove(Timestamp)
Bases:
objectG-sensor movement-detection event.
Emitted when the accelerometer detects that the Seestar has been physically moved or bumped.
- Parameters:
Timestamp (str) – Time the movement was registered. Example: ‘2205.182986165’
- Timestamp: str
- class seestarpy.events.event_definitions.Initialise(Timestamp, state, lapse_ms=None, route=<factory>)
Bases:
objectDevice-initialisation event.
Emitted during the Seestar’s startup sequence (dark-frame loading, sensor calibration, etc.).
- Parameters:
Timestamp (str) – Time the init occurred. Example: ‘718.139747786’
state (str) – Status of initialization. Values: ‘working’, ‘complete’
lapse_ms (int) – Elapsed time.
route (list) – Route context. Example: [‘View’]
- Timestamp: str
- lapse_ms: int | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.MountMode(Timestamp, equ_mode)
Bases:
objectMount-mode change event.
Emitted when the mount switches between equatorial (EQ) and altitude-azimuth (AzAlt) mode.
- Parameters:
Timestamp (str) – Event timestamp. Example: ‘1902.412544972’
equ_mode (bool) – Whether equatorial mode is enabled. Values: True, False
- Timestamp: str
- equ_mode: bool
- class seestarpy.events.event_definitions.MoveByAngle(state, value=None)
Bases:
objectMove-by-angle event.
Emitted when the mount is commanded to move by a specific angular offset (e.g. during polar-alignment adjustments).
- Parameters:
state (str) – State of the movement. Values: ‘start’, ‘moving’, ‘complete’
value (float) – Angle in degrees. Example: 10.043414
- state: str
- value: float | None = None
- class seestarpy.events.event_definitions.PiStatus(temp=None, battery_temp=None, battery_capacity=None, charger_status=None)
Bases:
objectRaspberry Pi hardware status event.
Periodic report of the Seestar’s internal processor temperature, battery level, and charging state.
- Parameters:
temp (float) – Temperature in Celsius. Example: 46.5
battery_temp (int) – Battery temperature. Example: 27
battery_capacity (int) – Battery percentage. Example: 42
charger_status (str) – Charging state. Values: ‘Discharging’
- battery_capacity: int | None = None
- battery_temp: int | None = None
- charger_status: str | None = None
- temp: float | None = None
- class seestarpy.events.event_definitions.PlateSolve(state, page=None, tag=None, ac_count=None, error=None, code=None, lapse_ms=None, star_number=None, ra_dec=<factory>, fov=<factory>, focal_len=None, angle=None, image_id=None, result=<factory>, route=<factory>)
Bases:
objectPlate-solve event.
Emitted during astrometric plate-solving of captured frames. Reports the solved RA/Dec position, field of view, rotation angle, and number of detected stars.
- Parameters:
state (str) – Current solving state. Values: ‘start’, ‘solving’, ‘working’, ‘complete’, ‘fail’
page (str) – Context page. Values: ‘preview’, ‘stack’
tag (str) – Exposure tag. Example: ‘Exposure-AutoGoto’
ac_count (int) – Auto capture count. Example: 1
error (str) – Error message. Values: ‘solve failed’
code (int) – Error code. Values: 251
lapse_ms (int) – Time elapsed in ms. Example: 3169, 30964
star_number (int) – Number of stars detected. Examples: 2148, 429, 6802
ra_dec (list) – Right Ascension and Declination. Example: [14.328956, 19.398779]
fov (list) – Field of view in degrees. Example: [0.711682, 1.265403]
focal_len (float) – Focal length in mm. Example: 252.111633
angle (float) – Rotation angle in degrees. Example: 308.333008
image_id (int) – Image identifier. Example: 852
result (dict) – Plate solve result details.
route (list) – Route in UI. Examples: [‘View’, ‘AutoGoto’]
- ac_count: int | None = None
- angle: float | None = None
- code: int | None = None
- error: str | None = None
- focal_len: float | None = None
- fov: List[float] | None
- image_id: int | None = None
- lapse_ms: int | None = None
- page: str | None = None
- ra_dec: List[float] | None
- result: Dict[str, Any] | None
- route: List[str] | None
- star_number: int | None = None
- state: str
- tag: str | None = None
- class seestarpy.events.event_definitions.SaveImage(state, filename=None, fullname=None)
Bases:
objectImage-save event.
Emitted when a stacked or sub-frame image is saved to the Seestar’s internal eMMC storage.
- Parameters:
state (str) – Save state. Values: ‘complete’
filename (str) – File name only. Example: ‘Stacked_36_Polaris_10.0s_IRCUT_20250720-224643.fit’
fullname (str) – Full path name. Example: ‘MyWorks/Polaris/Stacked_36_Polaris_10.0s_IRCUT_20250720-224643.fit’
- filename: str | None = None
- fullname: str | None = None
- state: str
- class seestarpy.events.event_definitions.ScopeGoto(state, lapse_ms=None, cur_ra_dec=<factory>, dist_deg=None, error=None, code=None, route=<factory>)
Bases:
objectScope-goto (low-level slew) event.
Emitted as the mount physically moves toward the target coordinates. Reports the current position and remaining angular distance.
- Parameters:
state (str) – Movement state. Values: ‘complete’, ‘fail’, ‘working’
lapse_ms (int) – Time taken for goto in ms.
cur_ra_dec (list) – Current RA/DEC position. Example: [13.399722, 54.9]
dist_deg (float) – Distance in degrees to target. Example: 0.002394, 123.233118
error (str) – Error message. Values: ‘mount goto failed’
code (int) – Error code. Values: 501
route (list) – UI path. Example: [‘View’, ‘AutoGoto’]
- code: int | None = None
- cur_ra_dec: List[float] | None
- dist_deg: float | None = None
- error: str | None = None
- lapse_ms: int | None = None
- route: List[str] | None
- state: str
- class seestarpy.events.event_definitions.ScopeHome(state, lapse_ms=None, close=None, equ_mode=None)
Bases:
objectScope-home (park) event.
Emitted when the Seestar arm moves to the parked (closed) position.
- Parameters:
state (str) – State of homing. Values: ‘complete’, ‘working’
lapse_ms (int) – Time taken for the homing process in ms.
close (bool) – Whether the process was a close action. Values: True, False
equ_mode (bool) – Equatorial mode state. Values: True, False
- close: bool | None = None
- equ_mode: bool | None = None
- lapse_ms: int | None = None
- state: str
- class seestarpy.events.event_definitions.ScopeMoveToHorizon(state, lapse_ms=None, close=None)
Bases:
objectScope move-to-horizon event.
Emitted when the Seestar arm moves from the parked position to the horizontal (open) position, ready for observing.
- Parameters:
state (str) – Status of movement. Values: ‘complete’, ‘working’
lapse_ms (int) – Time in milliseconds.
close (bool) – Whether to close after movement. Values: True, False
- close: bool | None = None
- lapse_ms: int | None = None
- state: str
- class seestarpy.events.event_definitions.ScopeTrack(state, tracking=None, manual=None, error=None, code=None, route=<factory>)
Bases:
objectSidereal-tracking state event.
Emitted when tracking is toggled on or off, or when a tracking error occurs (e.g. target below horizon, mount sync failure).
- Parameters:
state (str) – Tracking status. Values: ‘on’, ‘off’
tracking (bool) – Whether tracking is active. Values: True, False
manual (bool) – Manual tracking toggle. Values: True, False
error (str) – Error message. Values: ‘below horizon’, ‘equipment is moving’, ‘fail to operate’, ‘mount sync failed’
code (int) – Error code. Values: 203, 207, 270, 502
route (list) – Route path. Example: []
- code: int | None = None
- error: str | None = None
- manual: bool | None = None
- route: List[str] | None
- state: str
- tracking: bool | None = None
- class seestarpy.events.event_definitions.Stack(state, lapse_ms=None, frame_errcode=None, stacked_frame=None, dropped_frame=None, total_frame=None, frame_type=None, error=None, code=None, can_annotate=None, jpg_name=None, route=<factory>)
Bases:
objectImage-stacking event.
Emitted for each stacking cycle. Reports the number of stacked and dropped frames, frame error codes, and whether annotation is available on the current stack.
- Parameters:
state (str) – State of the stacking. Values: ‘start’, ‘working’, ‘cancel’, ‘frame_complete’
lapse_ms (int) – Time elapsed in milliseconds.
frame_errcode (int) – Frame error code. Values: -1, 0, 263, 530
stacked_frame (int) – Number of frames stacked.
dropped_frame (int) – Number of dropped frames.
total_frame (int) – Total frames received.
frame_type (str) – Type of frame. Example: ‘light’
error (str) – Error message. Examples: ‘stack error, too few stars’, ‘star trails’, ‘no error’
code (int) – Error code. Examples: 0, 263, 530
can_annotate (bool) – Whether annotation is available. Values: True, False
jpg_name (str) – JPEG output filename.
route (list) – Route in UI. Example: [‘View’]
- can_annotate: bool | None = None
- code: int | None = None
- dropped_frame: int | None = None
- error: str | None = None
- frame_errcode: int | None = None
- frame_type: str | None = None
- jpg_name: str | None = None
- lapse_ms: int | None = None
- route: List[str] | None
- stacked_frame: int | None = None
- state: str
- total_frame: int | None = None
- class seestarpy.events.event_definitions.ThreePPA(state, lapse_ms, percent=None, calib_fail_autogoto=None, offset=<factory>, equ_offset=<factory>, route=<factory>, state_code=None, auto_move=None, auto_update=None, paused=None, detail=<factory>, retry_cnt=None)
Bases:
objectThree-Point Polar Alignment (3PPA) event.
Emitted during the automated polar-alignment sequence. The Seestar slews to three sky positions, plate-solves each one, and computes the azimuth/altitude offset required to align the mount’s polar axis.
- Parameters:
state (str) – State of the process. Values: ‘start’, ‘working’, ‘complete’, ‘delay1’, ‘delay2’, ‘move1’, ‘move2’
lapse_ms (int) – Elapsed time in milliseconds.
percent (float) – Progress percentage. Values: 0.0 to 100.0
calib_fail_autogoto (bool) – Whether calibration failed to auto-goto. Values: True, False
offset (list) – Az-Alt offset [x, y] in degrees. Example: [-0.986416, -0.450118]
equ_offset (list) – Equatorial offset [RA, DEC] in degrees. Example: [-56.145756, 136.862207]
route (list) – Route stack. Example: [‘View’]
state_code (int) – Internal state code. Values: 1, 5, 6, 10, 11
auto_move (bool) – Whether auto movement is enabled. Values: True, False
auto_update (bool) – Whether auto update is enabled. Values: True, False
paused (bool) – Whether the process is paused. Values: True, False
detail (dict) – Additional detail such as total_ms, lapse_ms
retry_cnt (int) – Retry count. Values: 0, 1, …
- auto_move: bool | None = None
- auto_update: bool | None = None
- calib_fail_autogoto: bool | None = None
- detail: Dict[str, Any] | None
- equ_offset: List[float] | None
- lapse_ms: int
- offset: List[float] | None
- paused: bool | None = None
- percent: float | None = None
- retry_cnt: int | None = None
- route: List[str] | None
- state: str
- state_code: int | None = None
- class seestarpy.events.event_definitions.View(state, lapse_ms=None, mode=None, cam_id=None, target_ra_dec=<factory>, target_name=None, lp_filter=None, gain=None, route=<factory>)
Bases:
objectTop-level view-session event.
Emitted when a viewing session starts, changes mode, or completes. Carries the target name, coordinates, gain, and filter state.
- Parameters:
state (str) – View state. Values: ‘cancel’, ‘working’
lapse_ms (int) – Elapsed time.
mode (str) – View mode. Example: ‘star’
cam_id (int) – Camera ID. Example: 0
target_ra_dec (list) – Target RA/DEC coordinates. Example: [13.4, 54.900002]
target_name (str) – Target name. Example: ‘Mizar’
lp_filter (bool) – Whether LP filter is applied. Values: True, False
gain (int) – Gain level. Example: 80
route (list) – Route context. Example: []
- cam_id: int | None = None
- gain: int | None = None
- lapse_ms: int | None = None
- lp_filter: bool | None = None
- mode: str | None = None
- route: List[str] | None
- state: str
- target_name: str | None = None
- target_ra_dec: List[float] | None
- class seestarpy.events.event_definitions.WheelMove(state, position=None)
Bases:
objectFilter-wheel movement event.
Emitted when the filter wheel rotates to a new position (e.g. switching between IR-cut and narrow-band filters).
- Parameters:
state (str) – Movement state. Values: ‘start’, ‘complete’
position (int) – Position index. Examples: 0, 1
- position: int | None = None
- state: str