From a7ce786b9286510e5e8b5e32b3584a40c1981c22 Mon Sep 17 00:00:00 2001 From: "quentin.perret" Date: Fri, 10 Jun 2022 10:47:17 +0200 Subject: [PATCH] merge struct and fill rawdata gestion --- Code-C/Makefile | 1 + Code-C/main | Bin 18040 -> 18144 bytes queue.c => Code-C/queue.c | 36 ++++++++++++++-------------- Code-C/queue.h | 1 + Code-C/simulateFlux.c | 48 +++++++++++++++++++------------------- queue.h | 0 6 files changed, 45 insertions(+), 41 deletions(-) rename queue.c => Code-C/queue.c (77%) create mode 100644 Code-C/queue.h delete mode 100644 queue.h diff --git a/Code-C/Makefile b/Code-C/Makefile index 7711ce9..a5707fc 100644 --- a/Code-C/Makefile +++ b/Code-C/Makefile @@ -4,4 +4,5 @@ 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 -o queue ./main < ../02400031.TXT \ No newline at end of file diff --git a/Code-C/main b/Code-C/main index b1ea901faa9c5d42d4d906ade817b5986164298a..0f0ab264328876ddd7e8d07052dec28851deaf65 100755 GIT binary patch delta 2413 zcmZ8j4NOy46u$ShuM|Yu0<|s7@iV9Vj2~eLOp#WtK3s?RgR(h)8f_*M6;aYG8AHQl zzLo0SHDqpXD$6pnNK);72#W~fC?v+gmKdhV#K@B8kVzP93~_JgzW2(|OWwQZe&0FY zIrrS#mWc*D;Kd&#G207Ir2HB-9Ezkd97-bbUVO-Z7_Z0Cdjn%!o@(iyj{3Trw@>C1{D`_vXPp)!-R;B*w6&X7KJ2L4)d zZ6%n^z#ox?>`8K+&1DZ%xLlQl(d?{63{t@#lHO|RO;Jkh8@ zNR7r7tU9I~wgk~o5gi!*Zo^Fd>5zG5n(r@w$_F*Oa42~t#AKNzdr9w+LU{rD$l$LD z3Bi`I8FZOdUWC9DPCnJT$p%%lzc;a8b4j0tbzf-_;=Hq$OH)C+-)7j2v7R(X-kfXY z_<YwPl+POcXA$kH(g$%OAO3auI_it@ulq$ zd6o;<&(k`J_%7QO@<&u|?VHnKy)*6!mxrTw7X!tpmL%u?7>+C2lR zlA#uWe2UkdN0L|X49FpQ*?kUvkn_3*Hrq6>+qT-aZ6PJbOGInb<0xV=E~(`XKkz}7 z9Dlh?q#8z7Ds7J)O6+T;N7WW1(E;J~B=AStb?-L7A+-RAggrC_w(U701$%SoIY8Ai z`w0yIrPfHQ;LSlYDP#iGQlyNq7bT)QqZLc z-uqh;6d=zCy>VZ_#d){Ax`||3=9rrydQ_)p)4+LDx3yzbXRuFr*kfd?#k_-^0ggbw z1vqU1PLcB(!{BDL(MqV|<-bHx-gh?S(#0X$CWp6R%{+u`8;kgxw$dVg+_u5SPnB}s zG%LXC9m$WO8Cqez|CVLGhGd3jei&~c(ee3=JC!)%t@$NmqUeC5It_CL%u_Hoz`S}~ z6feMRhAv%)`2x%%Fekyu>*3xWB|pS>&d&w}*&_7y%<|cqmyfHCsTE)ONn|)7mKDI-MVb?0i?k5l_@^k|0KsV)RSyHvD4zNQzXJAr66|T7 zIZkP5&=d~vfp6c$IQZ(>pSX%mg3e%nN1}NaDPh#)mo$@seml|up3)d1I6aOTw2;K~ zcW|u#T)L=&mA@&gi^1)rJSQ$@z#@AFBjUh_L=otGG-=9dOI~MtlKu{81G1oa1y{;L zJ>+7J$$1x8Ju)M;!pgC5d6g)Kf~ysRwwWetGRlC|9WX5vXLM*#DK4mk2+lPnM?nt_ zkOe)ZHebRms6@drNzPrIMyp*LL=>S4@T7UiqGe#ag1f1{+5;^80c6m}q$Ag~@JmS- zestnxw_x?(Dk_JRDz_*qT~r0%AqjbLxQy8H78H$23TD)8m0f~en^bV0f(Mlu_|4Np z-B0&1f?UiqS>k}D)vJ}fZz*}_k-K@Og~~gP@>6PUbu43mN7n1({u�xEnB`VD?KYc$Nzmn4ff|2Ix$@PQ&th<4svQ)Mp*Dh t!H3|dW%UfsBd^+P8FMJPWnUD=y(E_#p(Zga7lmzHDlbDYd9Co-{{ZWDvpWC) delta 2256 zcmZ8idr(wW7(eIk-UU(I<+-~c17d}WJj8ek!j)Dp6B?$QIOc=VElD$cFwjgwN|<-n zCG|7QDGg~d#-!2iKa4fV0=neb3^a{VIYp^6Tj+@RLPKufx%YxhXXl>pJHPMuJhzWvFx|LSTyXkToe%yF3>C;P}yO!T-P95lMZwmf% z&O`8X{j>#^8LadWo1wyJgJFY>UQ#hxor6Izra&WF_TkfSut7IIJw_Y-7AT)WKZCja zVbg0Hw!F2&1zmg=aHb8l95LXJsIyU>wY7#nwHXK{9Jz^13qGm%965NzM2L|*(6P#> z@<}WXr3m1l_`8ad@!8Pq+_=3j4?(zLdYuNrk^rlHiptWa!F)|(0un0k3J9Qfj6FU| z3p6zV#bh`ZSOvRN6XeuM7fjz+(x~~@Kte=M@D5ev-Ij%r&6LJLOX!uD3Q_7WlDb3> zzXS7$lA{OJ3Qg^U#<1|59#Qi7uZ<{*D0PZ%M>kvk#Fn&Alsd$^f2b%q+tKrY=yQC` z>OlQn)c3(aSY}GqxF^zm{!Rb)JR?f=6$*y))mNi{zrr$Wn?<*?2XnQG(iP_9{TJ2!+H4YBT~*&=!zgKg~Cn8!wVBO(`0hqu6&5tiDZL_|H6Fia8 zx!LII=I_oTM7k(?@-Cs`--Fdkj$xl;M5R~Y?2hO`i`y}R<(*_?pWiYnUyroVum^b8 zo^EAWQ3jreUh9ln_e4Aj@j8rGw`(NO+^`oDxcR1;gw(ZDi9d>pTG;@vHst%U{>O>Z zF2B~JLkRVrs}!33FJ_9K-C~Y98Xw8Nt6w zk1}TI#cT0idu0nyd!(%forla8eiZ*(L*}*KA#;dh*v+ql6uWKXl?mXW=yCe-!2Ea; zq9@$Q2uM|mF1ZR61%TTnXgE6RS9U!XjVvK$+G z8Rc&%2T_*dd0N=Lg9~w;&o&@JgsGOjTw$>3#SaV(#{GPq$xuV51O!e)Q!_p*;nwtM zQ#We$cj4>lQM@13v+%?8=%PS$zjIenx-j5)7{hrEy-6HGGtvGbZg@ND<96;%W>yDF zQH-2xuq-~77QnXn#e6BYh05M|+hi!=jPOg6HH5tj*+8Z`ZURk?<-(&NKDmZYlTRco z23*NaX%{(q8OqaRqb%&dhGWbl7L`ykl`M;Zrt~(b&alvSIGb*zeQ+YfO8;Pb(GZeC zh@BJ*nzK<8z$+#DYTnwt`;eZC787Z)uoT$h%dmYfbLx%p6? zn>cO5c30U>*NRQ9tuIx$wk~y5y +#include +#include "queue.h" /** - * @brief squeue struct used for queueing string name + * @brief struct queue struct used for queueing string name * * @param charLen lenght of tabChar pointeur * @param tabChar char array pointer @@ -11,9 +13,9 @@ struct queue { int charLen; char * tabChar; Pqueue pNextE; -}squeue; +}; -typedef squeue *Pqueue; +typedef struct queue *Pqueue; /** * @brief Create Element of queue @@ -22,12 +24,12 @@ typedef squeue *Pqueue; * @return Pqueue new element created */ Pqueue createE(int lenChar){ - Pqueue new = (Pqueue) malloc(sizeof(squeue)); + Pqueue new = (Pqueue) malloc(sizeof(struct queue)); assert(new); /* ???? tab char create or give pointer ???*/ - new.charLen = lenChar; - new.tabChar = (char *) malloc(lenChar * sizeof(char)); - new.pNextE = NULL; + new->charLen = lenChar; + new->tabChar = (char *) malloc(lenChar * sizeof(char)); + new->pNextE = NULL; return new; } @@ -39,7 +41,7 @@ Pqueue createE(int lenChar){ */ Pqueue pNextE(Pqueue elem){ assert(elem); - return elem.pNextE + return elem->pNextE; } /** @@ -51,13 +53,13 @@ Pqueue pNextE(Pqueue elem){ Pqueue rmLastE(Pqueue elem){ assert(elem); Pqueue tmp = elem, previous = NULL; - while(elem.pNextE != NULL){ + while(elem->pNextE != NULL){ previous = tmp; tmp = pNextE(tmp); } - free(tmp.tabChar); + free(tmp->tabChar); free(tmp); - previous.pNextE = NULL; + previous->pNextE = NULL; return elem; } @@ -69,8 +71,8 @@ Pqueue rmLastE(Pqueue elem){ */ Pqueue rmFrstE(Pqueue elem){ assert(elem); - Pqueue tmp = elem.pNextE; - free(elem.tabChar); + Pqueue tmp = elem->pNextE; + free(elem->tabChar); free(elem); return tmp; } @@ -83,7 +85,7 @@ Pqueue rmFrstE(Pqueue elem){ */ Pqueue nextDelFrst(Pqueue elem){ assert(elem); - Pqueue tmp = elem.pNextE; + Pqueue tmp = elem->pNextE; rmFrstE(elem); return tmp; } @@ -100,13 +102,13 @@ Pqueue addLastQ(Pqueue elem, const char* str, int len){ assert(elem); assert(str); Pqueue tmp = elem, previous = NULL; - while(elem.pNextE != NULL){ + while(elem->pNextE != NULL){ previous = tmp; tmp = pNextE(tmp); } tmp = createE(len); - tmp.tabChar = str; - tmp.charLen = len; + tmp->tabChar = str; + tmp->charLen = len; return tmp; } diff --git a/Code-C/queue.h b/Code-C/queue.h new file mode 100644 index 0000000..0c14a50 --- /dev/null +++ b/Code-C/queue.h @@ -0,0 +1 @@ +typedef struct queue *Pqueue; diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c index b3e20c2..bf41fb2 100644 --- a/Code-C/simulateFlux.c +++ b/Code-C/simulateFlux.c @@ -29,13 +29,13 @@ char* convertIntegerToChar(int N) return (char*)arr; } -FILE *createThenOpenNewRawDataFile(){ +char *createNewRawDataFileName(){ char *fileName = "RawData"; char *extension = ".csv"; char *fileNumber = convertIntegerToChar(cptFile); char fileNameNumber[strlen(fileName)+strlen(fileNumber)]; - char fullFillName[strlen(fileNameNumber)+strlen(extension)]; + char *fullFillName = malloc( (strlen(fileNameNumber)+strlen(extension)) * sizeof(char*) ); strcpy( fileNameNumber, fileName ); strcat( fileNameNumber, fileNumber ); @@ -43,15 +43,7 @@ FILE *createThenOpenNewRawDataFile(){ strcpy( fullFillName, fileNameNumber ); strcat( fullFillName, extension ); - FILE *file = fopen(fullFillName,"w+"); - return file; -} - -int64_t millis() -{ - struct timespec now; - timespec_get(&now, TIME_UTC); - return ((int64_t) now.tv_sec) * 1000 + ((int64_t) now.tv_nsec) / 1000000; + return fullFillName; } int intInArray(int number , int *array , int N){ @@ -68,7 +60,13 @@ int maxInArray(int *array , int N){ return max; } -bool writeOneRawData(FILE *rawDataFile){ +int64_t millis() +{ + struct timespec now; + timespec_get(&now, TIME_UTC); + return ((int64_t) now.tv_sec) * 1000 + ((int64_t) now.tv_nsec) / 1000000; +} +bool writeOneRawData(FILE *rawDataFill){ char buff[26]; char buff2[18]; int32_t values[8]; @@ -76,8 +74,8 @@ bool writeOneRawData(FILE *rawDataFile){ quartet value; - if(fread(&buff, 26, 1, stdin)) { - fprintf(rawDataFile , "%d,", millis()); + if(fread(&buff, 26, 1, stdin)) { + fprintf(rawDataFill , "%d,", millis()); if (strncmp(buff, "#################\n", (size_t)18) == 0) { if (!(fread(&buff2, 18, 1, stdin))) { fprintf(stderr, "Erreur lecture après ###...#"); @@ -87,7 +85,7 @@ bool writeOneRawData(FILE *rawDataFile){ strncpy(&buff[8], buff2, 18); } } - int maxCapteurNb = maxInArray(selectionCaptors,sizeSelectionArray); + int maxCApteurNb = maxInArray(selectionCaptors,sizeSelectionArray); for (int i = 1; i < 9; i++){ if(intInArray(i,selectionCaptors,sizeSelectionArray)==0){ value.octet1 = buff[3*i+1]; @@ -98,32 +96,34 @@ 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==maxCapteurNb){ - fprintf(rawDataFile, "%d\n", values[i]/256); + + if(i==maxCApteurNb){ + fprintf(rawDataFill, "%d\n", values[i]/256); } else{ - fprintf(rawDataFile, "%d,", values[i]/256); + fprintf(rawDataFill, "%d,", values[i]/256); } } } cptData++; - //sleep(0.004); //simul la freq ech + sleep(0.004); //simul la freq ech return true; } else { return false; } } + void *simulateFlux(void *vargp){ - FILE *f = createThenOpenNewRawDataFile(); - while(writeOneRawData(f)){ + char *fillName = createNewRawDataFileName(); + FILE *rawDataFill = fopen(fillName,"w+"); + while(writeOneRawData(rawDataFill)){ if(cptData == nRow){ cptData = 0; cptFile++; - fclose(f); - // initialiser et/ou modifier la structure ici - f = createThenOpenNewRawDataFile(); + fillName = createNewRawDataFileName(); + FILE *rawDataFill = fopen(fillName,"w+"); } } } \ No newline at end of file diff --git a/queue.h b/queue.h deleted file mode 100644 index e69de29..0000000