00001 /* 00002 00003 LOFAR/DEMON calculation server, header 00004 Copyright (C) 2000-2003 Jussi Laako 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 00020 */ 00021 00022 00023 #include <Alloc.hh> 00024 #include <dsp/DSPOp.hh> 00025 #include <dsp/Filter.hh> 00026 #include <dsp/ReBuffer.hh> 00027 #include <dsp/RecDecimator.hh> 00028 #include <dsp/IIRCascade.hh> 00029 #include <dsp/FlipBand.hh> 00030 00031 #include "Config.h" 00032 #include "LocalMsg.h" 00033 #include "CfgFile.hh" 00034 #include "Messages.hh" 00035 #include "RemoveNoise.hh" 00036 #include "SockClie.hh" 00037 #include "SockOp.hh" 00038 00039 00040 #ifndef LOFARDEMON_HH 00041 #define LOFARDEMON_HH 00042 00043 00047 class clLofarDemon 00048 { 00049 bool bReverseOrder; 00050 int iFilterType; 00051 int iDCBlock; 00052 int iNormIdx; 00053 int iNormHistCount; 00054 long lFilterSize; 00055 long lDecimation; 00056 long lDemonDecimation; 00057 long lWinSize; 00058 long lSpectSize; 00059 long lNewDataSize; 00060 long lOldDataSize; 00061 long lAvgCntr; 00062 long lHistCntr; 00063 GDT *fpWinFunc; 00064 GDT *fpDataBuf; 00065 GDT *fpSpectRes; 00066 GDT *fpLofarRes; 00067 GDT *fpNormHist; 00068 stRawDataFirst sDataHdr; 00069 stLofarReq sLofarRq; 00070 stLofarRes sLofarResHdr; 00071 clDSPAlloc WinFunc; 00072 clDSPAlloc DataBuf; 00073 clDSPAlloc SpectRes; 00074 clDSPAlloc LofarRes; 00075 clDSPAlloc HistoryBuf; 00076 clDSPAlloc NormHist; 00077 clCfgFile Cfg; 00078 clDSPOp DSP; 00079 clLofarMsg LofarMsg; 00080 clReBuffer ReBuffer; 00081 clRecDecimator Decimator; 00082 clRecDecimator DemonDecimator; 00083 clIIRCascade DCBlockIIR; 00084 clFlipBand FlipBand; 00085 clRemoveNoise RemoveNoise; 00086 clSockClie SockClie; 00087 clSockOp SOpRequest; 00088 clSockOp SOpResult; 00089 clSockOp SOpData; 00090 bool GetRequestMsg (); 00091 bool GetDataHdr (); 00092 bool Initialize (); 00093 bool InitFilter (); 00094 bool InitFFT (); 00095 int MainLoop (); 00096 void CalcSpect (); 00097 bool SendResults (); 00098 void PutData (GDT *, long); 00099 bool PullData (GDT *, long); 00100 void DemonProc (GDT *, long); 00101 void SpectStdDev (GDT *); 00102 public: 00103 volatile bool bRun; 00104 clLofarDemon (int, int); 00105 ~clLofarDemon (); 00106 int Exec (); 00107 }; 00108 00109 #endif 00110
1.3.3