/*
 * This file is part of the baader_dome 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 <usefull_macros.h>

// size of weather/status buffers
#define STATBUF_SZ      256
// dome polling interval (clear watchdog & get status)
#define T_INTERVAL      (5.0)

typedef struct{
    int errcode;    // error code
    char status[STATBUF_SZ]; // device status
    double stattime;// time of last status
    char weather[STATBUF_SZ];  // data from weather sensor
} dome_data_t;

int get_dome_data(dome_data_t *d);
void runserver(int isunix, const char *node, int maxclients);
void stopserver();
void forbid_observations(int forbid);
