//---------------------------------------------------------------------------

#ifndef monitoringH
#define monitoringH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <stdio.h>
#include <dos.h>
#include <dir.h>
#include <math.h>
#include "..\\main\\main.h"
#include "..\\scn\\scn.h"
#include "..\\radar\\adcdac.h"
#include "..\\afh\\AFHforHFA.h"
#include "..\\obrion\\obrion.h"
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Buttons.hpp>
#include <ScktComp.hpp>
//---------------------------------------------------------------------------
class TMon : public TForm
{
__published:	// IDE-managed Components
        TStatusBar *StatusBar1;
        TTimer *Timer1;
        TPanel *Panel1;
        TCheckBox *CheckBox1;
        TEdit *Edit1;
        TLabel *Label1;
        TLabel *Label2;
        TComboBox *ComboBox1;
        TButton *Button1;
        TLabel *Label4;
        TComboBox *ComboBox2;
        TCheckBox *CheckBox2;
        TLabel *Label3;
        TEdit *Edit2;
        TButton *Button2;
        TProgressBar *ProgressBar1;
        TClientSocket *ClientSocket;
        TButton *Button3;
        TButton *Button4;
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall ComboBox2Change(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
        struct date dd;
        struct time tt;
        int tz[20], Nz, YN;
        int Nst[16], Nst0[16];
        int ynm, ntm, tm, mm, ss, yns, ms, ns;
        int Nfile[1000], Nzap[1000], smm[100];
        int Sverh[1000], SXverh[1000], SEniz[1000], SEsniz[1000];
        float TabFreq[10000], freq[100];
        short Signal[1000000][2];
        float amp[60000], Amp[1000];
        int data[26];
        short SledR[1000][2], SledS[1000][2];
        short samples[1000000][2];
        char buff[16000];
        float FoE[96], FoF2[96], FxF2[96];
        short IOverh[1000], JOverh[1000], IXverh[1000], JXverh[1000];
        short IEniz[1000], JEniz[1000], IEs[1000], JEs[1000];
        struct scn1
        {
                float fmin; // минимальная частота, кГц
                float fmax; // максимальная частота, кГц
                int flag_pd; // выбор по проценту изменения частоты - 0 или линейному шагу изменения частоты - 1
                float q; // процент изменения частоты, %
                float df; // шаг изменения частоты, кГц
                int ti; // длительность зондирующего импульса, мс
                int nf; // количество частот в группе
                int flag_it; // приоритет по количеству групп в импульсе - 0 или по длительности группы - 1
                int ng; // количество групп в импульсе
                int dt; // длительность группы, мкс
                int pdt; // длительность нараствния и убывания фронта импульса, нс
                int N_rep; // количество повторов
                int nF; // количество зондируемых частот
                char reseiv[204]; // резерв в байтах
        } scn;  // 256 байта
        struct Pars1
        {
                char Ver[8]; // версия программы
                int year; // дата регистрации ионограммы
                int mon;
                int day;
                int hour; // время регистрации ионограммы
                int min;
                int sec;
                float fmin; // минимальная частота, кГц
                float foF2; // критическая частота O F2-слоя, кГц
                float fxF2; // критическая частота X F2-слоя, кГц
                float foF1; // критическая частота 0 F1-слоя, кГц
                float fxF1; // критическая частота X F1-слоя, кГц
                float foE; // критическая частота O E-слоя, кГц
                float fxE; // критическая частота X E-слоя, кГц
                float foEs; // критическая частота 0 Es-слоя, кГц
                float fxEs; // критическая частота X Es-слоя, кГц
                float fbEs; // критическая частота X Es-слоя, кГц
                float hF2; // действующая высота F2, км
                float hF1; // действующая высота F1, км
                float hE; // действующая высота E, км
                float hEs; // действующая высота Es, км
                int M3000F1; // M3000 F1
                int M3000F2; // M3000 F2
                int I; // индекс частоты разделения E и F2 слоев
                int J; // индекс высоты разделения E и F2 слоев
                int IsE; // индекс начала E следа
                int InE; // количество точек в E следе
                int IsoF2; // индекс начала O-компоненты F2 следа
                int InoF2; // количество точек O-компоненты в F2 следе
                int IsxF2; // индекс начала X-компоненты F2 следа
                int InxF2; // количество точек X-компоненты в F2 следе
                int IsEs; // индекс начала Es следа
                int InEs; // количество точек в Es следе
                char reseiv[120]; // резерв в байтах
        } Pars; // 256 байт
        int DayYear(int year, int mon, int day);
        void ReadIonPars(void);
        void SaveIonPars(void);
        void ReadPar(void);
        void Raschet_TabFreq(void);
        void ReadTime(void);
        void CreatScen(void);
        void Del_bin(void);
        void Sounding(void);
        void CalSignal(void);
        void CalSignal2(void);
        void HeadrFTP(FILE *f0);
        void SendFileToServer(char *file);
        void SaveIon2(int year, int mon, int day, int hour, int min, int sec);
        void ReadFile(char *file);
        void RadioSounding(void);
        __fastcall TMon(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TMon *Mon;
//---------------------------------------------------------------------------
#endif
