00001 00009 /*************************************************************************** 00010 * * 00011 * This library is free software; you can redistribute it and/or * 00012 * modify it under the terms of the GNU Lesser General Public * 00013 * License as published by the Free Software Foundation; either * 00014 * version 2.1 of the License, or (at your option) any later version. * 00015 * * 00016 * This library is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00019 * Lesser General Public License for more details. * 00020 * * 00021 * You should have received a copy of the GNU Lesser General Public * 00022 * License along with this library; if not, write to the Free Software * 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 00024 * MA 02111-1307 USA * 00025 * * 00026 ***************************************************************************/ 00027 00028 00029 #include "basicdevicefactory.h" 00030 #include "basicdevice.h" 00031 #include "phbib.h" 00032 #include "signals.h" 00033 #include "matrix.h" 00034 #include "matrixseq.h" 00035 00036 00037 00038 using namespace simth; 00039 //using namespace simthlib; 00040 namespace mimo { 00041 00042 class CalcPCSValues : public Device 00043 { 00044 protected: 00045 unsigned nr_rx, nr_tx, nr_values, nr_param, num_carrier; 00046 bool easy_alg, diff_extr; 00047 CMatrixSeq::storage_type* U_old; 00048 00049 public: 00050 CalcPCSValues(int deviceID, DeviceSystemIntf* system, 00051 const PropertyList& pl); 00052 00053 void updateInputLengths() 00054 { setInputLength(outputLength()); }; 00055 void updateOutputLengths() 00056 { setOutputLength(inputLength()); }; 00057 00058 void process(); 00059 00060 00061 00062 }; 00063 }