Compare commits
No commits in common. "64a50327e74887b02d6aa5280c6c48c63f3fb948" and "05a9142c7ee76560537a0cf9e83cbed0c305bec3" have entirely different histories.
64a50327e7
...
05a9142c7e
|
@ -3,14 +3,8 @@
|
|||
#include "fileGestion.h"
|
||||
#include "initialParameters.h"
|
||||
#include "queue.h"
|
||||
/**
|
||||
* @brief realize the average calcul
|
||||
*
|
||||
* @param p array with all the values that will be used for the calcul
|
||||
* @param averageArray array where results are stocked
|
||||
* @param N number of rows in p
|
||||
* @param M number of columns in p
|
||||
*/
|
||||
#include <assert.h>
|
||||
|
||||
void averageCalculation(long **p, double averageArray[] , int N, int M){
|
||||
for(int i = 0; i < M-1; i++){
|
||||
int j = 0;
|
||||
|
@ -23,20 +17,16 @@ void averageCalculation(long **p, double averageArray[] , int N, int M){
|
|||
//printf("%f\n", powerArray[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief function that realize all the action to write one lign in the file averageData.csv
|
||||
*
|
||||
* @param rawDataFileName name of the raw data file to use to realize the calcul
|
||||
* @param N number of rows in the file
|
||||
* @param M number of columns in the file
|
||||
*/
|
||||
void average(char* rawDataFileName,int N , int M){
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
void average(char* rawDataFileName,int N , int M);
|
||||
bool average(char* rawDataFileName,int N , int M);
|
|
@ -43,8 +43,6 @@ void b2hd()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main(int argc , char** argv){
|
||||
b2hd();
|
||||
}
|
|
@ -21,18 +21,18 @@ void clearRawData(int nRow){
|
|||
fclose(f); fclose(g);
|
||||
}
|
||||
/**
|
||||
* @brief use to write one lign in the file "fileName"
|
||||
* @brief use to write the file powerData.csv that contaign all power calculous results
|
||||
*
|
||||
* @param array array that contaign all the values to write in the file
|
||||
* @param nCol size of the array (correspond to the number of captor used)
|
||||
* @param powerArray
|
||||
* @param nCol size of the power array, correspond to the number of captor used
|
||||
*/
|
||||
void writeDataInFile(char* fileName , double array[], int nCol){
|
||||
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 , ", array[i]);
|
||||
fprintf(f, "%f , ", powerArray[i]);
|
||||
} else {
|
||||
fprintf(f, "%f\n", array[i]);
|
||||
fprintf(f, "%f\n", powerArray[i]);
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
|
|
|
@ -49,11 +49,10 @@ void printArrayData(long** p, int N, int M) {
|
|||
/**
|
||||
* @brief verify if all the element of an array are not NULL, return
|
||||
*
|
||||
* @param p array to check
|
||||
* @param N number of rows in p
|
||||
* @param M number of columns in p
|
||||
* @return true if the array contaign no NULL element
|
||||
* @return false if at least one element is null
|
||||
* @param p
|
||||
* @param N
|
||||
* @param M
|
||||
* @return int
|
||||
*/
|
||||
bool checkArrayFullyFill(long **p, int N , int M){
|
||||
for(int i = 0 ; i < N ; i++){
|
||||
|
@ -62,12 +61,6 @@ bool checkArrayFullyFill(long **p, int N , int M){
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief free memory allocate to an array p
|
||||
*
|
||||
* @param p array to free memory
|
||||
* @param N number of rows in array
|
||||
*/
|
||||
void freeArray(long **p, int N) {
|
||||
int i;
|
||||
for(i = 0 ; i < N ; i++)
|
||||
|
@ -75,14 +68,6 @@ void freeArray(long **p, int N) {
|
|||
free(p);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the Raw Data Array object
|
||||
*
|
||||
* @param rawDataFileName name of the file to use to file the array
|
||||
* @param N numbers of rows to have i the array
|
||||
* @param M numbers of columns to have i the array
|
||||
* @return long** the array fill with raw data
|
||||
*/
|
||||
long **getRawDataArray(char* rawDataFileName , int N , int M){
|
||||
long **p;
|
||||
p = get(N, M);
|
||||
|
|
BIN
Code-C/main
BIN
Code-C/main
Binary file not shown.
|
@ -71,7 +71,7 @@ int main(int argc , char** argv){
|
|||
firstRawDataQueue = queueCreateEmpty(); // change this for create empty
|
||||
|
||||
pthread_t rawData;
|
||||
pthread_create(&rawData , NULL, threadSimulateFlux, (void *)&rawData);
|
||||
pthread_create(&rawData , NULL, simulateFlux, (void *)&rawData);
|
||||
|
||||
pthread_t calcul;
|
||||
pthread_create(&calcul , NULL, threadCalculBoth, (void *)&calcul);
|
||||
|
|
|
@ -3,15 +3,8 @@
|
|||
#include "fileGestion.h"
|
||||
#include "initialParameters.h"
|
||||
#include "queue.h"
|
||||
#include <assert.h>
|
||||
|
||||
/**
|
||||
* @brief realize the power calcul
|
||||
*
|
||||
* @param p array with all the values that will be used for the calcul
|
||||
* @param powerArray array where results are stocked
|
||||
* @param N number of rows in p
|
||||
* @param M number of columns in p
|
||||
*/
|
||||
void powerCalculation(long **p, double powerArray[] , int N, int M , double period , double invTimeBandwidth){
|
||||
for(int i = 0; i < M-1; i++){
|
||||
int j = 0;
|
||||
|
@ -26,14 +19,6 @@ void powerCalculation(long **p, double powerArray[] , int N, int M , double peri
|
|||
//printf("%f\n", powerArray[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief function that realize all the action to write one lign in the file powerData.csv
|
||||
*
|
||||
* @param rawDataFileName name of the raw data file to use to realize the calcul
|
||||
* @param N number of rows in the file
|
||||
* @param M number of columns in the file
|
||||
*/
|
||||
bool power(char* rawDataFileName,int N , int M, double periode , double invTimeBandwidth){
|
||||
long **p = getRawDataArray(rawDataFileName,N, M);
|
||||
double pw[8];
|
||||
|
|
|
@ -148,6 +148,7 @@ Pqueue queueRmLastE(Pqueue elem){
|
|||
* @brief remove and free the first element of queue
|
||||
*
|
||||
* @param elem target to remove (the element need to be the first)
|
||||
* @return Pqueue the second element after remove first
|
||||
*/
|
||||
void queueRmFrstE(Pqueue elem){
|
||||
assert(elem);
|
||||
|
@ -174,6 +175,7 @@ Pqueue queueNextDelFrst(Pqueue elem){
|
|||
* @param elem Pqueue will be added at the end of queue
|
||||
* @param str the string will be bind at the element
|
||||
* @param len the lenght of char array
|
||||
* @return Pqueue pointer to the last element
|
||||
*/
|
||||
void queueAddLastQ(Pqueue elem, const char* str, int len){
|
||||
assert(elem);
|
||||
|
@ -204,11 +206,6 @@ void queuePrintE(Pqueue elem){
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Print all the element starting from @param firstE till the end of the linked list
|
||||
*
|
||||
* @param firstE
|
||||
*/
|
||||
void queuePrintWholeQ(Pqueue firstE){
|
||||
queuePrintE(firstE);
|
||||
Pqueue elem = firstE;
|
||||
|
|
|
@ -2,12 +2,7 @@
|
|||
#include "initialParameters.h"
|
||||
#include "queue.h"
|
||||
|
||||
/**
|
||||
* @brief convert an interger N into a char*
|
||||
*
|
||||
* @param N
|
||||
* @return char*
|
||||
*/
|
||||
|
||||
char* convertIntegerToChar(int N)
|
||||
{
|
||||
// Count digits in number N
|
||||
|
@ -33,11 +28,6 @@ char* convertIntegerToChar(int N)
|
|||
return (char*)arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Create a New Raw Data File Name
|
||||
*
|
||||
* @return char*
|
||||
*/
|
||||
char *createNewRawDataFileName(){
|
||||
char *fileName = "../RawDataFiles/RawData";
|
||||
char *extension = ".csv\0";
|
||||
|
@ -68,25 +58,13 @@ int maxInArray(int *array , int N){
|
|||
}
|
||||
return max;
|
||||
}
|
||||
/**
|
||||
* @brief return the unix time in millisecond
|
||||
*
|
||||
* @return int64_t
|
||||
*/
|
||||
|
||||
int64_t millis()
|
||||
{
|
||||
struct timespec now;
|
||||
timespec_get(&now, TIME_UTC);
|
||||
return ((int64_t) now.tv_sec) * 1000 + ((int64_t) now.tv_nsec) / 1000000;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief write one lign of rawData in the file @param rawDataFile (simulate of freq of the Vegetal Signals Captor)
|
||||
*
|
||||
* @param rawDataFile
|
||||
* @return true if the lign is correctly write , else :
|
||||
* @return false
|
||||
*/
|
||||
bool writeOneRawData(FILE *rawDataFile){
|
||||
char buff[26];
|
||||
char buff2[18];
|
||||
|
@ -127,7 +105,7 @@ bool writeOneRawData(FILE *rawDataFile){
|
|||
}
|
||||
}
|
||||
cptData++;
|
||||
//sleep(0.004); //simul freq here
|
||||
sleep(0.004); //simul la freq ech
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
@ -135,7 +113,7 @@ bool writeOneRawData(FILE *rawDataFile){
|
|||
}
|
||||
}
|
||||
|
||||
void *threadSimulateFlux(void *vargp){
|
||||
void *simulateFlux(void *vargp){
|
||||
|
||||
char *fileName = createNewRawDataFileName();
|
||||
FILE *rawDataFile = fopen(fileName,"w+");
|
||||
|
@ -152,5 +130,6 @@ void *threadSimulateFlux(void *vargp){
|
|||
FILE *rawDataFile = fopen(fileName,"w+");
|
||||
}
|
||||
}
|
||||
//queuePrintWholeQ(firstRawDataQueue);
|
||||
rawDataWriteFlag = false;
|
||||
}
|
||||
|
|
|
@ -18,4 +18,4 @@ extern int cptFile;
|
|||
|
||||
char *convertIntegerToChar(int N);
|
||||
bool writeOneRawData(FILE *f);
|
||||
void *threadSimulateFlux(void *vargp);
|
||||
void *simulateFlux(void *vargp);
|
Loading…
Reference in a new issue