#include #include #include "simulateFlux.h" #include "power.h" #include "initialParameters.h" #include "queue.h" #include "average.h" #include "growthRate.h" bool rawDataWriteFlag; int nRow = 500; int nCol = 1; double freqEch = 250; Pqueue firstRawDataQueue; bool selectionCaptors[] = {true,false,true,false,false,false,true,false}; int cptData = 0; int cptFile = 1; double period = 0; double invTimeBandWidth = 0; void *threadCalculPower(void *vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; while(rawDataWriteFlag){ while(queueGetNextE(rawDataQueue) != NULL){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); powerFunction(fileName, NULL); remove(fileName); } } } void *threadCalculAverage(void *vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; while(rawDataWriteFlag){ while(queueGetNextE(rawDataQueue) != NULL){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); averageThreadFunction(fileName); remove(fileName); } } } void *threadCalculBoth(void *vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; while(rawDataWriteFlag){ while(queueGetNextE(rawDataQueue) != NULL){ printf("ertyu\n"); rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); powerFunction(fileName, NULL); averageThreadFunction(fileName); remove(fileName); } } } void *threadCalculGrowthRate(void * vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; //double pw[nCol-1]; double *dataLign[2][nCol-1]; int i = 0; while(rawDataWriteFlag){ //add case first file traitement //(possibility 1: call twice powerfunction , following while strat after 2 file encountered) //(posibilty 2 : initialiaze with a 0-fill array, move ligns for first encounter then let the following whil e do the job) while(queueGetNextE(rawDataQueue) != NULL){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); if(i < 2){ if(i == 1){ powerFunction(fileName, dataLign[1]); growthRateFunction(**dataLign); }else{ powerFunction(fileName, dataLign[0]); } i++; }else{ for(int y = 0; y < (nCol-1); y++){ dataLign[0][y] = dataLign[1][y]; } powerFunction(fileName, dataLign[1]); growthRateFunction(**dataLign); } remove(fileName); } } } int main(int argc , char** argv){ for(int i = 0 ; i < 8 ; i++){ if(selectionCaptors[i]){ nCol++; } } rawDataWriteFlag = true; period = 1 / freqEch; invTimeBandWidth = 1 /(nRow * period); firstRawDataQueue = queueCreateEmpty(); // change this for create empty pthread_t rawData; pthread_create(&rawData , NULL, threadSimulateFlux, (void *)&rawData); pthread_t calcul; pthread_create(&calcul , NULL, threadCalculBoth, (void *)&calcul); pthread_exit(NULL); }