/* */ /* 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 /* Количество тиков за полный */ /* период модуляции */