#ifndef _CINTERLEAVER_H #define _CINTERLEAVER_H /*Values for modulation parameter. Indicate the number of bits per symbol*/ #define _BPSK 1 #define _QPSK 2 #define _16QAM 4 #define _64QAM 6 #define NO_MOD 7 //CONTROL INTERLEAVER //////////////////////////////////////////////////////////////////////////////// ///////////////////////DATA CONTROL///////////////////////////////////////////// /*Define the module control parameters*/ typedef struct //Defined according the control out needs// { int ninputdata; //Number of input data bytes// //Ncbps: Number of coded bits per the allocated subchannels int noutputdata; //Number of output data bytes// //Ncpc: Number of coded bits per subcarrier int modulation; //Number of bits per simbol }CData_inter; //CONTROL DATA VITERBI DECODER //////////////////////////////////////////////////////////////////////////////// ///////////////////////EXECUTION CONTROL//////////////////////////////////////// /*Define the execution control parameters*/ #define NONACTIVE 0 #define ACTIVE 1 /*Defines a module as active*/ #define TEST_FLOW 2 /*Test flows: Bypass data flow mode*/ #define TEST_PROCESS 3 /*Test Module Process*/ typedef struct //Defined according the control out needs { int status; //Define the status int timeslot; //Define the timeslot to produce the change }CExec_inter; //CONTROL EXECUTION VITERBI DECODER //////////////////////////////////////////////////////////////////////////////// ///////////////////////CONTROL TYPE///////////////////////////////////////////// typedef struct //Defined according the control out needs { CData_inter CData; CExec_inter CExec; }CInter; //Control interleaver functionality #endif