From 05a9142c7ee76560537a0cf9e83cbed0c305bec3 Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Tue, 14 Jun 2022 10:24:59 +0200 Subject: [PATCH] add average thread --- Code-C/Makefile | 2 +- Code-C/average.c | 32 ++++++++++++++++++++++++++++++++ Code-C/average.h | 4 ++++ Code-C/fileGestion.c | 4 ++-- Code-C/fileGestion.h | 2 +- Code-C/main | Bin 24600 -> 24840 bytes Code-C/main.c | 35 ++++++++++++++++++++++++++++++++--- Code-C/power.c | 3 +-- Code-C/power.h | 3 +-- Code-C/simulateFlux.c | 2 +- 10 files changed, 75 insertions(+), 12 deletions(-) create mode 100644 Code-C/average.c create mode 100644 Code-C/average.h diff --git a/Code-C/Makefile b/Code-C/Makefile index abeb975..6107882 100644 --- a/Code-C/Makefile +++ b/Code-C/Makefile @@ -1,7 +1,7 @@ CC = gcc all: - $(CC) fileGestion.c getArray.c power.c queue.c simulateFlux.c main.c -lm -lpthread -o main + $(CC) fileGestion.c getArray.c average.c power.c queue.c simulateFlux.c main.c -lm -lpthread -o main # $(CC) queue.c simulateFlux.c main.c -lm -lpthread -o main ./main < ../02400031.TXT \ No newline at end of file diff --git a/Code-C/average.c b/Code-C/average.c new file mode 100644 index 0000000..7d228fd --- /dev/null +++ b/Code-C/average.c @@ -0,0 +1,32 @@ +#include "average.h" +#include "getArray.h" +#include "fileGestion.h" +#include "initialParameters.h" +#include "queue.h" +#include + +void averageCalculation(long **p, double averageArray[] , int N, int M){ + for(int i = 0; i < M-1; i++){ + int j = 0; + averageArray[i] = 0; + while(j < N){ + averageArray[i] += p[i][j]; + j++; + } + averageArray[i] /= N; + //printf("%f\n", powerArray[i]); + } +} +bool average(char* rawDataFileName,int N , int M){ + long **p = getRawDataArray(rawDataFileName,N, M); + double aver[8]; + if(p !=NULL){ + averageCalculation(p,aver,N,M); + writeDataInFile("averageData.csv",aver,8); + freeArray(p,N); + return true; + } + else{ + return false; + } +} \ No newline at end of file diff --git a/Code-C/average.h b/Code-C/average.h new file mode 100644 index 0000000..7ae6f90 --- /dev/null +++ b/Code-C/average.h @@ -0,0 +1,4 @@ +#include +#include + +bool average(char* rawDataFileName,int N , int M); \ No newline at end of file diff --git a/Code-C/fileGestion.c b/Code-C/fileGestion.c index 5a54c0c..1d1d73d 100644 --- a/Code-C/fileGestion.c +++ b/Code-C/fileGestion.c @@ -26,8 +26,8 @@ void clearRawData(int nRow){ * @param powerArray * @param nCol size of the power array, correspond to the number of captor used */ -void writePowerData(double powerArray[], int nCol){ - FILE *f = fopen("powerData.csv","a+"); +void writeDataInFile(char* fileName , double powerArray[], int nCol){ + FILE *f = fopen(fileName,"a+"); for(int i = 0 ; i < nCol ; i++){ if( i < nCol-1){ fprintf(f, "%f , ", powerArray[i]); diff --git a/Code-C/fileGestion.h b/Code-C/fileGestion.h index afebd10..b001d93 100644 --- a/Code-C/fileGestion.h +++ b/Code-C/fileGestion.h @@ -5,4 +5,4 @@ void clearRawData(int N); -void writePowerData(double a[], int N); \ No newline at end of file +void writeDataInFile(char* fileName , double a[], int N); \ No newline at end of file diff --git a/Code-C/main b/Code-C/main index b7250cc5072f814d1b5c12a495bc4320d1294683..45755a38c8213233c34a258d84a084c5e99a0d7a 100755 GIT binary patch delta 7601 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 F@P8Lfb!Y$p delta 6644 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 diff --git a/Code-C/main.c b/Code-C/main.c index 86ff80a..de1b7eb 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -4,9 +4,10 @@ #include "power.h" #include "initialParameters.h" #include "queue.h" +#include "average.h" bool rawDataWriteFlag; -int nRow = 100000; +int nRow = 500; int nCol = 9; double freqEch = 250; @@ -21,7 +22,7 @@ int cptFile = 1; double period = 0; double invTimeBandWidth = 0; -void *threadCalcul(void *vargp){ +void *threadCalculPower(void *vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; while(rawDataWriteFlag){ @@ -29,6 +30,34 @@ void *threadCalcul(void *vargp){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); power(fileName,nRow,nCol,period,invTimeBandWidth); + remove(fileName); + } + } +} + +void *threadCalculAverage(void *vargp){ + Pqueue rawDataQueue = firstRawDataQueue; + char* fileName; + while(rawDataWriteFlag){ + while(queueGetNextE(rawDataQueue) != NULL){ + rawDataQueue = queueGetNextE(rawDataQueue); + fileName = queueGetTabChar(rawDataQueue); + average(fileName,nRow,nCol); + remove(fileName); + } + } +} + +void *threadCalculBoth(void *vargp){ + Pqueue rawDataQueue = firstRawDataQueue; + char* fileName; + while(rawDataWriteFlag){ + while(queueGetNextE(rawDataQueue) != NULL){ + rawDataQueue = queueGetNextE(rawDataQueue); + fileName = queueGetTabChar(rawDataQueue); + power(fileName,nRow,nCol,period,invTimeBandWidth); + average(fileName,nRow,nCol); + remove(fileName); } } } @@ -45,7 +74,7 @@ int main(int argc , char** argv){ pthread_create(&rawData , NULL, simulateFlux, (void *)&rawData); pthread_t calcul; - pthread_create(&calcul , NULL, threadCalcul, (void *)&calcul); + pthread_create(&calcul , NULL, threadCalculBoth, (void *)&calcul); pthread_exit(NULL); } \ No newline at end of file diff --git a/Code-C/power.c b/Code-C/power.c index 7852277..6d836e6 100644 --- a/Code-C/power.c +++ b/Code-C/power.c @@ -24,9 +24,8 @@ bool power(char* rawDataFileName,int N , int M, double periode , double invTimeB double pw[8]; if(p !=NULL){ powerCalculation(p,pw,N,M,periode,invTimeBandwidth); - writePowerData(pw,8); + writeDataInFile("powerData.csv",pw,8); freeArray(p,N); - remove(rawDataFileName); return true; } else{ diff --git a/Code-C/power.h b/Code-C/power.h index 2e0e3ad..51e4dae 100644 --- a/Code-C/power.h +++ b/Code-C/power.h @@ -1,5 +1,4 @@ #include #include -bool power(char* rawDataFileName,int N , int M, double periode , double invTimeBandwidth); -void *threadCalcul(void *vargp); \ No newline at end of file +bool power(char* rawDataFileName,int N , int M, double periode , double invTimeBandwidth); \ No newline at end of file diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c index 28e1980..92935c9 100644 --- a/Code-C/simulateFlux.c +++ b/Code-C/simulateFlux.c @@ -105,7 +105,7 @@ bool writeOneRawData(FILE *rawDataFile){ } } cptData++; - //sleep(0.004); //simul la freq ech + sleep(0.004); //simul la freq ech return true; } else {