From e23d744cdc5b66a309b20167742b132efb00e4be Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Thu, 16 Jun 2022 14:35:02 +0200 Subject: [PATCH 1/5] beginning change power --- Code-C/getArray.c | 15 +++++++++++++-- Code-C/getArray.h | 3 ++- Code-C/growthRate.c | 15 ++++++++------- Code-C/growthRate.h | 2 +- Code-C/main | Bin 0 -> 41872 bytes Code-C/main.c | 23 +++++++++++------------ Code-C/power.c | 15 ++++++++++----- Code-C/power.h | 2 +- Code-C/simulateFlux.c | 4 ++-- 9 files changed, 48 insertions(+), 31 deletions(-) create mode 100755 Code-C/main diff --git a/Code-C/getArray.c b/Code-C/getArray.c index eeaac8e..7284378 100644 --- a/Code-C/getArray.c +++ b/Code-C/getArray.c @@ -3,7 +3,7 @@ #include "initialParameters.h" //#include -long **get(int N, int M) /* Allocate the array */ +long **getlongArray(int N, int M) /* Allocate the array */ { /* Check if allocation succeeded. (check for NULL pointer) */ int i; @@ -14,6 +14,17 @@ long **get(int N, int M) /* Allocate the array */ return array; } +double **getDoubleArray(int N, int M) /* Allocate the array */ +{ + /* Check if allocation succeeded. (check for NULL pointer) */ + int i; + double **array; + array = (double **) malloc(N*sizeof(double *)); + for(i = 0 ; i < N ; i++) + array[i] = (double *) malloc( M*sizeof(double)); + return array; +} + void fillArrayWithRawData(char *rawDataFileName,long** p, int N, int M) { int i, j; char *buffer; @@ -86,7 +97,7 @@ void freeArray(long **p, int N) { */ long **getRawDataArray(char* rawDataFileName){ long **p; - p = get(nRow, nCol); + p = getlongArray(nRow, nCol); fillArrayWithRawData(rawDataFileName,p ,nRow, nCol); //if(checkArrayFullyFill(p,nRow)){ //clearRawData(N); diff --git a/Code-C/getArray.h b/Code-C/getArray.h index 02810a9..a53bd0c 100644 --- a/Code-C/getArray.h +++ b/Code-C/getArray.h @@ -8,4 +8,5 @@ long **getRawDataArray(char *rawDataFileName); void printArrayData(long** p, int N, int M); void freeArray(long **p, int N); -bool checkArrayFullyFill(long **p, int N ); \ No newline at end of file +bool checkArrayFullyFill(long **p, int N ); +double **getDoubleArray(int N, int M); \ No newline at end of file diff --git a/Code-C/growthRate.c b/Code-C/growthRate.c index c381864..8fcca10 100644 --- a/Code-C/growthRate.c +++ b/Code-C/growthRate.c @@ -9,16 +9,17 @@ * @param gRateArray array that contaigns results of the growth ratecalculation */ void growthRateCalculation(double **dataArray , double *gRateArray){ - double gRate = 0; for(int i = 0 ; i < nCol-1 ; i++){ - gRate = (dataArray[1][i] - dataArray[2][i]) / period; + gRateArray[i] = (dataArray[0][i] - dataArray[1][i]) / period; } } - -void growthRateFunction(double *dataLign){ - double **dataArray; - //initialization + fill +/** + * @brief calcul then print differentiate in csv + * + * @param dataLign + */ +void growthRateFunction(double **dataLign){ double gRateArray[nCol-1]; - growthRateCalculation(dataArray , gRateArray); + growthRateCalculation(dataLign , gRateArray); appendDataInFile("growthRate.csv",gRateArray , nCol-1); } \ No newline at end of file diff --git a/Code-C/growthRate.h b/Code-C/growthRate.h index 1e0b201..7979f21 100644 --- a/Code-C/growthRate.h +++ b/Code-C/growthRate.h @@ -1,4 +1,4 @@ #include #include -void growthRateFunction(double *dataLign); \ No newline at end of file +void growthRateFunction(double **dataLign); \ No newline at end of file diff --git a/Code-C/main b/Code-C/main new file mode 100755 index 0000000000000000000000000000000000000000..640008a6248823e31c5af521edcfbba984debc5d GIT binary patch literal 41872 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 SWRjJSKO{Jo*$UV|?f(I4zMJO& literal 0 HcmV?d00001 diff --git a/Code-C/main.c b/Code-C/main.c index 1bacd00..1a42c18 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -6,14 +6,15 @@ #include "queue.h" #include "average.h" #include "growthRate.h" +#include "getArray.h" bool rawDataWriteFlag; -int nRow = 500; +int nRow = 4; int nCol = 1; double freqEch = 250; Pqueue firstRawDataQueue; - +//Captor 1 2 3 4 5 6 7 8 bool selectionCaptors[] = {true,false,true,false,false,false,true,false}; int cptData = 0; @@ -66,31 +67,29 @@ void *threadCalculGrowthRate(void * vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; //double pw[nCol-1]; - double *dataLign[2][nCol-1]; + double **dataLign = getDoubleArray(2,nCol); + 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); + powerFunction(fileName, dataLign); + growthRateFunction(dataLign); }else{ - powerFunction(fileName, dataLign[0]); + powerFunction(fileName, dataLign); } i++; }else{ for(int y = 0; y < (nCol-1); y++){ dataLign[0][y] = dataLign[1][y]; } - powerFunction(fileName, dataLign[1]); - growthRateFunction(**dataLign); + powerFunction(fileName, dataLign); + growthRateFunction(dataLign); } - remove(fileName); + //remove(fileName); } } } diff --git a/Code-C/power.c b/Code-C/power.c index 8f80d43..836bf0c 100644 --- a/Code-C/power.c +++ b/Code-C/power.c @@ -11,16 +11,21 @@ * @param powerArray array where results are stocked */ void powerCalculation(long **p, double powerArray[]){ + printArrayData(p,nRow,nCol); + printf("data in pw : \n"); for(int i = 1; i < nCol; i++){ int j = 0; powerArray[i] = 0; - while(j < nRow-1){ - double aire = ( pow(p[j][i],2) + pow(p[j+1][i],2) ) / 2 * period; - powerArray[i] += aire; + + while(j < nRow){ + + printf("%d , %d , %d , %d\n" , p[j][i], p[j+1][i] , i ,j); + powerArray[i] + pow(p[j][i],2); j++; } powerArray[i] *= invTimeBandWidth; } + } /** @@ -30,7 +35,7 @@ void powerCalculation(long **p, double powerArray[]){ * @param N number of rows in the file * @param M number of columns in the file */ -void powerFunction(char* rawDataFileName, double **pw){ +void powerFunction(char* rawDataFileName, double *pw[]){ long **p = getRawDataArray(rawDataFileName); double pww[nCol-1]; if(p !=NULL){ @@ -38,7 +43,7 @@ void powerFunction(char* rawDataFileName, double **pw){ powerCalculation(p,pww); appendDataInFile("powerData.csv",pww,nCol-1); }else{ - powerCalculation(p,*pw); + powerCalculation(p,pw[1]); appendDataInFile("powerData.csv",*pw,nCol-1); } freeArray(p,nRow); diff --git a/Code-C/power.h b/Code-C/power.h index 043857c..e75d948 100644 --- a/Code-C/power.h +++ b/Code-C/power.h @@ -1,4 +1,4 @@ #include #include -void powerFunction(char* rawDataFileName, double **pw); \ No newline at end of file +void powerFunction(char* rawDataFileName, double *pw[]); \ No newline at end of file diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c index 0016a69..9c0fbd9 100644 --- a/Code-C/simulateFlux.c +++ b/Code-C/simulateFlux.c @@ -119,7 +119,7 @@ bool writeOneRawData(FILE *rawDataFile){ } int lastIndex = lastIndexCaptor(); for (int i = 1; i < 9; i++){ - if(selectionCaptors[i]){ + if(selectionCaptors[i-1]){ value.octet1 = buff[3*i+1]; value.octet2 = buff[3*i+2]; value.octet3 = buff[3*i+3]; @@ -128,7 +128,7 @@ bool writeOneRawData(FILE *rawDataFile){ valbin[i] = buff[3*i+1]*256*256*256 + buff[3*i+2]*256*256 + buff[3*i+3]*256; memcpy(&values[i], &valbin[i], sizeof(uint32_t)); - if(i==lastIndex){ + if(i-1==lastIndex){ fprintf(rawDataFile, "%d\n", values[i]/256); } else{ From 479289a365cfbdeff8f93860c73e0efc89abc541 Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Thu, 16 Jun 2022 14:44:31 +0200 Subject: [PATCH 2/5] vide --- Code-C/main | Bin 41872 -> 41760 bytes Code-C/power.c | 5 ++--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Code-C/main b/Code-C/main index 640008a6248823e31c5af521edcfbba984debc5d..6d59e32e3f66a3e78afe9c7a8bc3ed80f01272e4 100755 GIT binary patch delta 6323 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 delta 6766 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 Date: Thu, 16 Jun 2022 15:19:07 +0200 Subject: [PATCH 3/5] power debug (column = 0) --- Code-C/main | Bin 41760 -> 41760 bytes Code-C/main.c | 2 +- Code-C/power.c | 7 +++---- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Code-C/main b/Code-C/main index 6d59e32e3f66a3e78afe9c7a8bc3ed80f01272e4..3cd197e6963024a135e688b05bc98a32ecf109a8 100755 GIT binary patch delta 4244 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 H-hTbRTN0hi delta 4269 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 Date: Thu, 16 Jun 2022 17:05:12 +0200 Subject: [PATCH 4/5] growth ok --- Code-C/average.c | 22 ++++++++++++++-------- Code-C/average.h | 2 +- Code-C/getArray.c | 4 ++-- Code-C/growthRate.c | 15 +++++++++++++-- Code-C/growthRate.h | 2 +- Code-C/initialParameters.h | 3 ++- Code-C/main | Bin 41760 -> 42008 bytes Code-C/main.c | 30 +++++++++++++++++++----------- Code-C/power.c | 12 +++++------- Code-C/simulateFlux.c | 2 +- 10 files changed, 58 insertions(+), 34 deletions(-) diff --git a/Code-C/average.c b/Code-C/average.c index e9d8706..8fef657 100644 --- a/Code-C/average.c +++ b/Code-C/average.c @@ -13,12 +13,11 @@ void averageCalculation(long **p, double averageArray[]){ for(int i = 1; i < nCol; i++){ int j = 0; averageArray[i] = 0; - while(j < nRow -1){ + while(j < nRowRawData){ averageArray[i] += p[i][j]; j++; } - averageArray[i] /= nRow; - //printf("%f\n", powerArray[i]); + averageArray[i] /= nRowRawData; } } @@ -27,12 +26,19 @@ void averageCalculation(long **p, double averageArray[]){ * * @param rawDataFileName name of the raw data file to use to realize the calcul */ -void averageThreadFunction(char* rawDataFileName){ +void averageFunction(char* rawDataFileName , double **aver){ long **p = getRawDataArray(rawDataFileName); - double aver[nCol -1]; + double averN[nCol -1]; if(p !=NULL){ - averageCalculation(p,aver); - appendDataInFile("averageData.csv",aver,nCol-1); - freeArray(p,nRow); + if(p !=NULL){ + if(aver == NULL){ + averageCalculation(p,averN); + appendDataInFile("averageData.csv",averN,nCol-1); + }else{ + averageCalculation(p,aver[1]); + appendDataInFile("averageData.csv",aver[1],nCol-1); + } + freeArray(p,nRowRawData); + } } } \ No newline at end of file diff --git a/Code-C/average.h b/Code-C/average.h index b130865..a121de4 100644 --- a/Code-C/average.h +++ b/Code-C/average.h @@ -1,4 +1,4 @@ #include #include -void averageThreadFunction(char* rawDataFileName); \ No newline at end of file +void averageFunction(char* rawDataFileName , double **aver); \ No newline at end of file diff --git a/Code-C/getArray.c b/Code-C/getArray.c index 7284378..f8c05ef 100644 --- a/Code-C/getArray.c +++ b/Code-C/getArray.c @@ -97,8 +97,8 @@ void freeArray(long **p, int N) { */ long **getRawDataArray(char* rawDataFileName){ long **p; - p = getlongArray(nRow, nCol); - fillArrayWithRawData(rawDataFileName,p ,nRow, nCol); + p = getlongArray(nRowRawData, nCol); + fillArrayWithRawData(rawDataFileName,p ,nRowRawData, nCol); //if(checkArrayFullyFill(p,nRow)){ //clearRawData(N); return p; diff --git a/Code-C/growthRate.c b/Code-C/growthRate.c index 8fcca10..64a0a2e 100644 --- a/Code-C/growthRate.c +++ b/Code-C/growthRate.c @@ -18,8 +18,19 @@ void growthRateCalculation(double **dataArray , double *gRateArray){ * * @param dataLign */ -void growthRateFunction(double **dataLign){ +void growthRateFunction(double **dataLign , char* fileName){ double gRateArray[nCol-1]; growthRateCalculation(dataLign , gRateArray); - appendDataInFile("growthRate.csv",gRateArray , nCol-1); + appendDataInFile(fileName,gRateArray , nCol-1); +} + +void sumColArray(long **p, double res[] , int N , int M){ + for(int i = 1; i < M; i++){ + int j = 0; + res[i] = 0; + while(j < N){ + res[i] += p[i][j]; + j++; + } + } } \ No newline at end of file diff --git a/Code-C/growthRate.h b/Code-C/growthRate.h index 7979f21..d68b096 100644 --- a/Code-C/growthRate.h +++ b/Code-C/growthRate.h @@ -1,4 +1,4 @@ #include #include -void growthRateFunction(double **dataLign); \ No newline at end of file +void growthRateFunction(double **dataLign , char* fileName); \ No newline at end of file diff --git a/Code-C/initialParameters.h b/Code-C/initialParameters.h index 96201f5..5403af0 100644 --- a/Code-C/initialParameters.h +++ b/Code-C/initialParameters.h @@ -2,7 +2,8 @@ #include "queue.h" extern bool rawDataWriteFlag; -extern int nRow; +extern int nRowRawData; +extern int nRowGR; extern int nCol; extern double freqEch; diff --git a/Code-C/main b/Code-C/main index 3cd197e6963024a135e688b05bc98a32ecf109a8..d9efec68aa3e2c7f0b12ca0fa5ab95076d77fd20 100755 GIT binary patch delta 10306 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 !e}K4GY#R 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 QfbR$9d{|=RIP3KNA6bsZlK=n! delta 9985 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 F{|CvpNt*xw diff --git a/Code-C/main.c b/Code-C/main.c index 32e7fd7..f48a16a 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -9,7 +9,8 @@ #include "getArray.h" bool rawDataWriteFlag; -int nRow = 500; +int nRowRawData = 500; +int nRowGR = 150; int nCol = 1; double freqEch = 250; @@ -43,7 +44,7 @@ void *threadCalculAverage(void *vargp){ while(queueGetNextE(rawDataQueue) != NULL){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); - averageThreadFunction(fileName); + averageFunction(fileName, NULL); remove(fileName); } } @@ -57,7 +58,7 @@ void *threadCalculBoth(void *vargp){ rawDataQueue = queueGetNextE(rawDataQueue); fileName = queueGetTabChar(rawDataQueue); powerFunction(fileName, NULL); - averageThreadFunction(fileName); + averageFunction(fileName , NULL); remove(fileName); } } @@ -67,7 +68,8 @@ void *threadCalculGrowthRate(void * vargp){ Pqueue rawDataQueue = firstRawDataQueue; char* fileName; //double pw[nCol-1]; - double **dataLign = getDoubleArray(2,nCol); + double **dataLignPw = getDoubleArray(2,nCol); + double **dataLignAv = getDoubleArray(2,nCol); int i = 0; while(rawDataWriteFlag){ @@ -76,18 +78,24 @@ void *threadCalculGrowthRate(void * vargp){ fileName = queueGetTabChar(rawDataQueue); if(i < 2){ if(i == 1){ - powerFunction(fileName, dataLign); - growthRateFunction(dataLign); + powerFunction(fileName, dataLignPw); + averageFunction(fileName , dataLignAv); + growthRateFunction(dataLignPw , "growthRatePw.csv"); + growthRateFunction(dataLignPw,"growthRateAv.csv"); }else{ - powerFunction(fileName, dataLign); + averageFunction(fileName , dataLignAv); + powerFunction(fileName, dataLignPw); } i++; }else{ for(int y = 0; y < (nCol-1); y++){ - dataLign[0][y] = dataLign[1][y]; + dataLignPw[0][y] = dataLignPw[1][y]; + dataLignAv[0][y] = dataLignAv[1][y]; } - powerFunction(fileName, dataLign); - growthRateFunction(dataLign); + powerFunction(fileName, dataLignPw); + averageFunction(fileName , dataLignAv); + growthRateFunction(dataLignPw,"growthRatePw.csv"); + growthRateFunction(dataLignPw,"growthRateAv.csv"); } //remove(fileName); } @@ -105,7 +113,7 @@ int main(int argc , char** argv){ rawDataWriteFlag = true; period = 1 / freqEch; - invTimeBandWidth = 1 /(nRow * period); + invTimeBandWidth = 1 /(nRowRawData * period); firstRawDataQueue = queueCreateEmpty(); // change this for create empty pthread_t rawData; diff --git a/Code-C/power.c b/Code-C/power.c index 6fd69d1..ea62528 100644 --- a/Code-C/power.c +++ b/Code-C/power.c @@ -11,17 +11,15 @@ * @param powerArray array where results are stocked */ void powerCalculation(long **p, double powerArray[]){ - printf("data in pw : \n"); for(int i = 0; i < nCol; i++){ int j = 0; powerArray[i] = 0; - while(j < nRow){ - printf("\np[%d,%d] = %d\npwArray[%d] = %lf\n" , j,i,p[j][i+1],i,powerArray[i]); + while(j < nRowRawData){ powerArray[i] += pow(p[j][i+1],2); j++; } - powerArray[i] /= nRow; + powerArray[i] /= nRowRawData; } } @@ -33,7 +31,7 @@ void powerCalculation(long **p, double powerArray[]){ * @param N number of rows in the file * @param M number of columns in the file */ -void powerFunction(char* rawDataFileName, double *pw[]){ +void powerFunction(char* rawDataFileName, double **pw){ long **p = getRawDataArray(rawDataFileName); double pww[nCol-1]; if(p !=NULL){ @@ -42,8 +40,8 @@ void powerFunction(char* rawDataFileName, double *pw[]){ appendDataInFile("powerData.csv",pww,nCol-1); }else{ powerCalculation(p,pw[1]); - appendDataInFile("powerData.csv",*pw,nCol-1); + appendDataInFile("powerData.csv",pw[1],nCol-1); } - freeArray(p,nRow); + freeArray(p,nRowRawData); } } \ No newline at end of file diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c index 9c0fbd9..c0183af 100644 --- a/Code-C/simulateFlux.c +++ b/Code-C/simulateFlux.c @@ -151,7 +151,7 @@ void *threadSimulateFlux(void *vargp){ FILE *rawDataFile = fopen(fileName,"w+"); while(writeOneRawData(rawDataFile)){ - if(cptData == nRow){ + if(cptData == nRowRawData){ fclose(rawDataFile); cptData = 0; cptFile++; From e06c7602e0dade3bd0d2e88e88cacaab8de6f9ea Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Fri, 17 Jun 2022 17:38:53 +0200 Subject: [PATCH 5/5] add timeFile + ignore last values --- Code-C/Makefile | 2 +- Code-C/average.c | 1 + Code-C/getArray.c | 2 +- Code-C/initialParameters.h | 4 +- Code-C/main | Bin 42008 -> 46784 bytes Code-C/main.c | 6 ++- Code-C/simulateFlux.c | 74 +++++++++++++++++++++---------------- 7 files changed, 54 insertions(+), 35 deletions(-) diff --git a/Code-C/Makefile b/Code-C/Makefile index 44a0a3d..d9cfeda 100644 --- a/Code-C/Makefile +++ b/Code-C/Makefile @@ -1,5 +1,5 @@ CC = gcc all: - $(CC) -g fileGestion.c getArray.c average.c growthRate.c power.c queue.c simulateFlux.c main.c -lm -lpthread -o main + $(CC) -g -Wall fileGestion.c getArray.c average.c growthRate.c power.c 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 index 8fef657..317acd9 100644 --- a/Code-C/average.c +++ b/Code-C/average.c @@ -17,6 +17,7 @@ void averageCalculation(long **p, double averageArray[]){ averageArray[i] += p[i][j]; j++; } + //printf("%f , %f\n", averageArray[i] , averageArray[i] / nRowRawData); averageArray[i] /= nRowRawData; } } diff --git a/Code-C/getArray.c b/Code-C/getArray.c index f8c05ef..bdc7a79 100644 --- a/Code-C/getArray.c +++ b/Code-C/getArray.c @@ -53,7 +53,7 @@ void printArrayData(long** p, int N, int M) { for(i = 0 ; i < N ; i++){ printf("line n°%d : " , i); for(int j = 0 ; j < M ; j++){ - printf("%d , " , p[i][j]); + printf("%ld , " , p[i][j]); if(j==(M-1)) printf("\n"); } } diff --git a/Code-C/initialParameters.h b/Code-C/initialParameters.h index 5403af0..12d1e41 100644 --- a/Code-C/initialParameters.h +++ b/Code-C/initialParameters.h @@ -6,9 +6,11 @@ extern int nRowRawData; extern int nRowGR; extern int nCol; extern double freqEch; +extern int nbRowBinFile; +extern int nbRowIgnore; extern int cptFile; - +extern int cptValue; extern double period; extern double invTimeBandWidth; diff --git a/Code-C/main b/Code-C/main index d9efec68aa3e2c7f0b12ca0fa5ab95076d77fd20..e87cfdbeb8ec346c128f09a750fee30663244d1b 100755 GIT binary patch delta 14879 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 QgYd7<2yUv(TK<^)ztxY4{{R30 delta 13908 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