Skip to content

Commit 9ea2688

Browse files
committed
update online mode csv save
1 parent c0b188b commit 9ea2688

File tree

5 files changed

+70
-19
lines changed

5 files changed

+70
-19
lines changed

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ add_executable(${TARGET_NAME}
1919
)
2020

2121
add_definitions(
22-
-DDEFAULE_LOGFILE="LOG_SAMSUNG_SMG973F_20210722_234221.csv"
23-
-DLOGOUT_RELATE_PATH="result/"
24-
-DLOGOUT_FILE_TAG="_result"
22+
-DONLINE_LOGOUT_RELATE_PATH="result/"
23+
-DOFFLINE_LOGOUT_RELATE_PATH="result/"
24+
-DOFFLINE_LOGOUT_FILE_TAG="_result"
2525
)
2626

2727
include_directories(

ksfeeder.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ int ksfeeder(int index, ksraw_tag_t *raw)
5858
raw->m[0], raw->m[1], raw->m[2],
5959
raw->t);
6060
#endif
61-
6261
// user run process
6362
// ...
6463

main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,11 @@ int main(int argc, char **argv)
119119
klogd(">> Online Mode ... %s\n", argv[1]);
120120
int updaterate = DEFAULT_ONLINE_UPDATE_RATE;
121121
int savelog = KS_FALSE;
122-
if (argv[1] != NULL)
122+
if (argv[2] != NULL)
123123
{
124124
updaterate = strtoul(argv[2], NULL, 10);
125125
}
126-
if (argv[2] != NULL)
126+
if (argv[3] != NULL)
127127
{
128128
savelog = KS_TRUE;
129129
klogd("savelog = KS_TRUE\n");

offline.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,22 @@
2222

2323
/* Define ----------------------------------------------------------------------------------*/
2424

25-
#ifndef LOGOUT_RELATE_PATH
26-
#define LOGOUT_RELATE_PATH "output/"
25+
#ifndef OFFLINE_LOGOUT_RELATE_PATH
26+
#define OFFLINE_LOGOUT_RELATE_PATH "output/"
2727
#endif
2828

29-
#ifndef LOGOUT_FILE_TAG
30-
#define LOGOUT_FILE_TAG "_output"
29+
#ifndef OFFLINE_LOGOUT_FILE_TAG
30+
#define OFFLINE_LOGOUT_FILE_TAG "_output"
3131
#endif
3232

3333
/* Macro -----------------------------------------------------------------------------------*/
3434
/* Typedef ---------------------------------------------------------------------------------*/
3535
/* Variables -------------------------------------------------------------------------------*/
3636

37-
static char RelatePath[1024] = {LOGOUT_RELATE_PATH};
38-
static char OutputFileTag[1024] = {LOGOUT_FILE_TAG};
37+
static char *LOG[] = {"sn","dt","gx","gy","gz","mx","my","mz","mbx","mby","mbz"};
38+
39+
static char RelatePath[1024] = {OFFLINE_LOGOUT_RELATE_PATH};
40+
static char OutputFileTag[1024] = {OFFLINE_LOGOUT_FILE_TAG};
3941

4042
/* Prototypes ------------------------------------------------------------------------------*/
4143

@@ -89,7 +91,6 @@ int run_offline(char *filename, int *range)
8991
// strcpy(OutputFileTag, filetag);
9092
// }
9193
// create csv
92-
char *LOG[] = {"sn","dt","gx","gy","gz","mx","my","mz","mbx","mby","mbz"};
9394
if (kscsv_create(&csv, RelatePath, OutputFileTag, LOG, sizeof(LOG) >> 2) != KS_OK)
9495
{
9596
klogd("create csv failed !!!\n");

online.c

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/* Includes --------------------------------------------------------------------------------*/
1818
#include <stdlib.h>
1919
#include <conio.h>
20+
#include <time.h>
2021

2122
#include "serial.h"
2223

@@ -26,13 +27,22 @@
2627
#include "ksfeeder.h"
2728

2829
/* Define ----------------------------------------------------------------------------------*/
30+
31+
#ifndef ONLINE_LOGOUT_RELATE_PATH
32+
#define ONLINE_LOGOUT_RELATE_PATH "log/"
33+
#endif
34+
2935
/* Macro -----------------------------------------------------------------------------------*/
3036
/* Typedef ---------------------------------------------------------------------------------*/
3137
/* Variables -------------------------------------------------------------------------------*/
38+
39+
static char *LOG[] = {"sn","dt","gx","gy","gz","ax","ay","az","mx","my","mz"};
40+
3241
/* Prototypes ------------------------------------------------------------------------------*/
3342

43+
static int datetimestring(char *datestring);
3444
static void ksraw_update(ksraw_t *praw, kserial_packet_t *pk, int dt);
35-
static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate);
45+
static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate, int save);
3646

3747
/* Functions -------------------------------------------------------------------------------*/
3848

@@ -73,8 +83,22 @@ int run_online(char *comport, int updaterate, int save)
7383
}
7484
klogd(", id=0x%04X\n", id);
7585

86+
if (save == KS_TRUE)
87+
{
88+
// create csv
89+
char filename[256] = {0};
90+
char datestring[256] = {0};
91+
datetimestring(datestring);
92+
sprintf(filename, "%sLOG_SERIAL_%s.csv", ONLINE_LOGOUT_RELATE_PATH, datestring);
93+
if (kscsv_create(&csv, filename, NULL, LOG, sizeof(LOG) >> 2) != KS_OK)
94+
{
95+
klogd("create csv failed !!!\n");
96+
return -1;
97+
}
98+
}
99+
76100
// run
77-
ksfeed_serial(&raw, &csv, updaterate);
101+
ksfeed_serial(&raw, &csv, updaterate, save);
78102

79103
// close serial port and free portlist
80104
serial_close(&s);
@@ -83,7 +107,24 @@ int run_online(char *comport, int updaterate, int save)
83107
return 0;
84108
}
85109

86-
static char getKey(void)
110+
static int datetimestring(char *datestring)
111+
{
112+
time_t t = time(NULL);
113+
struct tm ts = *localtime(&t);
114+
int lens;
115+
int datetime[6] = {0};
116+
datetime[0] = ts.tm_year + 1900;
117+
datetime[1] = ts.tm_mon + 1;
118+
datetime[2] = ts.tm_mday;
119+
datetime[3] = ts.tm_hour;
120+
datetime[4] = ts.tm_min;
121+
datetime[5] = ts.tm_sec;
122+
lens = sprintf(datestring, "%04d%02d%02d_%02d%02d%02d",
123+
datetime[0], datetime[1], datetime[2], datetime[3], datetime[4], datetime[5]);
124+
return lens;
125+
}
126+
127+
static char getkey(void)
87128
{
88129
char ch = 0;
89130
if (_kbhit())
@@ -116,7 +157,7 @@ static void ksraw_update(ksraw_t *praw, kserial_packet_t *pk, int dt)
116157
}
117158
}
118159

119-
static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate)
160+
static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate, int save)
120161
{
121162
int loop = KS_TRUE;
122163

@@ -149,6 +190,17 @@ static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate)
149190
ksraw_update(raw, &pk, dt);
150191
ksfeeder(raw->raw.index, &raw->raw);
151192
#endif
193+
#if 1
194+
if ((raw->raw.index > 0) && (save == KS_TRUE))
195+
{
196+
// tag: sn,dt,gx,gy,gz,ax,ay,az,mx,my,mz
197+
kscsv_write(csv, "%d,%.10f,%.10f,%.10f,%.10f,%.10f,%.10f,%.10f,%.10f,%.10f,%.10f",
198+
raw->raw.index, raw->raw.dt,
199+
raw->raw.g[0], raw->raw.g[1], raw->raw.g[2],
200+
raw->raw.a[0], raw->raw.a[1], raw->raw.a[2],
201+
raw->raw.m[0], raw->raw.m[1], raw->raw.m[2]);
202+
}
203+
#endif
152204
#if 0
153205
klogc("[%6d][%3d][%s][%02X:%02X][%4dHz] ", total, count, KS_TYPE_STRING[pk.type], pk.param[0], pk.param[1], (int32_t)packetFreq);
154206
for (int i = 0; i < pk.lens; i++)
@@ -174,9 +226,8 @@ static int ksfeed_serial(ksraw_t *raw, kscsv_t *csv, int updaterate)
174226
klogc("\n");
175227
klogc(NULL);
176228
#endif
177-
178229
}
179-
switch (getKey())
230+
switch (getkey())
180231
{
181232
case 17: // ctrl + q
182233
{

0 commit comments

Comments
 (0)