m0zah/GB3TX/repeater.h
2024-05-06 11:28:43 +01:00

92 lines
1.4 KiB
C

#ifndef REPEATER_H
#define REPEATER_H
typedef enum {
SLEEP,
IDLE,
KEYCHUNK,
HANG,
GW,
TT,
TOT,
}state;
typedef enum {
TONE,
CW,
NONE,
}c_type;
typedef struct {
c_type courtesy;
int close_down;
int cw_pitch;
int cw_speed;
int pip_length;
char pip_letter;
int pip_pitch;
int pip_speed;
int pip_gw_length;
char pip_gw_letter;
int pip_gw_pitch;
int start_up;
}params;
typedef struct {
unsigned long tx_start;
unsigned long rx_start;
unsigned long gw_start;
}timer;
typedef struct {
unsigned long tx_time;
unsigned long rx_time;
unsigned long gw_time;
}stats;
typedef struct {
bool tx;
unsigned long long tx_time;
}transmitter;
typedef struct {
int id;
bool rx;
unsigned long long rx_time;
}receiver;
typedef struct {
bool enable;
unsigned long speed;
}serial;
typedef struct {
bool enable;
receiver receiver;
transmitter transmitter;
}gateway;
typedef struct {
char* callsign;
gateway gateway;
unsigned long id_time;
state last;
params params;
receiver receiver;
serial serial;
stats stats;
state state;
timer timer;
transmitter transmitter;
unsigned long tail;
}repeater;
typedef struct {
byte type;
stats* stats;
bool transmitter;
bool receiver;
bool gateway;
}info;
#endif