From 9386dd5364731d0dc01cf898d9a2599c1c7db6aa Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Fri, 10 Jun 2022 15:05:04 +0200 Subject: [PATCH] implement queue in code --- Code-C/Makefile | 2 +- Code-C/initialParameters.h | 3 ++- Code-C/main | Bin 18256 -> 19192 bytes Code-C/main.c | 10 +++++---- Code-C/queue.c | 42 +++++++++++++++++++++++++++++++++---- Code-C/queue.h | 12 +++++++++++ Code-C/simulateFlux.c | 15 ++++++++++--- 7 files changed, 71 insertions(+), 13 deletions(-) diff --git a/Code-C/Makefile b/Code-C/Makefile index a5707fc..ddfb997 100644 --- a/Code-C/Makefile +++ b/Code-C/Makefile @@ -3,6 +3,6 @@ CC = gcc all: # rm powerData.csv # $(CC) simulateFlux.c fileGestion.c getArray.c power.c main.c -lm -o main - $(CC) simulateFlux.c main.c -lpthread -o main + $(CC) queue.c simulateFlux.c main.c -lpthread -o main # $(CC) queue.c -o queue ./main < ../02400031.TXT \ No newline at end of file diff --git a/Code-C/initialParameters.h b/Code-C/initialParameters.h index e4bb21e..b91c822 100644 --- a/Code-C/initialParameters.h +++ b/Code-C/initialParameters.h @@ -1,4 +1,5 @@ #include +#include "queue.h" extern bool rawDataWriteFlag , stopFlag; extern int nRow; @@ -8,4 +9,4 @@ extern double freqEch; extern int selectionCaptors[]; extern int sizeSelectionArray; -extern bool flag; +extern Pqueue firstRawDataQueue; diff --git a/Code-C/main b/Code-C/main index c46c7d20ffe5cb8b84a8555a9fa1984010b670aa..3b69e1ef77c4cf11daca18bbc316c192437c3fdd 100755 GIT binary patch literal 19192 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

6`Jl>9_2icVqRwo7Qg>A`YPx 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 delta 4403 zcmZ`-4^W)N72mx-aED2bBe@($3><_Efh5PjTxe9_PIB-ONhMJ#+UkV{V(5@RhNJ$e z3W!*5PL%jYN7GT0sZKMU)*+HkW3(nQF_P9=uv1H%TCt<{sg zeEZ(}y|-`Q_x9blyEpv=AAOV$W@a=xnce~hVWZW%i~gRrKFtutuXfd3Sa?U|?l*duoTRuZ-?I?TRG^ISV?B(S1m>ot=H+}R zZ7{oeh2C$~`%R*MywpMm%?tPqI`kX8-=p{adVjy(zpD4+djE>(t&1>|mx8AGw9Jyp zAJH|p=soHEi+aD94q(#bI)928By*~K~|t?k?C6YI8cNBa+@iLY~quY^I~EV$LI zuA%7}1!R8IMT4=q-9LIDweygA{i+N4h_S zB#Oj~rz@-74jr=~H==Rao(Gjh#Gc&!B#Oww(xDfaVGrNZUR9OKNlAwA!q|kYHib_b zrJTX`2XuWhiTkNNb-8Db0qT9c+7LwX&ZA$ax>qikrJbIo6_uizS{y5#PA#BJ+YGI+ z&zZY3VCYjp9JJEz=IIo&hq-IGcWF(^OX=70?w5RwZ5dQr9B__7$Zk2hDZq2%io3y^luf#7|i+&uLqs1!sU`Tvr zB9Vx1MR(F#NXs*_>9K`BH>F>sRqhWeYmied8X8Av0fQZlS>Id1SoF=svLOu?0M2H7xs4=s-`<5g+D$whM$j7x~6J{aat7}6;TC8at0}pA@cLn_M1z5$J zglh%u5|**1Lx6^))e*yLbQaX0TZM)iq917kZ4=)QQh{g0G5zVcmbU zs|c%fq)50qc6c!?UK90<#UYH2KXjh{la;@6@EhIpkT%dXstv5O88bvrYSBN%BhbaH z+3)~)pz>THRWHh%bD@y2SZD@Oj1>-VUgYMEY*9AJP^T$+WkL5aYAA`dO(zn4p&8zH z-;B-i=tEeTnDvj#80$OAqt+8(jvz1=e->tkM2w$V_18Xiya|<{_5Hg7FJZc}ZJnprSJ$GaGWHn!8zFKU3bMcIPkw_c`jZfm|2RaQZz98?P zNhI(EW$ULBiG0wWFB6Fd(6>N4Kv$egBpw012lQ8<8dl~l&{PzY*nA%bO~9*)XkYUNAqv^B07(6Yf}WUiw3(nz<>VKC^iX zpOXsXe84?;a?et2eqPFcuq&o$dwy2R2-xN+dK7FN>{C)jta-3_k4A>*J<5cR);S;pMSIh^g7km-z^HuYw=tEeS;O#|2b?PlZ z&f@CaNwLeIp(J+*DznazLR~&gcN9Oy4bQi6u0#D{3#DVWi%H>d8PN0+ta@&$zFF5^Jx%f^@?PZy4Z$P?`adn=NRm4MOwIliwwNuGJv-si{=p{ zO`;|ZS@i{UX0^NYD&1Qqe$NK3ysekBG)f#!^!A(>#cvXQeHUy*ta}4eDaiwJ?1sz6 z5^xb=zKn2_w0~B3v%Unap6U8yV!SCcd74z-#Tz-rLDg#@D%SU<-wFAxxK$4LT#q${ zO4qo%-vE}5tToG+qzU_p9II|)%ca7D3zQS@HWDxZwNkkfACkC=p%A$6fBCxk4f}33 zAqRL3f2+dLnOUS43Qt0<$kc>MCX2tmtA@E8SoHjQ!4C?UATGMpZAx6Y!kat0!tLAJ zBj38NeQWYSq<%XkZ8QmNz zUaYnuMH`Lu=ofesy%1Vr56FEhKx3hbtO~0*m+5_qj1RATY zppn{i(-|9O)%nuYFCDwk#=2TlGow9qK4-Jnm{!pUovtg+P+O6r)10z2pIv>Yal_Us z>}uzjpxs&pX<9lqz|&ec_NJTbi|u;@hU2}oyS~DyK5dp#1N{!2uCL%0a;~d(l}K!p j+-=37!bffEmZuF~Wmx+yv}fJwv^S~@F_qJMHQE0I%S-sN diff --git a/Code-C/main.c b/Code-C/main.c index 7f0e0f2..cc23244 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -1,16 +1,17 @@ #include #include #include "simulateFlux.h" -#include "getArray.h" -#include "fileGestion.h" #include "power.h" #include "initialParameters.h" +#include "queue.h" bool rawDataWriteFlag = 0, stopFlag = 0; int nRow = 100000; int nCol = 9; double freqEch = 250; +Pqueue firstRawDataQueue = NULL; + int selectionCaptors[] = {1,2,3,4,5,6,7,8}; int sizeSelectionArray = 8; @@ -18,9 +19,10 @@ int main(int argc , char** argv){ double period = 1 / freqEch; double invTimeBandWidth = 1 /(nRow * period); - + Pqueue new = createE +/* pthread_t rawData; pthread_create(&rawData , NULL, simulateFlux, (void *)&rawData); pthread_exit(NULL); - while(power(nRow,nCol,period,invTimeBandWidth)){} +*/ } \ No newline at end of file diff --git a/Code-C/queue.c b/Code-C/queue.c index 91ccede..0d680d4 100644 --- a/Code-C/queue.c +++ b/Code-C/queue.c @@ -1,4 +1,5 @@ #include +#include #include #include "queue.h" @@ -23,7 +24,7 @@ typedef struct queue *Pqueue; * @param lenChar size of char array that will be created * @return Pqueue new element created */ -Pqueue createE(int lenChar){ +Pqueue createE(int lenChar , char* _tabChar){ Pqueue new = (Pqueue) malloc(sizeof(struct queue)); assert(new); /* ???? tab char create or give pointer ???*/ @@ -39,11 +40,33 @@ Pqueue createE(int lenChar){ * @param elem current element * @return Pqueue next element */ -Pqueue pNextE(Pqueue elem){ +Pqueue getNextE(Pqueue elem){ assert(elem); return elem->pNextE; } +int getCharLen(Pqueue elem){ + assert(elem); + return elem->charLen; +} + +char *gettabChar(Pqueue elem){ + assert(elem); + return elem->tabChar; +} + +Pqueue setCharLen(Pqueue elem , int _charLen){ + assert(elem); + elem->charLen = _charLen; +} + +Pqueue setTabChar(Pqueue elem , int _charLen , char *_tabChar){ + assert(elem); + elem->charLen = _charLen; + elem->tabChar = (char *) malloc(_charLen * sizeof(char)); + elem->tabChar = _tabChar; +} + /** * @brief remove and free the last element of queue * @@ -55,7 +78,7 @@ Pqueue rmLastE(Pqueue elem){ Pqueue tmp = elem, previous = NULL; while(elem->pNextE != NULL){ previous = tmp; - tmp = pNextE(tmp); + tmp = getNextE(tmp); } free(tmp->tabChar); free(tmp); @@ -104,7 +127,7 @@ Pqueue addLastQ(Pqueue elem, const char* str, int len){ Pqueue tmp = elem, previous = NULL; while(elem->pNextE != NULL){ previous = tmp; - tmp = pNextE(tmp); + tmp = getNextE(tmp); } tmp = createE(len); tmp->tabChar = str; @@ -112,3 +135,14 @@ Pqueue addLastQ(Pqueue elem, const char* str, int len){ return tmp; } +void printE(Pqueue elem){ + Pqueue next = getNextE(elem); + printf("File Name : %s \n(size of the file name : %d)\n",elem -> tabChar , elem -> charLen ); + if(next != NULL){ + printf("Next File : %s\n", next ->tabChar); + } + else{ + printf("No nextFile existing\n"); + } +} + diff --git a/Code-C/queue.h b/Code-C/queue.h index 0c14a50..5736138 100644 --- a/Code-C/queue.h +++ b/Code-C/queue.h @@ -1 +1,13 @@ typedef struct queue *Pqueue; +Pqueue createE(int lenChar); +Pqueue createEEmpty(); //create a new element but all variables in are null, use to create the first element of the queue in the main before define the elements in +// seter /getter pour la struct +// constructeur avec 2 paramètres : strlen et tabchar +Pqueue getNextE(Pqueue elem); +Pqueue setCharLen(Pqueue elem , int _charLen); +Pqueue setTabChar(Pqueue elem , int _charLen , char *_tabChar); +Pqueue rmLastE(Pqueue elem); +Pqueue rmFrstE(Pqueue elem); +Pqueue nextDelFrst(Pqueue elem); +Pqueue addLastQ(Pqueue elem, const char* str, int len); +void printE(Pqueue elem); \ No newline at end of file diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c index 5c94eff..e5538eb 100644 --- a/Code-C/simulateFlux.c +++ b/Code-C/simulateFlux.c @@ -1,5 +1,6 @@ #include "simulateFlux.h" #include "initialParameters.h" +#include "queue.h" int cptData = 0; int cptFile = 1; @@ -30,7 +31,7 @@ char* convertIntegerToChar(int N) } char *createNewRawDataFileName(){ - char *fileName = "RawData"; + char *fileName = "../RawDataFiles/RawData"; char *extension = ".csv"; char *fileNumber = convertIntegerToChar(cptFile); @@ -117,6 +118,11 @@ bool writeOneRawData(FILE *rawDataFile){ void *simulateFlux(void *vargp){ char *fileName = createNewRawDataFileName(); FILE *rawDataFile = fopen(fileName,"w+"); + Pqueue rawDataQueue = createE(strlen(fileName)); + setTabChar(rawDataQueue , strlen(fileName) , fileName); + firstRawDataQueue = rawDataQueue; + printE(rawDataQueue); + while(writeOneRawData(rawDataFile)){ if(cptData == nRow){ fclose(rawDataFile); @@ -124,9 +130,12 @@ void *simulateFlux(void *vargp){ cptFile++; //create struct here char *fileName = createNewRawDataFileName(); - printf(fileName); - printf("\n"); FILE *rawDataFile = fopen(fileName,"w+"); + rawDataQueue = addLastQ(rawDataQueue , fileName , strlen(fileName)); + + printE(rawDataQueue); } } + printf("\n"); + printE(firstRawDataQueue); }