/* */ /* pas.h */ /* */ /* 18 07 1992 */ /* */ /* (C) BEAM */ /* */ #define VER "SoftPAS 1.1 (C) BEAM " /* Ограничения */ #define COUNTPAS 8 /* Количество стволов */ #define COUNTCHANNELinPAS 8 /* Количество каналов в стволе */ #define COUNTCHANNEL 64 /* Максимальное количество каналов */ #define COUNTCW 10 /* Максимальное количество /* переключений */ #define COUNTCOM 8 /* Максимальное количество команд */ #define COUNTALF 8 /* Количество значений усиления НЧ */ #define COUNT_WORD_HEADER 8 /* Длина в словах служебного префикса */ /* буфера данных */ /* Идентификатор "PAS " - 2 */ /* Номер блока - 1 */ /* Номер тика - 2 */
#ifndef GRAD_DEFINED
typedef struct
{
short Grad, Min, Sec, hSec;
}
GRAD;
#define GRAD_DEFINED
#endif
#ifndef TIME_DEFINED
typedef struct
{
short Hour, Min, Sec, hSec;
}
TIME;
#define TIME_DEFINED
#endif
#ifndef ASTRDATA_DEFINED
typedef struct
{
TIME TCulm; /* Время всемирное */
TIME TSCulm; /* Местное среднее звездное время */
GRAD Altitude; /* Высота с рефракцией */
GRAD RightAscension; /* Видимое прямое восхождение без рефракции */
GRAD Declination; /* Видимое склонение без рефракции */
double RSourse; /* Видимый радиус источника сек.дуги) */
double TimePassage; /* Время прохождения радиуса источника (зв.сек.)*/
double VRightAscension; /* Часовое изменение прямого восхождения */
/* (сек/час) */
double VDeclination; /* Часовое изменение склонения (угл.сек./час) */
}
ASTRDATA;
#define ASTRDATA_DEFINED
#endif
#ifndef HEADER_DEFINED
typedef struct
{
char Version[32]; /* Версия системы регистрации */
short Year, Month, Day; /* Дата наблюдения */
char Source[32]; /* Название источника */
GRAD AerialAltitude; /* Высота антенны */
short nAzimuth; /* Номер азимута */
GRAD Azimuth; /* Азимут */
char Observer[32]; /* Наблюдатель */
short Antenna; /* Конфигурация антенны: */
/* 1 - север */
/* 2 - юг+перископ */
short Cabin; /* Номер облучателя */
short Carriage; /* Положение каретки */
short HornPosition[COUNTCHANNEL];/* Выносы из фокуса */
/* (мм, < 0 - к западу) */
short CondTime; /* Резерв (=0) */
short CountChannel; /* Количество каналов */
unsigned char ChannelOn[COUNTCHANNEL];
/* Конфигурация каналов */
/* 1 - канал включен */
/* 0 - канал выключен */
short ChannelPAS[COUNTCHANNEL]; /* Номера стволов по каналам */
double ChFreq[COUNTCHANNEL]; /* Частоты по каналам */
unsigned Tau[COUNTPAS]; /* Начальная постоянная времени */
/* по стволам */
unsigned AmpLF[COUNTPAS]; /* Начальные значения усиления НЧ */
/* по стволам */
unsigned AddrPAS[COUNTPAS]; /* Адреса стволов */
unsigned AddrCom[COUNTCOM*COUNTPAS];/* Адреса команд */
unsigned TableAmpLF[COUNTALF*COUNTPAS];/* Таблица значений усиления НЧ */
/* по возрастанию */
unsigned TableTau[COUNTTAU]; /* Таблица команд для tau */
unsigned StartModLeft; /* Включение модулятора "левый" */
unsigned StartModRight; /* Включение модулятора "правый" */
short Frequency; /* Частота модуляции */
short CountSum; /* Количество точек суммирования */
short CountFilesCalibr; /* Количество файлов с данными калибровок*/
short CountFilesData; /* Количество файлов с данными */
unsigned FlagError; /* Флаг ошибки */
short FlagOvf[COUNTCHANNEL]; /* Флаги зашкала по каналам */
}
HEADER;
#define HEADER_DEFINED
#endif
#define BUFFER_DATA_SIZE 4096 /* размер буфера данных */
#define BUFFER_COMMAND_SIZE 512 /* размер буфера команд */
#define ADDRMOD 0
#define ADDRALF 1
#define ADDRTAU 2
/* Постоянная времени */
#define TAU1 0
#define TAU2 1
#define TAU1plusTAU2 2
/* Модуляторы */
#define MODLEFT 0
#define MODRIGHT 1
#define COUNT_TICK_CYCLE 8 /* Количество тиков за полный */
/* период модуляции */