Fix formatting on new code

This commit is contained in:
Paul Dino Jones 2024-01-25 03:49:15 +00:00
parent 66e9049891
commit 18faa3a65a
5 changed files with 602 additions and 556 deletions

View File

@ -104,7 +104,7 @@ void* browseloop(Parameters* p, char* datadir)
{ {
struct _h_result result; struct _h_result result;
struct _h_connection * conn; struct _h_connection* conn;
conn = h_connect_pgsql(p->db_conn); conn = h_connect_pgsql(p->db_conn);
if (conn == NULL) if (conn == NULL)
@ -377,7 +377,8 @@ void* browseloop(Parameters* p, char* datadir)
{ {
wclear(bwin1); wclear(bwin1);
switch(screen) { switch(screen)
{
case SESSIONS_SCREEN: case SESSIONS_SCREEN:
@ -506,10 +507,12 @@ void* browseloop(Parameters* p, char* datadir)
{ {
//stint_useid = lapsdb.rows[i-1].rows; //stint_useid = lapsdb.rows[i-1].rows;
if ( lapsdb.rows[i-1].lap_id == selection1 ) { if ( lapsdb.rows[i-1].lap_id == selection1 )
{
mvwaddnstr(bwin1, 4+i, bwiny/7 - 4, " 1 ", 3); mvwaddnstr(bwin1, 4+i, bwiny/7 - 4, " 1 ", 3);
} }
else if ( lapsdb.rows[i-1].lap_id == selection2 ) else
if ( lapsdb.rows[i-1].lap_id == selection2 )
{ {
mvwaddnstr(bwin1, 4+i, bwiny/7 - 4, " 2 ", 3); mvwaddnstr(bwin1, 4+i, bwiny/7 - 4, " 2 ", 3);
@ -554,7 +557,8 @@ void* browseloop(Parameters* p, char* datadir)
} }
if (ch == 'b') if (ch == 'b')
{ {
switch(screen) { switch(screen)
{
case STINTS_SCREEN: case STINTS_SCREEN:
action = 2; action = 2;
@ -572,7 +576,8 @@ void* browseloop(Parameters* p, char* datadir)
} }
if (ch == 'e') if (ch == 'e')
{ {
switch(screen) { switch(screen)
{
case SESSIONS_SCREEN: case SESSIONS_SCREEN:
action = 3; action = 3;
@ -603,7 +608,7 @@ void* browseloop(Parameters* p, char* datadir)
size_t strsize = strlen(datadir) + strlen(p->gnuplot_file) + 1; size_t strsize = strlen(datadir) + strlen(p->gnuplot_file) + 1;
char* plotfile = malloc(strsize); char* plotfile = malloc(strsize);
snprintf(plotfile, strsize, "%s%s", datadir, p->gnuplot_file); snprintf(plotfile, strsize, "%s%s", datadir, p->gnuplot_file);
static char* argv1[]={"gnuplot", "-p", "plotfile.gp", NULL}; static char* argv1[]= {"gnuplot", "-p", "plotfile.gp", NULL};
argv1[2] = plotfile; argv1[2] = plotfile;
slogi("Using gnu plot file %s", plotfile); slogi("Using gnu plot file %s", plotfile);
if(!fork()) if(!fork())

View File

@ -109,7 +109,7 @@ int curses_init()
box(win4, 0, 0); box(win4, 0, 0);
} }
char * removeSpacesFromStr(char *string) char* removeSpacesFromStr(char* string)
{ {
int non_space_count = 0; int non_space_count = 0;
@ -129,7 +129,7 @@ char * removeSpacesFromStr(char *string)
void update_date() void update_date()
{ {
time_t rawtime; time_t rawtime;
struct tm * timeinfo; struct tm* timeinfo;
time ( &rawtime ); time ( &rawtime );
timeinfo = localtime ( &rawtime ); timeinfo = localtime ( &rawtime );
sprintf(datestring, "%.24s", asctime (timeinfo)); sprintf(datestring, "%.24s", asctime (timeinfo));
@ -171,7 +171,8 @@ int mainloop(Parameters* p)
getSim(simdata, simmap, &p->simon, &p->sim); getSim(simdata, simmap, &p->simon, &p->sim);
if (p->simon == true) { if (p->simon == true)
{
p->program_state = 1; p->program_state = 1;
if (p->cli == true) if (p->cli == true)
{ {
@ -319,7 +320,8 @@ void* looper(void* thargs)
wclear(win3); wclear(win3);
wclear(win4); wclear(win4);
{ // window 1 car diagnostics {
// window 1 car diagnostics
char spacer[14]; char spacer[14];
sprintf(spacer, "\n"); sprintf(spacer, "\n");
@ -474,7 +476,8 @@ void* looper(void* thargs)
rectangle(18, 18, 22, 22); // right rear rectangle(18, 18, 22, 22); // right rear
} }
{ // window 2 session info {
// window 2 session info
char spacer[14]; char spacer[14];
sprintf(spacer, "\n"); sprintf(spacer, "\n");
@ -537,7 +540,8 @@ void* looper(void* thargs)
wattrset(win2, COLOR_PAIR(1)); wattrset(win2, COLOR_PAIR(1));
} }
{ // window 3 basic timing and scoring {
// window 3 basic timing and scoring
char spacer[14]; char spacer[14];
sprintf(spacer, "\n"); sprintf(spacer, "\n");
@ -602,7 +606,8 @@ void* looper(void* thargs)
wattrset(win3, COLOR_PAIR(1)); wattrset(win3, COLOR_PAIR(1));
} }
{ // window 4 live standings timing and scoring {
// window 4 live standings timing and scoring
char spacer[14]; char spacer[14];
sprintf(spacer, "\n"); sprintf(spacer, "\n");
waddstr(win4, spacer); waddstr(win4, spacer);
@ -637,8 +642,10 @@ void* looper(void* thargs)
for(i=0; i<displaycars; i++) for(i=0; i<displaycars; i++)
{ {
if((ihold+1)==simdata->cars[i].pos) if((ihold+1)==simdata->cars[i].pos)
{
break; break;
} }
}
wattrset(win4, COLOR_PAIR(2)); wattrset(win4, COLOR_PAIR(2));
int maxstrlen = 20; int maxstrlen = 20;
@ -730,7 +737,7 @@ void* simviewmysql(void* thargs)
SimMap* simmap = p->simmap; SimMap* simmap = p->simmap;
struct _h_result result; struct _h_result result;
struct _h_connection * conn; struct _h_connection* conn;
conn = h_connect_pgsql(p->db_conn); conn = h_connect_pgsql(p->db_conn);
if (conn == NULL) if (conn == NULL)

View File

@ -20,41 +20,47 @@ int getLastInsertID(struct _h_connection* conn)
return id; return id;
} }
void get_row_results(struct _h_result result, DBField* fields, void* rows, size_t rowsize) { void get_row_results(struct _h_result result, DBField* fields, void* rows, size_t rowsize)
{
int col, row, i; int col, row, i;
char buf[64]; char buf[64];
//sess->hasdata = true; //sess->hasdata = true;
//sess->rows = result.nb_rows; //sess->rows = result.nb_rows;
slogi("rows: %d, col: %d", result.nb_rows, result.nb_columns); slogi("rows: %d, col: %d", result.nb_rows, result.nb_columns);
char* aaa = (char *) rows; char* aaa = (char*) rows;
for (row = 0; row<result.nb_rows; row++) { for (row = 0; row<result.nb_rows; row++)
{
char* aa = (char*)aaa + (rowsize * row); char* aa = (char*)aaa + (rowsize * row);
for (col=0; col<result.nb_columns; col++) { for (col=0; col<result.nb_columns; col++)
{
char* a = (char*) aa + fields[col].offset; char* a = (char*) aa + fields[col].offset;
switch(result.data[row][col].type) { switch(result.data[row][col].type)
{
case HOEL_COL_TYPE_INT: case HOEL_COL_TYPE_INT:
int bb = ((struct _h_type_int *)result.data[row][col].t_data)->value; int bb = ((struct _h_type_int*)result.data[row][col].t_data)->value;
*(int*) a = bb; *(int*) a = bb;
break; break;
case HOEL_COL_TYPE_DOUBLE: case HOEL_COL_TYPE_DOUBLE:
double cc = ((struct _h_type_double *)result.data[row][col].t_data)->value; double cc = ((struct _h_type_double*)result.data[row][col].t_data)->value;
*(double*) a = cc; *(double*) a = cc;
break; break;
case HOEL_COL_TYPE_TEXT: case HOEL_COL_TYPE_TEXT:
char* ddd = ((struct _h_type_text *)result.data[row][col].t_data)->value; char* ddd = ((struct _h_type_text*)result.data[row][col].t_data)->value;
memcpy(a, ddd, fields[col].size); memcpy(a, ddd, fields[col].size);
break; break;
case HOEL_COL_TYPE_BLOB: case HOEL_COL_TYPE_BLOB:
for (i=0; i<((struct _h_type_blob *)result.data[row][col].t_data)->length; i++) { for (i=0; i<((struct _h_type_blob*)result.data[row][col].t_data)->length; i++)
printf("%c", *((char*)(((struct _h_type_blob *)result.data[row][col].t_data)->value+i))); {
if (i%80 == 0 && i>0) { printf("%c", *((char*)(((struct _h_type_blob*)result.data[row][col].t_data)->value+i)));
if (i%80 == 0 && i>0)
{
printf("\n"); printf("\n");
} }
} }
break; break;
case HOEL_COL_TYPE_DATE: case HOEL_COL_TYPE_DATE:
strftime(a, fields[col].size, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime *)result.data[row][col].t_data)->value); strftime(a, fields[col].size, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime*)result.data[row][col].t_data)->value);
//strftime(buf, 64, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime *)result.data[row][col].t_data)->value); //strftime(buf, 64, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime *)result.data[row][col].t_data)->value);
printf("| %s ", buf); printf("| %s ", buf);
case HOEL_COL_TYPE_NULL: case HOEL_COL_TYPE_NULL:
@ -69,7 +75,7 @@ void get_row_results(struct _h_result result, DBField* fields, void* rows, size_
int getsessions(struct _h_connection* conn, const char* sessionname, SessionDbo* sess) int getsessions(struct _h_connection* conn, const char* sessionname, SessionDbo* sess)
{ {
struct _h_result result; struct _h_result result;
struct _h_data * data; struct _h_data* data;
char* query = malloc(515 * sizeof(char)); char* query = malloc(515 * sizeof(char));
slogt("Performing query sessions"); slogt("Performing query sessions");
@ -100,7 +106,7 @@ int getsessions(struct _h_connection* conn, const char* sessionname, SessionDbo*
int getstints(struct _h_connection* conn, const char* sessionname, StintDbo* stint, int use_id) int getstints(struct _h_connection* conn, const char* sessionname, StintDbo* stint, int use_id)
{ {
struct _h_result result; struct _h_result result;
struct _h_data * data; struct _h_data* data;
char* query = malloc(150 * sizeof(char)); char* query = malloc(150 * sizeof(char));
slogt("Performing query stints"); slogt("Performing query stints");
@ -128,7 +134,7 @@ int getstints(struct _h_connection* conn, const char* sessionname, StintDbo* sti
int getlaps(struct _h_connection* conn, const char* sessionname, LapDbo* laps, int use_id) int getlaps(struct _h_connection* conn, const char* sessionname, LapDbo* laps, int use_id)
{ {
struct _h_result result; struct _h_result result;
struct _h_data * data; struct _h_data* data;
char* query = malloc(250 * sizeof(char)); char* query = malloc(250 * sizeof(char));
slogt("Performing query laps"); slogt("Performing query laps");
@ -139,7 +145,9 @@ int getlaps(struct _h_connection* conn, const char* sessionname, LapDbo* laps, i
laps->rows = malloc(sizeof(LapRowData) * result.nb_rows); laps->rows = malloc(sizeof(LapRowData) * result.nb_rows);
get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData)); get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData));
h_clean_result(&result); h_clean_result(&result);
} else { }
else
{
sloge("Error executing query %s returned %i", query, errcode); sloge("Error executing query %s returned %i", query, errcode);
free(query); free(query);
return -1; return -1;
@ -153,7 +161,7 @@ int gettrack(struct _h_connection* conn, const char* trackname)
{ {
json_t *j_result; json_t* j_result;
char* where_clause = h_build_where_clause(conn, "config_name=%s AND track_name=%s", "default", trackname); char* where_clause = h_build_where_clause(conn, "config_name=%s AND track_name=%s", "default", trackname);
json_t* j_query = json_pack("{sss[s]s{s{ssss}}}", "table", "track_config", "columns", "track_config_id", "where", " ", "operator", "raw", json_t* j_query = json_pack("{sss[s]s{s{ssss}}}", "table", "track_config", "columns", "track_config_id", "where", " ", "operator", "raw",
"value", where_clause); "value", where_clause);
@ -166,7 +174,8 @@ int gettrack(struct _h_connection* conn, const char* trackname)
h_free(where_clause); h_free(where_clause);
int track_config = -1; int track_config = -1;
// Test query execution result // Test query execution result
if (res == H_OK) { if (res == H_OK)
{
// Print result // Print result
//char* dump = json_dumps(j_result, JSON_INDENT(2)); //char* dump = json_dumps(j_result, JSON_INDENT(2));
//slogi("json select result is\n%s", dump); //slogi("json select result is\n%s", dump);
@ -182,7 +191,9 @@ int gettrack(struct _h_connection* conn, const char* trackname)
// Deallocate data result // Deallocate data result
//free(dump); //free(dump);
} else { }
else
{
sloge("Error executing select query %s: %d", qq, res); sloge("Error executing select query %s: %d", qq, res);
} }
json_decref(j_result); json_decref(j_result);
@ -194,7 +205,7 @@ int gettrack(struct _h_connection* conn, const char* trackname)
int getdriver(struct _h_connection* conn, const char* driver_name) int getdriver(struct _h_connection* conn, const char* driver_name)
{ {
json_t *j_result; json_t* j_result;
char* where_clause = h_build_where_clause(conn, "driver_name=%s", driver_name); char* where_clause = h_build_where_clause(conn, "driver_name=%s", driver_name);
json_t* j_query = json_pack("{sss[s]s{s{ssss}}}","table", "drivers", "columns", "driver_id", "where", " ", "operator", "raw", json_t* j_query = json_pack("{sss[s]s{s{ssss}}}","table", "drivers", "columns", "driver_id", "where", " ", "operator", "raw",
"value", where_clause); "value", where_clause);
@ -208,7 +219,8 @@ int getdriver(struct _h_connection* conn, const char* driver_name)
h_free(where_clause); h_free(where_clause);
int driver_id = -1; int driver_id = -1;
// Test query execution result // Test query execution result
if (res == H_OK) { if (res == H_OK)
{
// Print result // Print result
char* dump = json_dumps(j_result, JSON_INDENT(2)); char* dump = json_dumps(j_result, JSON_INDENT(2));
slogt("json select result is\n%s", dump); slogt("json select result is\n%s", dump);
@ -217,13 +229,16 @@ int getdriver(struct _h_connection* conn, const char* driver_name)
{ {
slogw("no driver by this name"); slogw("no driver by this name");
} }
else { else
{
json_t* jj = json_array_get(j_result, index1-1); json_t* jj = json_array_get(j_result, index1-1);
driver_id = json_integer_value(json_object_get(jj, "driver_id")); driver_id = json_integer_value(json_object_get(jj, "driver_id"));
} }
// Deallocate data result // Deallocate data result
free(dump); free(dump);
} else { }
else
{
sloge("Error executing select query %s: %d", qq, res); sloge("Error executing select query %s: %d", qq, res);
} }
json_decref(j_result); json_decref(j_result);
@ -235,7 +250,7 @@ int getdriver(struct _h_connection* conn, const char* driver_name)
int getcar(struct _h_connection* conn, const char* carname) int getcar(struct _h_connection* conn, const char* carname)
{ {
json_t *j_result; json_t* j_result;
char* where_clause = h_build_where_clause(conn, "car_name=%s", carname); char* where_clause = h_build_where_clause(conn, "car_name=%s", carname);
json_t* j_query = json_pack("{sss[s]s{s{ssss}}}","table", "cars", "columns", "car_id", "where", " ", "operator", "raw", json_t* j_query = json_pack("{sss[s]s{s{ssss}}}","table", "cars", "columns", "car_id", "where", " ", "operator", "raw",
"value", where_clause); "value", where_clause);
@ -248,7 +263,8 @@ int getcar(struct _h_connection* conn, const char* carname)
int car_id = -1; int car_id = -1;
// Test query execution result // Test query execution result
if (res == H_OK) { if (res == H_OK)
{
// Print result // Print result
char* dump = json_dumps(j_result, JSON_INDENT(2)); char* dump = json_dumps(j_result, JSON_INDENT(2));
slogt("json select result is\n%s", dump); slogt("json select result is\n%s", dump);
@ -257,13 +273,16 @@ int getcar(struct _h_connection* conn, const char* carname)
{ {
slogw("no car by this name"); slogw("no car by this name");
} }
else { else
{
json_t* jj = json_array_get(j_result, index1-1); json_t* jj = json_array_get(j_result, index1-1);
car_id = json_integer_value(json_object_get(jj, "car_id")); car_id = json_integer_value(json_object_get(jj, "car_id"));
} }
// Deallocate data result // Deallocate data result
free(dump); free(dump);
} else { }
else
{
sloge("Error executing select query %s: %d", qq, res); sloge("Error executing select query %s: %d", qq, res);
} }
json_decref(j_result); json_decref(j_result);
@ -282,8 +301,8 @@ int addtrackconfig(struct _h_connection* conn, int trackconfigid, const char* tr
{ {
return trackconfigid; return trackconfigid;
} }
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("track_config") ); json_object_set_new( root, "table", json_string("track_config") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -319,8 +338,8 @@ int addsession(struct _h_connection* conn, int eventid, int carid, int eventtype
// session_id | event_id | event_type | track_time | session_name // session_id | event_id | event_type | track_time | session_name
// | start_time | duration_min | elapsed_ms | laps | weather | // | start_time | duration_min | elapsed_ms | laps | weather |
// air_temp | road_temp | start_grip | // air_temp | road_temp | start_grip |
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("sessions") ); json_object_set_new( root, "table", json_string("sessions") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -359,8 +378,8 @@ int adddriver(struct _h_connection* conn, int driverid, const char* drivername)
{ {
return driverid; return driverid;
} }
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("drivers") ); json_object_set_new( root, "table", json_string("drivers") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -393,8 +412,8 @@ int adddriver(struct _h_connection* conn, int driverid, const char* drivername)
int addevent(struct _h_connection* conn, int track_config) int addevent(struct _h_connection* conn, int track_config)
{ {
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("events") ); json_object_set_new( root, "table", json_string("events") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -425,8 +444,8 @@ int addstint(struct _h_connection* conn, int sessionid, int driverid, int carid,
{ {
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("stints") ); json_object_set_new( root, "table", json_string("stints") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -468,8 +487,8 @@ int addstintlap(struct _h_connection* conn, int stintid, SimData* simdata)
// stint laps // stint laps
// stint_lap_id | stint_id | sector_1 | sector_2 | sector_3 | grip | tyre | time | cuts | crashes // stint_lap_id | stint_id | sector_1 | sector_2 | sector_3 | grip | tyre | time | cuts | crashes
// max_speed | avg_speed | finished_at // max_speed | avg_speed | finished_at
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("laps") ); json_object_set_new( root, "table", json_string("laps") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -503,8 +522,8 @@ int addcar(struct _h_connection* conn, int carid, const char* carname)
{ {
return carid; return carid;
} }
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("cars") ); json_object_set_new( root, "table", json_string("cars") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );
@ -534,8 +553,8 @@ int addcar(struct _h_connection* conn, int carid, const char* carname)
int addtelemetry(struct _h_connection* conn, int points, int stintid) int addtelemetry(struct _h_connection* conn, int points, int stintid)
{ {
json_t *root = json_object(); json_t* root = json_object();
json_t *json_arr = json_array(); json_t* json_arr = json_array();
json_object_set_new( root, "table", json_string("telemetry") ); json_object_set_new( root, "table", json_string("telemetry") );
json_object_set_new( root, "values", json_arr ); json_object_set_new( root, "values", json_arr );

View File

@ -12,7 +12,8 @@
#include "../helper/confighelper.h" #include "../helper/confighelper.h"
#include "../slog/slog.h" #include "../slog/slog.h"
int telem_result(struct _h_result result, int doublefields, int intfields, int* intarrays, double* doublearrays) { int telem_result(struct _h_result result, int doublefields, int intfields, int* intarrays, double* doublearrays)
{
int col, row, i; int col, row, i;
char buf[64]; char buf[64];
slogt("rows: %d, col: %d", result.nb_rows, result.nb_columns); slogt("rows: %d, col: %d", result.nb_rows, result.nb_columns);
@ -27,11 +28,14 @@ int telem_result(struct _h_result result, int doublefields, int intfields, int*
int intarrayoffset = 0; int intarrayoffset = 0;
int doublearrayoffset = 0; int doublearrayoffset = 0;
for (row = 0; row<result.nb_rows; row++) { for (row = 0; row<result.nb_rows; row++)
for (col=0; col<result.nb_columns; col++) { {
switch(result.data[row][col].type) { for (col=0; col<result.nb_columns; col++)
{
switch(result.data[row][col].type)
{
case HOEL_COL_TYPE_INT: case HOEL_COL_TYPE_INT:
int cc = ((struct _h_type_int *)result.data[row][col].t_data)->value; int cc = ((struct _h_type_int*)result.data[row][col].t_data)->value;
if (col == 1) if (col == 1)
{ {
points = cc; points = cc;
@ -41,7 +45,7 @@ int telem_result(struct _h_result result, int doublefields, int intfields, int*
//intarrays = malloc((sizeof(int)*1736)*3); //intarrays = malloc((sizeof(int)*1736)*3);
break; break;
case HOEL_COL_TYPE_TEXT: case HOEL_COL_TYPE_TEXT:
slogi("| %s ", ((struct _h_type_text *)result.data[row][col].t_data)->value); slogi("| %s ", ((struct _h_type_text*)result.data[row][col].t_data)->value);
break; break;
case HOEL_COL_TYPE_BLOB: case HOEL_COL_TYPE_BLOB:
int offset2 = 0; int offset2 = 0;
@ -50,19 +54,19 @@ int telem_result(struct _h_result result, int doublefields, int intfields, int*
i = 2; i = 2;
if (col < 5) if (col < 5)
{ {
while (i<((struct _h_type_blob *)result.data[row][col].t_data)->length) while (i<((struct _h_type_blob*)result.data[row][col].t_data)->length)
{ {
char sss[10]; char sss[10];
sss[0] = '0'; sss[0] = '0';
sss[1] = 'x'; sss[1] = 'x';
sss[2] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+2); sss[2] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+2);
sss[3] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+3); sss[3] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+3);
sss[4] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+4); sss[4] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+4);
sss[5] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+5); sss[5] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+5);
sss[6] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+6); sss[6] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+6);
sss[7] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+7); sss[7] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+7);
sss[8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+8); sss[8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+8);
sss[9] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+9); sss[9] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+9);
long val; long val;
int number = (int)strtol(sss, NULL, 16); int number = (int)strtol(sss, NULL, 16);
int swapped = __bswap_32(number); int swapped = __bswap_32(number);
@ -76,27 +80,27 @@ int telem_result(struct _h_result result, int doublefields, int intfields, int*
} }
else else
{ {
while (i<((struct _h_type_blob *)result.data[row][col].t_data)->length) while (i<((struct _h_type_blob*)result.data[row][col].t_data)->length)
{ {
char sss[18]; char sss[18];
sss[0] = '0'; sss[0] = '0';
sss[1] = 'x'; sss[1] = 'x';
sss[2] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+2); sss[2] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+2);
sss[3] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+3); sss[3] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+3);
sss[4] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+4); sss[4] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+4);
sss[5] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+5); sss[5] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+5);
sss[6] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+6); sss[6] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+6);
sss[7] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+7); sss[7] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+7);
sss[8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+8); sss[8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+8);
sss[9] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+9); sss[9] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+9);
sss[2+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+2+8); sss[2+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+2+8);
sss[3+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+3+8); sss[3+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+3+8);
sss[4+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+4+8); sss[4+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+4+8);
sss[5+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+5+8); sss[5+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+5+8);
sss[6+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+6+8); sss[6+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+6+8);
sss[7+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+7+8); sss[7+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+7+8);
sss[8+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+8+8); sss[8+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+8+8);
sss[9+8] = *((char*)((struct _h_type_blob *)result.data[row][col].t_data)->value+offset2+9+8); sss[9+8] = *((char*)((struct _h_type_blob*)result.data[row][col].t_data)->value+offset2+9+8);
long val; long val;
int64_t number = (int64_t) strtoll(sss, NULL, 16); int64_t number = (int64_t) strtoll(sss, NULL, 16);
int64_t swapped = __bswap_64(number); int64_t swapped = __bswap_64(number);
@ -130,7 +134,7 @@ int telem_result(struct _h_result result, int doublefields, int intfields, int*
// } // }
break; break;
case HOEL_COL_TYPE_DATE: case HOEL_COL_TYPE_DATE:
strftime(buf, 64, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime *)result.data[row][col].t_data)->value); strftime(buf, 64, "%Y-%m-%d %H:%M:%S", &((struct _h_type_datetime*)result.data[row][col].t_data)->value);
printf("| %s ", buf); printf("| %s ", buf);
case HOEL_COL_TYPE_NULL: case HOEL_COL_TYPE_NULL:
slogi("| [null] "); slogi("| [null] ");
@ -153,16 +157,19 @@ int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, i
int doublefields = 3; int doublefields = 3;
struct _h_result result; struct _h_result result;
struct _h_data *data; struct _h_data* data;
char* query = malloc(150 * sizeof(char)); char* query = malloc(150 * sizeof(char));
sprintf(query, "SELECT lap_id, points FROM %s WHERE %s=%i", "telemetry", "lap_id", lap1id); sprintf(query, "SELECT lap_id, points FROM %s WHERE %s=%i", "telemetry", "lap_id", lap1id);
if (h_query_select(conn, query, &result) == H_OK) { if (h_query_select(conn, query, &result) == H_OK)
{
//laps->rows = malloc(sizeof(LapRowData) * result.nb_rows); //laps->rows = malloc(sizeof(LapRowData) * result.nb_rows);
//get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData)); //get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData));
points = telem_result(result, 3, 3, NULL, NULL); points = telem_result(result, 3, 3, NULL, NULL);
//get_stint_result(result, stint); //get_stint_result(result, stint);
h_clean_result(&result); h_clean_result(&result);
} else { }
else
{
printf("Error executing query\n"); printf("Error executing query\n");
} }
free(query); free(query);
@ -174,31 +181,37 @@ int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, i
double* doublearrays2 = malloc((sizeof(double))*points*doublefields); double* doublearrays2 = malloc((sizeof(double))*points*doublefields);
struct _h_result result1; struct _h_result result1;
struct _h_data * data1; struct _h_data* data1;
char* query1 = malloc(150 * sizeof(char)); char* query1 = malloc(150 * sizeof(char));
sprintf(query1, "SELECT lap_id, points, speed, gear, rpms, brake, accel, steer FROM %s WHERE %s=%i", "telemetry", "lap_id", lap1id); sprintf(query1, "SELECT lap_id, points, speed, gear, rpms, brake, accel, steer FROM %s WHERE %s=%i", "telemetry", "lap_id", lap1id);
if (h_query_select(conn, query1, &result1) == H_OK) { if (h_query_select(conn, query1, &result1) == H_OK)
{
//laps->rows = malloc(sizeof(LapRowData) * result.nb_rows); //laps->rows = malloc(sizeof(LapRowData) * result.nb_rows);
//get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData)); //get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData));
points = telem_result(result1, intfields, doublefields, intarrays1, doublearrays1); points = telem_result(result1, intfields, doublefields, intarrays1, doublearrays1);
//get_stint_result(result, stint); //get_stint_result(result, stint);
h_clean_result(&result1); h_clean_result(&result1);
} else { }
else
{
printf("Error executing query\n"); printf("Error executing query\n");
} }
free(query1); free(query1);
struct _h_result result2; struct _h_result result2;
struct _h_data * data2; struct _h_data* data2;
char* query2 = malloc(150 * sizeof(char)); char* query2 = malloc(150 * sizeof(char));
sprintf(query2, "SELECT lap_id, points, speed, gear, rpms, brake, accel, steer FROM %s WHERE %s=%i", "telemetry", "lap_id", lap2id); sprintf(query2, "SELECT lap_id, points, speed, gear, rpms, brake, accel, steer FROM %s WHERE %s=%i", "telemetry", "lap_id", lap2id);
if (h_query_select(conn, query2, &result2) == H_OK) { if (h_query_select(conn, query2, &result2) == H_OK)
{
//laps->rows = malloc(sizeof(LapRowData) * result.nb_rows); //laps->rows = malloc(sizeof(LapRowData) * result.nb_rows);
//get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData)); //get_row_results(result, laps->fields, laps->rows, sizeof(LapRowData));
points = telem_result(result2, intfields, doublefields, intarrays2, doublearrays2); points = telem_result(result2, intfields, doublefields, intarrays2, doublearrays2);
//get_stint_result(result, stint); //get_stint_result(result, stint);
h_clean_result(&result2); h_clean_result(&result2);
} else { }
else
{
printf("Error executing query\n"); printf("Error executing query\n");
} }
free(query2); free(query2);
@ -209,7 +222,7 @@ int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, i
snprintf(datafile, strsize, "%s%s", datadir, filename1); snprintf(datafile, strsize, "%s%s", datadir, filename1);
slogt("dumping %i points to file %s", points, datafile); slogt("dumping %i points to file %s", points, datafile);
FILE *out = fopen(datafile, "w"); FILE* out = fopen(datafile, "w");
fprintf(out, "%s %s %s %s %s %s %s %s %s %s %s %s %s\n", "point", "speed1", "rpms1", "gear1", "brake1", "accel1", "steer1", "speed2", "rpms2", "gear2", "brake2", "accel2", "steer2" ); fprintf(out, "%s %s %s %s %s %s %s %s %s %s %s %s %s\n", "point", "speed1", "rpms1", "gear1", "brake1", "accel1", "steer1", "speed2", "rpms2", "gear2", "brake2", "accel2", "steer2" );
for (int i=0; i<points; i++) for (int i=0; i<points; i++)
{ {
@ -227,14 +240,15 @@ int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, i
return 1; return 1;
} }
void print_bytes(void *ptr, int size) void print_bytes(void* ptr, int size)
{ {
char *pp = malloc((size*2)+1); char* pp = malloc((size*2)+1);
char output[(size * 2) + 1]; char output[(size * 2) + 1];
char *ppp = &output[0]; char* ppp = &output[0];
unsigned char *p = ptr; unsigned char* p = ptr;
int i; int i;
for (i=0; i<size; i++) { for (i=0; i<size; i++)
{
slogt("%02hhX", p[i]); slogt("%02hhX", p[i]);
ppp += sprintf(ppp, "%02X", p[i]); ppp += sprintf(ppp, "%02X", p[i]);
//snprintf(pp, (size*2)+1, "%s%02hhX", pp, p[i]); //snprintf(pp, (size*2)+1, "%s%02hhX", pp, p[i]);
@ -248,10 +262,11 @@ int updatetelemetry(struct _h_connection* conn, int telemid, int size, const cha
//char *pp = malloc((size*2)+1); //char *pp = malloc((size*2)+1);
char output[(size * 2) + 1]; char output[(size * 2) + 1];
char *ppp = &output[0]; char* ppp = &output[0];
unsigned char *p = data; unsigned char* p = data;
int i; int i;
for (i=0; i<size; i++) { for (i=0; i<size; i++)
{
ppp += sprintf(ppp, "%02hhX", p[i]); ppp += sprintf(ppp, "%02hhX", p[i]);
//snprintf(pp, (size*2)+1, "%s%02hhX", pp, p[i]); //snprintf(pp, (size*2)+1, "%s%02hhX", pp, p[i]);
} }

View File

@ -3,7 +3,7 @@
int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, int lap2id); int dumptelemetrytofile(struct _h_connection* conn, char* datadir, int lap1id, int lap2id);
void print_bytes(void *ptr, int size); void print_bytes(void* ptr, int size);
int updatetelemetrydata(struct _h_connection* conn, int tracksamples, int telemid, int lapid, int updatetelemetrydata(struct _h_connection* conn, int tracksamples, int telemid, int lapid,
int* speeddata, int* rpmdata, int* geardata, int* speeddata, int* rpmdata, int* geardata,