Files
small_tel/Daemons/10micron_stellarium/mount.h
2026-09-28 17:50:25 +03:00

93 lines
2.6 KiB
C

/*
* This file is part of the mountdaemon_10micron project.
* Copyright 2026 Edward V. Emelianov <edward.emelianoff@gmail.com>.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <weather_data.h>
#include "angles.h"
// input coordinates lifetime - 24hrs
#define COORDS_OLD_T (86400)
// make datetime/pressure/temperature corrections each CORRECTIONS_TIMEDIFF seconds
#define CORRECTIONS_TIMEDIFF (3600)
// mount statuses
typedef enum{
MNT_S_TRACKING = 0,
MNT_S_STOPHOM = 1,
MNT_S_PARKING = 2,
MNT_S_UNPARKING = 3,
MNT_S_HOMING = 4,
MNT_S_PARKED = 5,
MNT_S_SLEWING = 6,
MNT_S_STOPPED = 7,
MNT_S_INHIBITED = 8,
MNT_S_OUTLIMIT = 9,
MNT_S_FOLSAT = 10,
MNT_S_DATINCOSIST = 11,
MNT_S_ERROR = 12, // status 98/99 (>11)
MNT_S_OFF, // not responding -> off
MNT_S_STATAMOUNT // number of statuses
} mount_status_t;
void set_emulation_mode();
bool mount_setInpHA(double ha);
bool mount_setInpRA(double ra);
bool mount_setInpDec(double dec);
bool mount_setInpA(double A);
bool mount_setInpZ(double Z);
bool mount_setInpMJD(double m);
double mount_getInpCoords(polarCrds_t *c);
double mount_getTagCoords(polarCrds_t *c);
double mount_getInpMJD(double *MJD);
double mount_getInpHor(horizCrds_t *c);
bool mount_set_name(const char *name);
void mount_get_name(char *nm, size_t l);
bool mount_set_dev(char *dev, int speed, double timeout);
const char* mount_status_str(mount_status_t st);
mount_status_t mount_status();
bool mount_connect();
void mount_disconnect();
bool mount_getcoords(double *ra, double *dec);
bool mount_getaz(double *a, double *z);
bool mount_corrdata(weather_data_t *w);
bool mount_getpierside(char *Ps, size_t len);
bool mount_point(double ra, double dec);
bool mount_pointAZ(double A, double Z);
bool mount_stop();
bool mount_tracking_stop();
bool mount_tracking_start();
bool mount_park();
bool mount_setParkAz(double az);
bool mount_setParkZD(double zd);
void mount_getPark(horizCrds_t *c);
bool mount_shutdown();