File indexing completed on 2024-04-21 14:45:01

0001 /*
0002     SPDX-FileCopyrightText: 2018 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     Message Channel
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #pragma once
0010 
0011 #include <QMap>
0012 
0013 namespace EkosLive
0014 {
0015 enum COMMANDS
0016 {
0017     GET_CONNECTION,
0018     GET_STATES,
0019     GET_STELLARSOLVER_PROFILES,
0020     GET_DRIVERS,
0021     GET_DEVICES,
0022     NEW_CONNECTION_STATE,
0023     NEW_INDI_STATE,
0024     NEW_MOUNT_STATE,
0025     NEW_CAMERA_STATE,
0026     NEW_CAPTURE_STATE,
0027     NEW_GUIDE_STATE,
0028     NEW_FOCUS_STATE,
0029     NEW_ALIGN_STATE,
0030     NEW_POLAR_STATE,
0031     NEW_DOME_STATE,
0032     NEW_CAP_STATE,
0033     NEW_PREVIEW_IMAGE,
0034     NEW_VIDEO_FRAME,
0035     NEW_ALIGN_FRAME,
0036     NEW_NOTIFICATION,
0037     NEW_TEMPERATURE,
0038     NEW_SCHEDULER_STATE,
0039 
0040     INVOKE_METHOD,
0041     SET_PROPERTY,
0042     GET_PROPERTY,
0043 
0044     SET_CLIENT_STATE,
0045     LOGOUT,
0046 
0047     // Profiles
0048     GET_PROFILES,
0049     START_PROFILE,
0050     STOP_PROFILE,
0051     ADD_PROFILE,
0052     GET_PROFILE,
0053     DELETE_PROFILE,
0054     UPDATE_PROFILE,
0055     SET_PROFILE_MAPPING,
0056     SET_PROFILE_PORT_SELECTION,
0057     GET_PROFILE_PORT_SELECTION,
0058 
0059     // SCOPES
0060     GET_SCOPES,
0061     ADD_SCOPE,
0062     DELETE_SCOPE,
0063     UPDATE_SCOPE,
0064 
0065     // Trains
0066     TRAIN_GET_ALL,
0067     TRAIN_GET_PROFILES,
0068     TRAIN_UPDATE,
0069     TRAIN_SET,
0070     TRAIN_ADD,
0071     TRAIN_DELETE,
0072     TRAIN_RESET,
0073     TRAIN_CONFIGURATION_REQUESTED,
0074     TRAIN_ACCEPT,
0075 
0076     // Capture
0077     CAPTURE_PREVIEW,
0078     CAPTURE_TOGGLE_VIDEO,
0079     CAPTURE_TOGGLE_CAMERA,
0080     CAPTURE_TOGGLE_FILTER_WHEEL,
0081     CAPTURE_START,
0082     CAPTURE_STOP,
0083     CAPTURE_GET_SEQUENCES,
0084     CAPTURE_ADD_SEQUENCE,
0085     CAPTURE_REMOVE_SEQUENCE,
0086     CAPTURE_CLEAR_SEQUENCES,
0087     CAPTURE_SET_SETTINGS,
0088     CAPTURE_SET_LIMITS,
0089     CAPTURE_GET_LIMITS,
0090     CAPTURE_SAVE_SEQUENCE_FILE,
0091     CAPTURE_LOAD_SEQUENCE_FILE,
0092     CAPTURE_GET_CALIBRATION_SETTINGS,
0093     CAPTURE_SET_FILE_SETTINGS,
0094     CAPTURE_GET_FILE_SETTINGS,
0095     CAPTURE_GET_PREVIEW_LABEL,
0096     CAPTURE_LOOP,
0097     CAPTURE_GENERATE_DARK_FLATS,
0098 
0099     // Mount
0100     MOUNT_PARK,
0101     MOUNT_UNPARK,
0102     MOUNT_ABORT,
0103     MOUNT_SYNC_RADE,
0104     MOUNT_SYNC_TARGET,
0105     MOUNT_GOTO_RADE,
0106     MOUNT_GOTO_TARGET,
0107     MOUNT_GOTO_PIXEL,
0108     MOUNT_SET_MOTION,
0109     MOUNT_SET_TRACKING,
0110     MOUNT_SET_SLEW_RATE,
0111     MOUNT_CLEAR,
0112     MOUNT_GET_ALL_SETTINGS,
0113     MOUNT_SET_ALL_SETTINGS,
0114     MOUNT_TOGGLE_AUTOPARK,
0115 
0116     // Dome
0117     DOME_PARK,
0118     DOME_UNPARK,
0119     DOME_GOTO,
0120     DOME_STOP,
0121 
0122     // Cap
0123     CAP_PARK,
0124     CAP_UNPARK,
0125     CAP_SET_LIGHT,
0126 
0127     // Focus
0128     FOCUS_START,
0129     FOCUS_CAPTURE,
0130     FOCUS_STOP,
0131     FOCUS_RESET,
0132     FOCUS_IN,
0133     FOCUS_OUT,
0134     FOCUS_LOOP,
0135     FOCUS_SET_ALL_SETTINGS,
0136     FOCUS_GET_ALL_SETTINGS,
0137     FOCUS_SET_CROSSHAIR,
0138 
0139     // Guide
0140     GUIDE_START,
0141     GUIDE_CAPTURE,
0142     GUIDE_LOOP,
0143     GUIDE_STOP,
0144     GUIDE_CLEAR,
0145     GUIDE_REPORT,
0146     GUIDE_SET_ALL_SETTINGS,
0147     GUIDE_GET_ALL_SETTINGS,
0148     GUIDE_SET_CALIBRATION_SETTINGS,
0149     // Align
0150     ALIGN_SOLVE,
0151     ALIGN_STOP,
0152     ALIGN_LOAD_AND_SLEW,
0153     ALIGN_SET_FILE_EXTENSION,
0154     ALIGN_SET_ALL_SETTINGS,
0155     ALIGN_GET_ALL_SETTINGS,
0156     ALIGN_SET_ASTROMETRY_SETTINGS,
0157     ALIGN_MANUAL_ROTATOR_STATUS,
0158     ALIGN_MANUAL_ROTATOR_TOGGLE,
0159 
0160     // Scheduler
0161     SCHEDULER_GET_ALL_SETTINGS,
0162     SCHEDULER_SET_ALL_SETTINGS,
0163     SCHEDULER_GET_JOBS,
0164     SCHEDULER_ADD_JOBS,
0165     SCHEDULER_REMOVE_JOBS,
0166     SCHEDULER_START_JOB,
0167     SCHEDULER_IMPORT_MOSAIC,
0168 
0169     // Polar Assistant Helper
0170     PAH_START,
0171     PAH_STOP,
0172     PAH_REFRESH,
0173     PAH_SET_CROSSHAIR,
0174     PAH_SELECT_STAR_DONE,
0175     PAH_REFRESHING_DONE,
0176     PAH_RESET_VIEW,
0177     PAH_SLEW_DONE,
0178     PAH_PAH_SET_ZOOM,
0179     PAH_SET_ALGORITHM,
0180 
0181     // Options
0182     OPTION_SET,
0183     OPTION_GET,
0184 
0185     // Storage Options
0186     SET_BLOBS,
0187 
0188     // DSLRs
0189     DSLR_GET_INFO,
0190     DSLR_SET_INFO,
0191     DSLR_SET_MODE,
0192 
0193     //DSLR Lens
0194     DSLR_ADD_LENS,
0195     DSLR_DELETE_LENS,
0196     DSLR_UPDATE_LENS,
0197     GET_DSLR_LENSES,
0198 
0199     // Low-level device Access
0200     DEVICE_GET,
0201     DEVICE_RESTART,
0202     DEVICE_BLOB_GET,
0203     DEVICE_PROPERTY_GET,
0204     DEVICE_PROPERTY_SET,
0205     DEVICE_PROPERTY_ADD,
0206     DEVICE_PROPERTY_REMOVE,
0207     DEVICE_PROPERTY_SUBSCRIBE,
0208     DEVICE_PROPERTY_UNSUBSCRIBE,
0209     DEVICE_MESSAGE,
0210 
0211     // Dialogs
0212     DIALOG_GET_INFO,
0213     DIALOG_GET_RESPONSE,
0214 
0215     // Filter Manager
0216     FM_GET_DATA,
0217     FM_SET_DATA,
0218 
0219     // Astronomy Library
0220     ASTRO_GET_ALMANC,
0221     ASTRO_SEARCH_OBJECTS,
0222     ASTRO_GET_OBJECT_INFO,
0223     ASTRO_GET_OBJECTS_INFO,
0224     ASTRO_GET_OBJECTS_IMAGE,
0225     ASTRO_GET_SKYPOINT_IMAGE,
0226     ASTRO_GET_OBJECTS_OBSERVABILITY,
0227     ASTRO_GET_OBJECTS_RISESET,
0228 
0229     // Dark Library
0230     DARK_LIBRARY_START,
0231     DARK_LIBRARY_STOP,
0232     DARK_LIBRARY_SET_CAMERA_PRESETS,
0233     DARK_LIBRARY_GET_CAMERA_PRESETS,
0234     DARK_LIBRARY_SET_ALL_SETTINGS,
0235     DARK_LIBRARY_GET_ALL_SETTINGS,
0236     DARK_LIBRARY_GET_DEFECT_SETTINGS,
0237     DARK_LIBRARY_SET_DEFECT_PIXELS,
0238     DARK_LIBRARY_SAVE_MAP,
0239     DARK_LIBRARY_GET_VIEW_MASTERS,
0240     DARK_LIBRARY_GET_MASTERS_IMAGE,
0241     DARK_LIBRARY_CLEAR_MASTERS_ROW,
0242     DARK_LIBRARY_SET_DEFECT_FRAME,
0243 };
0244 
0245 static QMap<COMMANDS, QString> const commands =
0246 {
0247     {GET_CONNECTION, "get_connection"},
0248     {GET_STATES, "get_states"},
0249     {GET_STELLARSOLVER_PROFILES, "get_stellarsolver_profiles"},
0250     {GET_DRIVERS, "get_drivers"},
0251     {GET_DEVICES, "get_devices"},
0252     {NEW_CONNECTION_STATE, "new_connection_state"},
0253     {NEW_INDI_STATE, "new_indi_state"},
0254     {NEW_MOUNT_STATE, "new_mount_state"},
0255     {NEW_CAMERA_STATE, "new_camera_state"},
0256     {NEW_CAPTURE_STATE, "new_capture_state"},
0257     {NEW_GUIDE_STATE, "new_guide_state"},
0258     {NEW_FOCUS_STATE, "new_focus_state"},
0259     {NEW_ALIGN_STATE, "new_align_state"},
0260     {NEW_POLAR_STATE, "new_polar_state"},
0261     {NEW_DOME_STATE, "new_dome_state"},
0262     {NEW_CAP_STATE, "new_cap_state"},
0263     {NEW_PREVIEW_IMAGE, "new_preview_image"},
0264     {NEW_VIDEO_FRAME, "new_video_frame"},
0265     {NEW_ALIGN_FRAME, "new_align_frame"},
0266     {NEW_NOTIFICATION, "new_notification"},
0267     {NEW_TEMPERATURE, "new_temperature"},
0268     {NEW_SCHEDULER_STATE, "new_scheduler_state"},
0269 
0270     {INVOKE_METHOD, "invoke_method"},
0271     {SET_PROPERTY, "set_property"},
0272     {GET_PROPERTY, "get_property"},
0273 
0274     {SET_CLIENT_STATE, "set_client_state"},
0275     {LOGOUT, "logout"},
0276 
0277     {GET_PROFILES, "get_profiles"},
0278     {START_PROFILE, "profile_start"},
0279     {STOP_PROFILE, "profile_stop"},
0280     {ADD_PROFILE, "profile_add"},
0281     {GET_PROFILE, "profile_get"},
0282     {DELETE_PROFILE, "profile_delete"},
0283     {UPDATE_PROFILE, "profile_update"},
0284     {SET_PROFILE_MAPPING, "profile_set_mapping"},
0285     {SET_PROFILE_PORT_SELECTION, "profile_set_port_selection"},
0286     {GET_PROFILE_PORT_SELECTION, "profile_get_port_selection"},
0287 
0288     {GET_SCOPES, "get_scopes"},
0289     {ADD_SCOPE, "scope_add"},
0290     {DELETE_SCOPE, "scope_delete"},
0291     {UPDATE_SCOPE, "scope_update"},
0292 
0293     {TRAIN_GET_ALL, "train_get_all"},
0294     {TRAIN_GET_PROFILES, "train_get_profiles"},
0295     {TRAIN_UPDATE, "train_update"},
0296     {TRAIN_SET, "train_set"},
0297     {TRAIN_ADD, "train_add"},
0298     {TRAIN_DELETE, "train_delete"},
0299     {TRAIN_RESET, "train_reset"},
0300     {TRAIN_CONFIGURATION_REQUESTED, "train_configuration_requested"},
0301     {TRAIN_ACCEPT, "train_accept"},
0302 
0303     {CAPTURE_PREVIEW, "capture_preview"},
0304     {CAPTURE_TOGGLE_VIDEO, "capture_toggle_video"},
0305     {CAPTURE_TOGGLE_CAMERA, "capture_toggle_camera"},
0306     {CAPTURE_TOGGLE_FILTER_WHEEL, "capture_toggle_filter_wheel"},
0307     {CAPTURE_START, "capture_start"},
0308     {CAPTURE_STOP, "capture_stop"},
0309     {CAPTURE_GET_SEQUENCES, "capture_get_sequences"},
0310     {CAPTURE_ADD_SEQUENCE, "capture_add_sequence"},
0311     {CAPTURE_REMOVE_SEQUENCE, "capture_remove_sequence"},
0312     {CAPTURE_CLEAR_SEQUENCES, "capture_clear_sequences"},
0313     {CAPTURE_SET_SETTINGS, "capture_set_settings"},
0314     {CAPTURE_SET_LIMITS, "capture_set_limits"},
0315     {CAPTURE_GET_LIMITS, "capture_get_limits"},
0316     {CAPTURE_SAVE_SEQUENCE_FILE, "capture_save_sequence_file"},
0317     {CAPTURE_LOAD_SEQUENCE_FILE, "capture_load_sequence_file"},
0318     {CAPTURE_GET_CALIBRATION_SETTINGS, "capture_get_calibration_settings"},
0319     {CAPTURE_SET_FILE_SETTINGS, "capture_set_file_settings"},
0320     {CAPTURE_GET_FILE_SETTINGS, "capture_get_file_settings"},
0321     {CAPTURE_GET_PREVIEW_LABEL, "capture_get_preview_label"},
0322     {CAPTURE_LOOP, "capture_loop"},
0323     {CAPTURE_GENERATE_DARK_FLATS, "capture_generate_dark_flats"},
0324 
0325     {MOUNT_PARK, "mount_park"},
0326     {MOUNT_UNPARK, "mount_unpark"},
0327     {MOUNT_ABORT, "mount_abort"},
0328     {MOUNT_SYNC_RADE, "mount_sync_rade"},
0329     {MOUNT_SYNC_TARGET, "mount_sync_target"},
0330     {MOUNT_GOTO_RADE, "mount_goto_rade"},
0331     {MOUNT_GOTO_TARGET, "mount_goto_target"},
0332     {MOUNT_GOTO_PIXEL, "mount_goto_pixel"},
0333     {MOUNT_SET_MOTION, "mount_set_motion"},
0334     {MOUNT_SET_TRACKING, "mount_set_tracking"},
0335     {MOUNT_SET_SLEW_RATE, "mount_set_slew_rate"},
0336     {MOUNT_CLEAR, "mount_clear"},
0337     {MOUNT_GET_ALL_SETTINGS, "mount_get_all_settings"},
0338     {MOUNT_SET_ALL_SETTINGS, "mount_set_all_settings"},
0339     {MOUNT_TOGGLE_AUTOPARK, "mount_toggle_autopark"},
0340 
0341     {DOME_PARK, "dome_park"},
0342     {DOME_UNPARK, "dome_unpark"},
0343     {DOME_GOTO, "dome_goto"},
0344     {DOME_STOP, "dome_stop"},
0345 
0346     {CAP_PARK, "cap_park"},
0347     {CAP_UNPARK, "cap_unpark"},
0348     {CAP_SET_LIGHT, "cap_set_light"},
0349 
0350     {FOCUS_START, "focus_start"},
0351     {FOCUS_CAPTURE, "focus_capture"},
0352     {FOCUS_STOP, "focus_stop"},
0353     {FOCUS_RESET, "focus_reset"},
0354     {FOCUS_IN, "focus_in"},
0355     {FOCUS_OUT, "focus_out"},
0356     {FOCUS_LOOP, "focus_loop"},
0357     {FOCUS_SET_ALL_SETTINGS, "focus_set_all_settings"},
0358     {FOCUS_GET_ALL_SETTINGS, "focus_get_all_settings"},
0359     {FOCUS_SET_CROSSHAIR, "focus_set_crosshair"},
0360 
0361     {SCHEDULER_GET_ALL_SETTINGS, "scheduler_get_all_settings"},
0362     {SCHEDULER_SET_ALL_SETTINGS, "scheduler_set_all_settings"},
0363     {SCHEDULER_GET_JOBS, "scheduler_get_jobs"},
0364     {SCHEDULER_ADD_JOBS, "scheduler_add_jobs"},
0365     {SCHEDULER_REMOVE_JOBS, "scheduler_remove_jobs"},
0366     {SCHEDULER_START_JOB, "scheduler_start_job"},
0367     {SCHEDULER_IMPORT_MOSAIC, "scheduler_import_mosaic"},
0368 
0369     {GUIDE_START, "guide_start"},
0370     {GUIDE_CAPTURE, "guide_capture"},
0371     {GUIDE_LOOP, "guide_loop"},
0372     {GUIDE_STOP, "guide_stop"},
0373     {GUIDE_CLEAR, "guide_clear"},
0374     {GUIDE_REPORT, "guide_report"},
0375     {GUIDE_SET_ALL_SETTINGS, "guide_set_all_settings"},
0376     {GUIDE_GET_ALL_SETTINGS, "guide_get_all_settings"},
0377     {GUIDE_SET_CALIBRATION_SETTINGS, "guide_set_calibration_settings"},
0378 
0379     {ALIGN_SOLVE, "align_solve"},
0380     {ALIGN_STOP, "align_stop"},
0381     {ALIGN_LOAD_AND_SLEW, "align_load_and_slew"},
0382     {ALIGN_SET_FILE_EXTENSION, "align_set_file_extension"},
0383     {ALIGN_SET_ALL_SETTINGS, "align_set_all_settings"},
0384     {ALIGN_GET_ALL_SETTINGS, "align_get_all_settings"},
0385     {ALIGN_SET_ASTROMETRY_SETTINGS, "align_set_astrometry_settings"},
0386     {ALIGN_MANUAL_ROTATOR_STATUS, "align_manual_rotator_status"},
0387     {ALIGN_MANUAL_ROTATOR_TOGGLE, "align_manual_rotator_toggle"},
0388 
0389     {PAH_START, "polar_start"},
0390     {PAH_STOP, "polar_stop"},
0391     {PAH_REFRESH, "polar_refresh"},
0392     {PAH_SET_CROSSHAIR, "polar_set_crosshair"},
0393     {PAH_SELECT_STAR_DONE, "polar_star_select_done"},
0394     {PAH_REFRESHING_DONE, "polar_refreshing_done"},
0395     {PAH_RESET_VIEW, "polar_reset_view"},
0396     {PAH_SLEW_DONE, "polar_slew_done"},
0397     {PAH_PAH_SET_ZOOM, "polar_set_zoom"},
0398     {PAH_SET_ALGORITHM, "polar_set_algorithm"},
0399 
0400     {OPTION_SET, "option_set"},
0401     {OPTION_GET, "option_get"},
0402 
0403     {SET_BLOBS, "set_blobs"},
0404 
0405     {DSLR_GET_INFO, "dslr_get_info"},
0406     {DSLR_SET_INFO, "dslr_set_info"},
0407     {DSLR_SET_MODE, "dslr_set_mode"},
0408 
0409     {GET_DSLR_LENSES, "get_dslr_lenses"},
0410     {DSLR_ADD_LENS, "dslr_add_lens"},
0411     {DSLR_DELETE_LENS, "dslr_delete_lens"},
0412     {DSLR_UPDATE_LENS, "dslr_update_lens"},
0413 
0414     {DEVICE_GET, "device_get"},
0415     {DEVICE_RESTART, "device_restart"},
0416     {DEVICE_BLOB_GET, "device_blob_get"},
0417     {DEVICE_PROPERTY_GET, "device_property_get"},
0418     {DEVICE_PROPERTY_SET, "device_property_set"},
0419     {DEVICE_PROPERTY_ADD, "device_property_add"},
0420     {DEVICE_PROPERTY_REMOVE, "device_property_remove"},
0421     {DEVICE_PROPERTY_SUBSCRIBE, "device_property_subscribe"},
0422     {DEVICE_PROPERTY_UNSUBSCRIBE, "device_property_unsubscribe"},
0423     {DEVICE_MESSAGE, "device_message"},
0424 
0425     {DIALOG_GET_INFO, "dialog_get_info"},
0426     {DIALOG_GET_RESPONSE, "dialog_get_response"},
0427 
0428     {FM_GET_DATA, "fm_get_data"},
0429     {FM_SET_DATA, "fm_set_data"},
0430 
0431     {ASTRO_GET_ALMANC, "astro_get_almanac"},
0432     {ASTRO_SEARCH_OBJECTS, "astro_search_objects"},
0433     {ASTRO_GET_OBJECT_INFO, "astro_get_object_info"},
0434     {ASTRO_GET_OBJECTS_INFO, "astro_get_objects_info"},
0435     {ASTRO_GET_OBJECTS_IMAGE, "astro_get_objects_image"},
0436     {ASTRO_GET_SKYPOINT_IMAGE, "astro_get_skypoint_image"},
0437     {ASTRO_GET_OBJECTS_OBSERVABILITY, "astro_get_objects_observability"},
0438     {ASTRO_GET_OBJECTS_RISESET, "astro_get_objects_riseset"},
0439 
0440     {DARK_LIBRARY_START, "dark_library_start"},
0441     {DARK_LIBRARY_STOP, "dark_library_stop"},
0442     {DARK_LIBRARY_SET_CAMERA_PRESETS, "dark_library_set_camera_presets"},
0443     {DARK_LIBRARY_GET_CAMERA_PRESETS, "dark_library_get_camera_presets"},
0444     {DARK_LIBRARY_SET_ALL_SETTINGS, "dark_library_set_all_settings"},
0445     {DARK_LIBRARY_GET_ALL_SETTINGS, "dark_library_get_all_settings"},
0446     {DARK_LIBRARY_GET_DEFECT_SETTINGS, "dark_library_get_defect_settings"},
0447     {DARK_LIBRARY_SET_DEFECT_PIXELS, "dark_library_set_defect_pixels"},
0448     {DARK_LIBRARY_GET_VIEW_MASTERS, "dark_library_get_view_masters"},
0449     {DARK_LIBRARY_GET_MASTERS_IMAGE, "dark_library_get_masters_image"},
0450     {DARK_LIBRARY_CLEAR_MASTERS_ROW, "dark_library_clear_masters_row"},
0451     {DARK_LIBRARY_SET_DEFECT_FRAME, "dark_library_set_defect_frame"},
0452     {DARK_LIBRARY_SAVE_MAP, "dark_library_save_map"}
0453 };
0454 
0455 }