diff --git a/.vscode/settings.json b/.vscode/settings.json index 18346ea..08ba79e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,6 +13,7 @@ "math.h": "c", "limits": "c", "*.tcc": "c", - "type_traits": "c" + "type_traits": "c", + "simulateflux.h": "c" } } \ No newline at end of file diff --git a/Code-C/Makefile b/Code-C/Makefile index d88759e..cdc4abd 100644 --- a/Code-C/Makefile +++ b/Code-C/Makefile @@ -2,9 +2,8 @@ CC = gcc all: # rm powerData.csv - $(CC) b2hd.c -o b2hd + $(CC) simulateFlux.c -o simulateFlux $(CC) fileGestion.c getArray.c power.c main.c -lm -o main -# getArray.c fileGestion.c power.c main.c -o main - ./b2hd < ../02400001.TXT > rawData.csv + ./simulateFlux < ../02400001.TXT ./main \ No newline at end of file diff --git a/Code-C/fileGestion.c b/Code-C/fileGestion.c index 17e16f8..78d17e1 100644 --- a/Code-C/fileGestion.c +++ b/Code-C/fileGestion.c @@ -13,6 +13,7 @@ void clearRawData(int N){ fprintf(f,"%s",buffer); } remove("rawData.csv"); rename("newFile.csv", "rawData.csv"); + fclose(f); fclose(g); } void writePowerData(double a[], int N){ @@ -24,4 +25,5 @@ void writePowerData(double a[], int N){ fprintf(f, "%f\n", a[i]); } } + fclose(f); } \ No newline at end of file diff --git a/Code-C/main b/Code-C/main index 8fc9751..9d2cfd1 100755 Binary files a/Code-C/main and b/Code-C/main differ diff --git a/Code-C/main.c b/Code-C/main.c index f9ccf6f..3e55a33 100644 --- a/Code-C/main.c +++ b/Code-C/main.c @@ -1,4 +1,4 @@ -#include "b2hd.h" +//#include "simulateFlux.h" #include "getArray.h" #include "fileGestion.h" #include "power.h" diff --git a/Code-C/simulateFlux b/Code-C/simulateFlux new file mode 100755 index 0000000..5f39085 Binary files /dev/null and b/Code-C/simulateFlux differ diff --git a/Code-C/simulateFlux.c b/Code-C/simulateFlux.c new file mode 100644 index 0000000..5f23070 --- /dev/null +++ b/Code-C/simulateFlux.c @@ -0,0 +1,60 @@ +#include "simulateFlux.h" + + +int writeOneRawData(){ + + char buff[26]; + char buff2[18]; + int32_t values[8]; + uint32_t valbin[8]; + quartet value; + + FILE *f = fopen("rawData.csv" , "a"); + + if(fread(&buff, 26, 1, stdin)) { + fprintf(f , "%d,", millis()); + if (strncmp(buff, "#################\n", (size_t)18) == 0) { + if (!(fread(&buff2, 18, 1, stdin))) { + fprintf(stderr, "Erreur lecture après ###...#"); + return 2; + } else { + strncpy(buff, &buff[18], 8); + strncpy(&buff[8], buff2, 18); + } + } + + for (int i = 1; i < 9; i++){ + value.octet1 = buff[3*i+1]; + value.octet2 = buff[3*i+2]; + value.octet3 = buff[3*i+3]; + value.octet4 = 0; + + 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<8){ + fprintf(f, "%d,", values[i]/256); + } + else{ + fprintf(f, "%d\n", values[i]/256); + } + } + fclose(f); + cpt++; + return 0; + } + else { + return 1; + } +} + +void simulateFlux(){ + while(writeOneRawData()==0){ + sleep(0.004); + } +} + +int main(int argc , char argv[]){ + simulateFlux(); + printf("%d",cpt); +} \ No newline at end of file diff --git a/Code-C/simulateFlux.h b/Code-C/simulateFlux.h new file mode 100644 index 0000000..4bce58c --- /dev/null +++ b/Code-C/simulateFlux.h @@ -0,0 +1,22 @@ +#include +#include +#include +#include +#include +#include + +int cpt = 0; + +typedef struct { + uint8_t octet1; + uint8_t octet2; + uint8_t octet3; + uint8_t octet4; +} quartet; + +int64_t millis() +{ + struct timespec now; + timespec_get(&now, TIME_UTC); + return ((int64_t) now.tv_sec) * 1000 + ((int64_t) now.tv_nsec) / 1000000; +} \ No newline at end of file