correct includes

This commit is contained in:
QuentinPerret 2023-06-01 17:22:38 +02:00
parent a685866fbc
commit b15892d0a0
19 changed files with 256 additions and 164 deletions

1
.gitignore vendored
View file

@ -83,6 +83,7 @@ install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
build
### CMake Patch ###
# External projects

View file

@ -1,5 +1,5 @@
// Code from the following github repo: https://github.com/ControlEverythingCommunity/TSL2561/blob/master/C/TSL2561.c
#include "include/TSL2561.h"
#include "./Include/TSL2561.h"
void printSpectrum(int file)
{
@ -8,15 +8,15 @@ void printSpectrum(int file)
char reg[1] = {0x0C | 0x80};
write(file, reg, 1);
char data[4] = {0};
if(read(file, data, 4) != 4)
if (read(file, data, 4) != 4)
{
printf("Erorr : Input/output Erorr \n");
}
else
{
// Convert the data
float ch0 = (data[1] * 256 + data[0]); //Full Spectrum(IR + Visible)
float ch1 = (data[3] * 256 + data[2]); //Infrared Value
float ch0 = (data[1] * 256 + data[0]); // Full Spectrum(IR + Visible)
float ch1 = (data[3] * 256 + data[2]); // Infrared Value
// Output data to screen
printf("Full Spectrum(IR + Visible) : %.1f lux \n", ch0);
printf("Infrared Value : %.1f lux \n", ch1);
@ -31,14 +31,14 @@ float getFullSpectrum(int file)
char reg[1] = {0x0C | 0x80};
write(file, reg, 1);
char data[4] = {0};
if(read(file, data, 4) != 4)
if (read(file, data, 4) != 4)
{
printf("Erorr : Input/output Erorr \n");
}
else
{
// Convert the data
float ch0 = (data[1] * 256 + data[0]); //Full Spectrum(IR + Visible)
float ch0 = (data[1] * 256 + data[0]); // Full Spectrum(IR + Visible)
return ch0;
}
}
@ -50,14 +50,14 @@ float getInfraredLight(int file)
char reg[1] = {0x0C | 0x80};
write(file, reg, 1);
char data[4] = {0};
if(read(file, data, 4) != 4)
if (read(file, data, 4) != 4)
{
printf("Erorr : Input/output Erorr \n");
}
else
{
// Convert the data
float ch1 = (data[3] * 256 + data[2]); //Infrared Value
float ch1 = (data[3] * 256 + data[2]); // Infrared Value
return ch1;
}
}
@ -65,7 +65,7 @@ float getInfraredLight(int file)
int init_TSL2561(char *bus)
{
int file;
if((file = open(bus, O_RDWR)) < 0)
if ((file = open(bus, O_RDWR)) < 0)
{
printf("Failed to open the bus. \n");
exit(1);
@ -87,21 +87,22 @@ int init_TSL2561(char *bus)
return file;
}
void TSL2561()
void TSL2561()
{
int fe = 1;
int file;
file = init_TSL2561(bus);
while(1)
while (1)
{
sleep(1/fe);
sleep(1 / fe);
float a = getFullSpectrum(file);
float b = getInfraredLight(file);
printf("%.1f\n",a);
printf("%.1f\n",b);
printf("%.1f\n", a);
printf("%.1f\n", b);
printSpectrum(file);
}
}
void main(){
TSL2561();
void main()
{
TSL2561();
}

View file

@ -1,8 +1,8 @@
#include "include/average.h"
#include "include/getArray.h"
#include "include/fileGestion.h"
#include "include/initialParameters.h"
#include "include/queue.h"
#include "./Include/average.h"
#include "./Include/getArray.h"
#include "./Include/fileGestion.h"
#include "./Include/initialParameters.h"
#include "./Include/queue.h"
/**
* @brief realize the average calcul
*

View file

@ -1,23 +1,22 @@
#include "include/b2hd.h"
#include "./Include/b2hd.h"
#include <time.h>
int64_t millis()
{
// struct timespec now;
struct timespec *now = (struct timespec *)malloc(sizeof(struct timespec));
// timespec_get(&now, TIME_UTC);
timespec_get(now, TIME_UTC);
int64_t millis(){
//struct timespec now;
struct timespec *now = (struct timespec *) malloc(sizeof(struct timespec));
//timespec_get(&now, TIME_UTC);
timespec_get(now, TIME_UTC);
//#ifdef __USE_ISOC11 ????
int64_t tmp = (((int64_t) now->tv_sec) * 1000 + ((int64_t) now->tv_nsec) / ((int64_t) 1000000));
free(now);
return tmp;
// #ifdef __USE_ISOC11 ????
int64_t tmp = (((int64_t)now->tv_sec) * 1000 + ((int64_t)now->tv_nsec) / ((int64_t)1000000));
free(now);
return tmp;
}
/**
* @brief allow to transform all binary hex data send by the Vegetal Signal captor in a .TXT file into decimal values in a .csv
*
*
*/
void b2hd()
{
@ -28,38 +27,47 @@ void b2hd()
int32_t values[8];
uint32_t valbin[8];
quartet value;
while (fread(&buff, 26, 1, stdin)) {
fprintf(stdout , "%ld,", millis());
for (int i = 1; i < 9; i++){
/*buff[25] = '\0';*/
if (strncmp(buff, "#################\n", (size_t)18) == 0) {
if (!(fread(&buff2, 18, 1, stdin))) {
while (fread(&buff, 26, 1, stdin))
{
fprintf(stdout, "%ld,", millis());
for (int i = 1; i < 9; i++)
{
/*buff[25] = '\0';*/
if (strncmp(buff, "#################\n", (size_t)18) == 0)
{
if (!(fread(&buff2, 18, 1, stdin)))
{
fprintf(stderr, "Erreur lesture après ###...#");
break;
} else {
break;
}
else
{
/*buff2[17] = '\0';*/
strncpy(buff, &buff[18], 8);
strncpy(&buff[8], buff2, 18);
}
}
value.octet1 = buff[3*i+1];
value.octet2 = buff[3*i+2];
value.octet3 = buff[3*i+3];
value.octet1 = buff[3 * i + 1];
value.octet2 = buff[3 * i + 2];
value.octet3 = buff[3 * i + 3];
value.octet4 = 0;
/*memcpy(&values[i], &value, sizeof(quartet));*/
valbin[i] = buff[3*i+1]*256*256*256 + buff[3*i+2]*256*256 + buff[3*i+3]*256;
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(stdout, "%d,", values[i]/256);
if (i < 8)
{
fprintf(stdout, "%d,", values[i] / 256);
}
else{
fprintf(stdout, "%d\n", values[i]/256);
else
{
fprintf(stdout, "%d\n", values[i] / 256);
}
}
}
}
int main(int argc , char** argv){
int main(int argc, char **argv)
{
b2hd();
}

View file

@ -1,25 +0,0 @@
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
void writeCaptorNumber(int N)
{
fprintf(stdout ,"{\n\"captorNumber\" : %d , " , N);
}
void writeTimeArray()
{
while
}
void writeValuesArray(int N)
{
}
int main(int argc, char **argv)
{
}

View file

@ -5,14 +5,14 @@
#include <stdio.h>
#include <string.h>
#include "include/fileGestion.h"
#include "include/getArray.h"
#include "include/growthRate.h"
#include "include/power.h"
#include "include/simulateFlux.h"
#include "include/queue.h"
#include "include/average.h"
//#include "b2hd.h"
#include "./Include/fileGestion.h"
#include "./Include/getArray.h"
#include "./Include/growthRate.h"
#include "./Include/power.h"
#include "./Include/simulateFlux.h"
#include "./Include/queue.h"
#include "./Include/average.h"
// #include "b2hd.h"
bool rawDataWriteFlag;
int nRowRawData = 500;

View file

@ -1,4 +1,4 @@
#include "include/fileGestion.h"
#include "./Include/fileGestion.h"
/**
* @brief function that delete nRow lign in the beginning of the file rawData.csv . This function is necessary to not deal with the same ligns over and over

View file

@ -1,6 +1,6 @@
#include "include/getArray.h"
#include "include/fileGestion.h"
#include "include/initialParameters.h"
#include "./Include/getArray.h"
#include "./Include/fileGestion.h"
#include "./Include/initialParameters.h"
// #include <string.h>
long **getlongArray(int N, int M) /* Allocate the array */

View file

@ -1,34 +1,40 @@
#include "include/initialParameters.h"
#include "include/fileGestion.h"
#include "include/getArray.h"
#include "include/growthRate.h"
#include "./Include/initialParameters.h"
#include "./Include/fileGestion.h"
#include "./Include/getArray.h"
#include "./Include/growthRate.h"
/**
* @brief calculate de growth rate between to point next to each other
*
*
* @param dataArray array with data of points next to each other for each captor (dim : 2 * nCols)
* @param gRateArray array that contaigns results of the growth ratecalculation
*/
void growthRateCalculation(double **dataArray , double *gRateArray){
for(int i = 0 ; i < nCol-1 ; i++){
void growthRateCalculation(double **dataArray, double *gRateArray)
{
for (int i = 0; i < nCol - 1; i++)
{
gRateArray[i] = (dataArray[0][i] - dataArray[1][i]) / period;
}
}
/**
* @brief calcul then print differentiate in csv
*
* @param dataLign
*
* @param dataLign
*/
void growthRateFunction(double **dataLign , char* fileName){
double gRateArray[nCol-1];
growthRateCalculation(dataLign , gRateArray);
appendDataInFile(fileName,gRateArray , nCol-1);
void growthRateFunction(double **dataLign, char *fileName)
{
double gRateArray[nCol - 1];
growthRateCalculation(dataLign, gRateArray);
appendDataInFile(fileName, gRateArray, nCol - 1);
}
void sumColArray(long **p, double res[] , int N , int M){
for(int i = 1; i < M; i++){
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){
while (j < N)
{
res[i] += p[i][j];
j++;
}

View file

@ -1,13 +1,13 @@
#include <pthread.h>
#include <stdbool.h>
#include "include/simulateFlux.h"
#include "include/power.h"
#include "include/initialParameters.h"
#include "include/queue.h"
#include "include/average.h"
#include "include/growthRate.h"
#include "include/getArray.h"
#include "./Include/simulateFlux.h"
#include "./Include/power.h"
#include "./Include/initialParameters.h"
#include "./Include/queue.h"
#include "./Include/average.h"
#include "./Include/growthRate.h"
#include "./Include/getArray.h"
bool rawDataWriteFlag;
int nRowRawData = 5000;
@ -146,8 +146,10 @@ int main(int argc, char **argv)
}
printf("%d", nCol);
for(int i = 0 ; i < 8 ; i++){
if(selectionCaptors[i]){
for (int i = 0; i < 8; i++)
{
if (selectionCaptors[i])
{
nCol++;
}
}

View file

@ -1,10 +1,10 @@
#include <math.h>
#include "include/power.h"
#include "include/getArray.h"
#include "include/fileGestion.h"
#include "include/initialParameters.h"
#include "include/queue.h"
#include "./Include/power.h"
#include "./Include/getArray.h"
#include "./Include/fileGestion.h"
#include "./Include/initialParameters.h"
#include "./Include/queue.h"
/**
* @brief realize the powerThreadFunction calcul

View file

@ -4,7 +4,7 @@
#include <string.h>
#include <stdbool.h>
#include "include/queue.h"
#include "./Include/queue.h"
/**
* @brief struct queue struct used for queueing string name

View file

@ -1,6 +1,6 @@
#include "include/simulateFlux.h"
#include "include/initialParameters.h"
#include "include/queue.h"
#include "./Include/simulateFlux.h"
#include "./Include/initialParameters.h"
#include "./Include/queue.h"
#include <time.h>
#include <errno.h>
@ -212,7 +212,7 @@ void *threadSimulateFlux(void *vargp)
// prepare next file now
fileName = createNewRawDataFileName();
rawDataFile = fopen(fileName, "w+");
//add test to get p then print it here // p is gotten from fileName file
// add test to get p then print it here // p is gotten from fileName file
}
}
rawDataWriteFlag = false;

View file

@ -1,40 +0,0 @@
##Imports
import sqlite3 as sql
import pandas as pd
import os
import datetime
import matplotlib.pyplot as plt
import numpy as np
def createMetadataTable():
"""Create the db table which contaign all data """
db = sql.connect("robotgowestdb.db")
c = db.cursor()
requestCreate = '''CREATE TABLE IF NOT EXISTS METADATA_TABLE (
[Id] INTEGER PRIMARY KEY,
[Place] TEXT,
[Start] TEXT
)'''
c.execute(requestCreate)
db.commit()
def insertMetadataElement(place : str , start : datetime):
"""Insert a new element in the metadat table
Args:
currency (str): name of the currency to fetch its metadata with the yFinance API
"""
db = sql.connect("robotgowestdb.db")
c = db.cursor()
request = f'''INSERT INTO METADATA_TABLE (Place,Start)
VALUES (
'{place}',
'{start}'
)'''
c.execute(request)
db.commit()
createMetadataTable()
insertMetadataElement("ici", datetime.datetime.now())

124
Db-Script/database.c Normal file
View file

@ -0,0 +1,124 @@
#include "./database.h"
int openDb(sqlite3 *db)
{
int rc = sqlite3_open("robotgowest.db", &db);
if (rc != SQLITE_OK)
{
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
return 0;
}
int initializeTrailsAndCaptorMetadataTables()
{
sqlite3 *db;
char *err_msg = 0;
int rc;
if (!openDb(db))
{
char *sql = "DROP TABLE IF EXISTS Trials;"
"DROP TABLE IF EXISTS CaptorMetadata;"
"CREATE TABLE Trials(Id INTEGER PRIMARY KEY AUTOINCREMENT, Position TEXT, Start INT, Frequency NUMBER, Duration INT);"
"CREATE TABLE CaptorMetadata(Id INTEGER PRIMARY KEY AUTOINCREMENT, CaptorNumber INT, TrialId INT, FOREIGN KEY (TrialId) REFERENCES Trials(Id));";
rc = sqlite3_prepare_v2(db, sql, 0, 0, &err_msg);
if (rc != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
return 0;
}
}
int createCaptorDataTable(int trialId, int captorNumber)
{
sqlite3 *db;
char *err_msg = 0;
int rc;
// Create Table Name
char tableName[8];
strcpy(tableName, "T");
strcat(tableName, convertIntegerToChar(trialId));
strcat(tableName, "C");
strcat(tableName, convertIntegerToChar(captorNumber));
strcat(tableName, "Data");
if (!openDb(db))
{
char sql[101] = "CREATE TABLE ";
strcat(sql, tableName);
strcat(sql, " (Id INTEGER PRIMARY KEY AUTOINCREMENT, Lux NUMBER, Mean NUMBER , Power NUMBER);");
rc = sqlite3_exec(db, sql, 0, 0, &err_msg);
if (rc != SQLITE_OK)
{
printf("Error code : %i", rc);
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 1;
}
sqlite3_close(db);
return 0;
}
}
/**
* @brief convert an interger N into a char*
*
* @param N
* @return char*
*/
char *convertIntegerToChar(int N)
{
// Count digits in number N
int m = N;
int digit = 0;
while (m)
{
digit++;
m /= 10;
}
char *arr;
char arr1[digit];
arr = (char *)malloc(digit * sizeof(char));
int index = 0;
while (N)
{
arr1[++index] = N % 10 + '0';
N /= 10;
}
int i;
for (i = 0; i < index; i++)
{
arr[i] = arr1[index - i];
}
arr[i] = '\0';
return (char *)arr;
}
int main(void)
{
initializeTrailsAndCaptorMetadataTables();
// createCaptorDataTable(1, 1);
}

14
Db-Script/database.h Normal file
View file

@ -0,0 +1,14 @@
#include <sqlite3.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// Duplication from simulFlux.c
/**
* @brief convert an interger N into a char*
*
* @param N
* @return char*
*/
char *convertIntegerToChar(int N);

1
Db-Script/database.py Normal file
View file

@ -0,0 +1 @@
##This mist include all fetch function and also init and insert function for nn training annd testing result

BIN
Db-Script/db Executable file

Binary file not shown.

0
Db-Script/robotgowest.db Normal file
View file