correct includes
This commit is contained in:
parent
a685866fbc
commit
b15892d0a0
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -83,6 +83,7 @@ install_manifest.txt
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
CTestTestfile.cmake
|
CTestTestfile.cmake
|
||||||
_deps
|
_deps
|
||||||
|
build
|
||||||
|
|
||||||
### CMake Patch ###
|
### CMake Patch ###
|
||||||
# External projects
|
# External projects
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Code from the following github repo: https://github.com/ControlEverythingCommunity/TSL2561/blob/master/C/TSL2561.c
|
// 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)
|
void printSpectrum(int file)
|
||||||
{
|
{
|
||||||
|
@ -8,15 +8,15 @@ void printSpectrum(int file)
|
||||||
char reg[1] = {0x0C | 0x80};
|
char reg[1] = {0x0C | 0x80};
|
||||||
write(file, reg, 1);
|
write(file, reg, 1);
|
||||||
char data[4] = {0};
|
char data[4] = {0};
|
||||||
if(read(file, data, 4) != 4)
|
if (read(file, data, 4) != 4)
|
||||||
{
|
{
|
||||||
printf("Erorr : Input/output Erorr \n");
|
printf("Erorr : Input/output Erorr \n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Convert the data
|
// 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)
|
||||||
float ch1 = (data[3] * 256 + data[2]); //Infrared Value
|
float ch1 = (data[3] * 256 + data[2]); // Infrared Value
|
||||||
// Output data to screen
|
// Output data to screen
|
||||||
printf("Full Spectrum(IR + Visible) : %.1f lux \n", ch0);
|
printf("Full Spectrum(IR + Visible) : %.1f lux \n", ch0);
|
||||||
printf("Infrared Value : %.1f lux \n", ch1);
|
printf("Infrared Value : %.1f lux \n", ch1);
|
||||||
|
@ -31,14 +31,14 @@ float getFullSpectrum(int file)
|
||||||
char reg[1] = {0x0C | 0x80};
|
char reg[1] = {0x0C | 0x80};
|
||||||
write(file, reg, 1);
|
write(file, reg, 1);
|
||||||
char data[4] = {0};
|
char data[4] = {0};
|
||||||
if(read(file, data, 4) != 4)
|
if (read(file, data, 4) != 4)
|
||||||
{
|
{
|
||||||
printf("Erorr : Input/output Erorr \n");
|
printf("Erorr : Input/output Erorr \n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Convert the data
|
// 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;
|
return ch0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,14 +50,14 @@ float getInfraredLight(int file)
|
||||||
char reg[1] = {0x0C | 0x80};
|
char reg[1] = {0x0C | 0x80};
|
||||||
write(file, reg, 1);
|
write(file, reg, 1);
|
||||||
char data[4] = {0};
|
char data[4] = {0};
|
||||||
if(read(file, data, 4) != 4)
|
if (read(file, data, 4) != 4)
|
||||||
{
|
{
|
||||||
printf("Erorr : Input/output Erorr \n");
|
printf("Erorr : Input/output Erorr \n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Convert the data
|
// Convert the data
|
||||||
float ch1 = (data[3] * 256 + data[2]); //Infrared Value
|
float ch1 = (data[3] * 256 + data[2]); // Infrared Value
|
||||||
return ch1;
|
return ch1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ float getInfraredLight(int file)
|
||||||
int init_TSL2561(char *bus)
|
int init_TSL2561(char *bus)
|
||||||
{
|
{
|
||||||
int file;
|
int file;
|
||||||
if((file = open(bus, O_RDWR)) < 0)
|
if ((file = open(bus, O_RDWR)) < 0)
|
||||||
{
|
{
|
||||||
printf("Failed to open the bus. \n");
|
printf("Failed to open the bus. \n");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -87,21 +87,22 @@ int init_TSL2561(char *bus)
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TSL2561()
|
void TSL2561()
|
||||||
{
|
{
|
||||||
int fe = 1;
|
int fe = 1;
|
||||||
int file;
|
int file;
|
||||||
file = init_TSL2561(bus);
|
file = init_TSL2561(bus);
|
||||||
while(1)
|
while (1)
|
||||||
{
|
{
|
||||||
sleep(1/fe);
|
sleep(1 / fe);
|
||||||
float a = getFullSpectrum(file);
|
float a = getFullSpectrum(file);
|
||||||
float b = getInfraredLight(file);
|
float b = getInfraredLight(file);
|
||||||
printf("%.1f\n",a);
|
printf("%.1f\n", a);
|
||||||
printf("%.1f\n",b);
|
printf("%.1f\n", b);
|
||||||
printSpectrum(file);
|
printSpectrum(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void main(){
|
void main()
|
||||||
TSL2561();
|
{
|
||||||
|
TSL2561();
|
||||||
}
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
#include "include/average.h"
|
#include "./Include/average.h"
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
#include "include/fileGestion.h"
|
#include "./Include/fileGestion.h"
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
/**
|
/**
|
||||||
* @brief realize the average calcul
|
* @brief realize the average calcul
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,23 +1,22 @@
|
||||||
#include "include/b2hd.h"
|
#include "./Include/b2hd.h"
|
||||||
#include <time.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);
|
||||||
|
|
||||||
|
// #ifdef __USE_ISOC11 ????
|
||||||
int64_t millis(){
|
int64_t tmp = (((int64_t)now->tv_sec) * 1000 + ((int64_t)now->tv_nsec) / ((int64_t)1000000));
|
||||||
//struct timespec now;
|
free(now);
|
||||||
struct timespec *now = (struct timespec *) malloc(sizeof(struct timespec));
|
return tmp;
|
||||||
//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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief allow to transform all binary hex data send by the Vegetal Signal captor in a .TXT file into decimal values in a .csv
|
* @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()
|
void b2hd()
|
||||||
{
|
{
|
||||||
|
@ -28,38 +27,47 @@ void b2hd()
|
||||||
int32_t values[8];
|
int32_t values[8];
|
||||||
uint32_t valbin[8];
|
uint32_t valbin[8];
|
||||||
quartet value;
|
quartet value;
|
||||||
|
|
||||||
while (fread(&buff, 26, 1, stdin)) {
|
while (fread(&buff, 26, 1, stdin))
|
||||||
fprintf(stdout , "%ld,", millis());
|
{
|
||||||
for (int i = 1; i < 9; i++){
|
fprintf(stdout, "%ld,", millis());
|
||||||
/*buff[25] = '\0';*/
|
for (int i = 1; i < 9; i++)
|
||||||
if (strncmp(buff, "#################\n", (size_t)18) == 0) {
|
{
|
||||||
if (!(fread(&buff2, 18, 1, stdin))) {
|
/*buff[25] = '\0';*/
|
||||||
|
if (strncmp(buff, "#################\n", (size_t)18) == 0)
|
||||||
|
{
|
||||||
|
if (!(fread(&buff2, 18, 1, stdin)))
|
||||||
|
{
|
||||||
fprintf(stderr, "Erreur lesture après ###...#");
|
fprintf(stderr, "Erreur lesture après ###...#");
|
||||||
break;
|
break;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
/*buff2[17] = '\0';*/
|
/*buff2[17] = '\0';*/
|
||||||
strncpy(buff, &buff[18], 8);
|
strncpy(buff, &buff[18], 8);
|
||||||
strncpy(&buff[8], buff2, 18);
|
strncpy(&buff[8], buff2, 18);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
value.octet1 = buff[3*i+1];
|
value.octet1 = buff[3 * i + 1];
|
||||||
value.octet2 = buff[3*i+2];
|
value.octet2 = buff[3 * i + 2];
|
||||||
value.octet3 = buff[3*i+3];
|
value.octet3 = buff[3 * i + 3];
|
||||||
value.octet4 = 0;
|
value.octet4 = 0;
|
||||||
/*memcpy(&values[i], &value, sizeof(quartet));*/
|
/*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));
|
memcpy(&values[i], &valbin[i], sizeof(uint32_t));
|
||||||
if(i<8){
|
if (i < 8)
|
||||||
fprintf(stdout, "%d,", values[i]/256);
|
{
|
||||||
|
fprintf(stdout, "%d,", values[i] / 256);
|
||||||
}
|
}
|
||||||
else{
|
else
|
||||||
fprintf(stdout, "%d\n", values[i]/256);
|
{
|
||||||
|
fprintf(stdout, "%d\n", values[i] / 256);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc , char** argv){
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
b2hd();
|
b2hd();
|
||||||
}
|
}
|
|
@ -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)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
|
@ -5,14 +5,14 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "include/fileGestion.h"
|
#include "./Include/fileGestion.h"
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
#include "include/growthRate.h"
|
#include "./Include/growthRate.h"
|
||||||
#include "include/power.h"
|
#include "./Include/power.h"
|
||||||
#include "include/simulateFlux.h"
|
#include "./Include/simulateFlux.h"
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
#include "include/average.h"
|
#include "./Include/average.h"
|
||||||
//#include "b2hd.h"
|
// #include "b2hd.h"
|
||||||
|
|
||||||
bool rawDataWriteFlag;
|
bool rawDataWriteFlag;
|
||||||
int nRowRawData = 500;
|
int nRowRawData = 500;
|
||||||
|
|
|
@ -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
|
* @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
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
#include "include/fileGestion.h"
|
#include "./Include/fileGestion.h"
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
// #include <string.h>
|
// #include <string.h>
|
||||||
|
|
||||||
long **getlongArray(int N, int M) /* Allocate the array */
|
long **getlongArray(int N, int M) /* Allocate the array */
|
||||||
|
|
|
@ -1,34 +1,40 @@
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
#include "include/fileGestion.h"
|
#include "./Include/fileGestion.h"
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
#include "include/growthRate.h"
|
#include "./Include/growthRate.h"
|
||||||
/**
|
/**
|
||||||
* @brief calculate de growth rate between to point next to each other
|
* @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 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
|
* @param gRateArray array that contaigns results of the growth ratecalculation
|
||||||
*/
|
*/
|
||||||
void growthRateCalculation(double **dataArray , double *gRateArray){
|
void growthRateCalculation(double **dataArray, double *gRateArray)
|
||||||
for(int i = 0 ; i < nCol-1 ; i++){
|
{
|
||||||
|
for (int i = 0; i < nCol - 1; i++)
|
||||||
|
{
|
||||||
gRateArray[i] = (dataArray[0][i] - dataArray[1][i]) / period;
|
gRateArray[i] = (dataArray[0][i] - dataArray[1][i]) / period;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief calcul then print differentiate in csv
|
* @brief calcul then print differentiate in csv
|
||||||
*
|
*
|
||||||
* @param dataLign
|
* @param dataLign
|
||||||
*/
|
*/
|
||||||
void growthRateFunction(double **dataLign , char* fileName){
|
void growthRateFunction(double **dataLign, char *fileName)
|
||||||
double gRateArray[nCol-1];
|
{
|
||||||
growthRateCalculation(dataLign , gRateArray);
|
double gRateArray[nCol - 1];
|
||||||
appendDataInFile(fileName,gRateArray , nCol-1);
|
growthRateCalculation(dataLign, gRateArray);
|
||||||
|
appendDataInFile(fileName, gRateArray, nCol - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sumColArray(long **p, double res[] , int N , int M){
|
void sumColArray(long **p, double res[], int N, int M)
|
||||||
for(int i = 1; i < M; i++){
|
{
|
||||||
|
for (int i = 1; i < M; i++)
|
||||||
|
{
|
||||||
int j = 0;
|
int j = 0;
|
||||||
res[i] = 0;
|
res[i] = 0;
|
||||||
while(j < N){
|
while (j < N)
|
||||||
|
{
|
||||||
res[i] += p[i][j];
|
res[i] += p[i][j];
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "include/simulateFlux.h"
|
#include "./Include/simulateFlux.h"
|
||||||
#include "include/power.h"
|
#include "./Include/power.h"
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
#include "include/average.h"
|
#include "./Include/average.h"
|
||||||
#include "include/growthRate.h"
|
#include "./Include/growthRate.h"
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
|
|
||||||
bool rawDataWriteFlag;
|
bool rawDataWriteFlag;
|
||||||
int nRowRawData = 5000;
|
int nRowRawData = 5000;
|
||||||
|
@ -146,8 +146,10 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
printf("%d", nCol);
|
printf("%d", nCol);
|
||||||
|
|
||||||
for(int i = 0 ; i < 8 ; i++){
|
for (int i = 0; i < 8; i++)
|
||||||
if(selectionCaptors[i]){
|
{
|
||||||
|
if (selectionCaptors[i])
|
||||||
|
{
|
||||||
nCol++;
|
nCol++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "include/power.h"
|
#include "./Include/power.h"
|
||||||
#include "include/getArray.h"
|
#include "./Include/getArray.h"
|
||||||
#include "include/fileGestion.h"
|
#include "./Include/fileGestion.h"
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief realize the powerThreadFunction calcul
|
* @brief realize the powerThreadFunction calcul
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief struct queue struct used for queueing string name
|
* @brief struct queue struct used for queueing string name
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "include/simulateFlux.h"
|
#include "./Include/simulateFlux.h"
|
||||||
#include "include/initialParameters.h"
|
#include "./Include/initialParameters.h"
|
||||||
#include "include/queue.h"
|
#include "./Include/queue.h"
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -212,7 +212,7 @@ void *threadSimulateFlux(void *vargp)
|
||||||
// prepare next file now
|
// prepare next file now
|
||||||
fileName = createNewRawDataFileName();
|
fileName = createNewRawDataFileName();
|
||||||
rawDataFile = fopen(fileName, "w+");
|
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;
|
rawDataWriteFlag = false;
|
||||||
|
|
|
@ -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
124
Db-Script/database.c
Normal 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
14
Db-Script/database.h
Normal 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
1
Db-Script/database.py
Normal 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
BIN
Db-Script/db
Executable file
Binary file not shown.
0
Db-Script/robotgowest.db
Normal file
0
Db-Script/robotgowest.db
Normal file
Loading…
Reference in a new issue