Skip to content

Commit b723039

Browse files
committed
fixed some bugs
1 parent dc77712 commit b723039

File tree

7 files changed

+292
-111
lines changed

7 files changed

+292
-111
lines changed

parts/esp32-components/lifesensor_common/include/logger.h

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,14 @@
33

44
#include <stddef.h>
55

6-
#define LOG_UINT(LOGGER,SCOPE,PTR,NAME) LOGGER->log_uint(SCOPE,#NAME,(PTR)->NAME)
7-
#define LOG_INT(LOGGER,SCOPE,PTR,NAME) LOGGER->log_int(SCOPE,#NAME,(PTR)->NAME)
8-
#define LOG_FLOAT(LOGGER,SCOPE,PTR,NAME) LOGGER->log_float(SCOPE,#NAME,(PTR)->NAME)
9-
#define LOG_CHAR(LOGGER,SCOPE,PTR,NAME) LOGGER->log_char(SCOPE,#NAME,(PTR)->NAME)
10-
#define LOG_STR(LOGGER,SCOPE,PTR,NAME) LOGGER->log_str(SCOPE,#NAME,(PTR)->NAME)
11-
#define LOG_PTR(LOGGER,SCOPE,PTR,NAME) LOGGER->log_ptr(SCOPE,#NAME,(PTR)->NAME)
12-
136
enum lifesensor_logger_scope_type {
147
LIFESENSOR_LOGGER_SCOPE_NONE,
158
LIFESENSOR_LOGGER_SCOPE_LIST,
169
LIFESENSOR_LOGGER_SCOPE_MAP
1710
};
1811

1912
struct lifesensor_logger_scope {
20-
void (*printf)(const char *fmt, ...);
13+
int (*printf)(const char *fmt, ...);
2114
enum lifesensor_logger_scope_type type;
2215
size_t entries;
2316
size_t level;
@@ -42,33 +35,33 @@ struct lifesensor_logger {
4235

4336
void (*log_uint)(
4437
struct lifesensor_logger_scope* scope,
45-
char *name,
46-
unsigned long int value
38+
unsigned long int value,
39+
char *name
4740
);
4841
void (*log_int)(
4942
struct lifesensor_logger_scope* scope,
50-
char *name,
51-
long int value
43+
long int value,
44+
char *name
5245
);
5346
void (*log_float)(
5447
struct lifesensor_logger_scope* scope,
55-
char *name,
56-
float value
48+
float value,
49+
char *name
5750
);
5851
void (*log_char)(
5952
struct lifesensor_logger_scope* scope,
60-
char *name,
61-
char value
53+
char value,
54+
char *name
6255
);
6356
void (*log_str)(
6457
struct lifesensor_logger_scope* scope,
65-
char *name,
66-
char *value
58+
char *value,
59+
char *name
6760
);
6861
void (*log_ptr)(
6962
struct lifesensor_logger_scope* scope,
70-
char *name,
71-
void *value
63+
void *value,
64+
char *name
7265
);
7366
};
7467
typedef struct lifesensor_logger Lifesensor_logger;
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#ifndef LIFESENSOR_COMMON_LOGGER_JSON_H
22
#define LIFESENSOR_COMMON_LOGGER_JSON_H
33

4-
#include "logger_json.h"
4+
#include "logger.h"
55

6-
lifesensor_logger_yaml_init(
6+
void
7+
lifesensor_logger_json_init(
78
Lifesensor_logger *logger,
8-
Lifesensor_logger_scope *scope);
9+
Lifesensor_logger_scope *scope,
10+
int (*printf)(const char *fmt, ...));
911

1012
#endif
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifndef LIFESENSOR_COMMON_LOGGER_YAML_H
2+
#define LIFESENSOR_COMMON_LOGGER_YAML_H
3+
4+
#include "logger.h"
5+
6+
void
7+
lifesensor_logger_yaml_init(
8+
Lifesensor_logger *logger,
9+
Lifesensor_logger_scope *scope,
10+
int (*printf)(const char *fmt, ...));
11+
12+
#endif

parts/esp32-components/lifesensor_common/include/module.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22
#define LIFESENSOR_COMMON_MODULE_H
33

44
#include "logger.h"
5+
#include "macro/map.h"
56
#include <stddef.h>
67

78
#define INIT_LIFESENSOR_MODULE(TYPE, NAME, INIT, DUMP, /* SUBMODULES */...) \
89
{ \
910
.parent = NULL, \
1011
.type = #TYPE, \
1112
.name = (NAME), \
12-
.init(INIT), \
13-
.dump(DUMP), \
13+
.init = (INIT), \
14+
.dump = (DUMP), \
1415
.submodule_offsets = (ptrdiff_t[]){__VA_OPT__(MAP1(offsetof, TYPE, __VA_ARGS__), ) 0}, \
1516
}
1617

parts/esp32-components/lifesensor_common/src/logger_json.c

Lines changed: 82 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -2,152 +2,160 @@
22
#include "logger.h"
33

44
static inline void
5-
_lifesensor_logger_yaml_comma(
6-
Lifesensor_logger_scope *scope
7-
){
8-
if (scope->entries++) {
5+
_lifesensor_logger_json_comma(
6+
Lifesensor_logger_scope *scope)
7+
{
8+
if (scope->entries++)
9+
{
910
scope->printf(", ");
1011
}
1112
}
1213

1314
static inline void
14-
_lifesensor_logger_yaml_name(
15+
_lifesensor_logger_json_name(
1516
Lifesensor_logger_scope *scope,
16-
char *name
17-
){
18-
if (name) {
17+
char *name)
18+
{
19+
if (name)
20+
{
1921
scope->printf("\"%s\": ");
2022
}
2123
}
2224

2325
static void
24-
lifesensor_logger_yaml_enter_map(
26+
lifesensor_logger_json_enter_map(
2527
Lifesensor_logger_scope *scope,
2628
Lifesensor_logger_scope *subscope,
2729
char *name)
2830
{
29-
subscope->entries = 0;
30-
subscope->level = scope->level + 1;
31+
if (scope) {
32+
subscope->entries = 0;
33+
subscope->level = scope->level + 1;
34+
subscope->printf = scope->printf;
35+
36+
_lifesensor_logger_json_comma(scope);
37+
_lifesensor_logger_json_name(scope, name);
38+
}
39+
3140
subscope->type = LIFESENSOR_LOGGER_SCOPE_MAP;
32-
subscope->printf = scope->printf;
33-
34-
_lifesensor_logger_yaml_comma(scope);
35-
_lifesensor_logger_yaml_name(scope,name);
36-
scope->printf("{ ");
41+
subscope->printf("{ ");
3742
}
3843

3944
static void
40-
lifesensor_logger_yaml_enter_list(
45+
lifesensor_logger_json_enter_list(
4146
Lifesensor_logger_scope *scope,
4247
Lifesensor_logger_scope *subscope,
4348
char *name)
4449
{
45-
subscope->entries = 0;
46-
subscope->level = scope->level + 1;
50+
if (scope) {
51+
subscope->entries = 0;
52+
subscope->level = scope->level + 1;
53+
subscope->printf = scope->printf;
54+
55+
_lifesensor_logger_json_comma(scope);
56+
_lifesensor_logger_json_name(scope, name);
57+
}
58+
4759
subscope->type = LIFESENSOR_LOGGER_SCOPE_LIST;
48-
subscope->printf = scope->printf;
49-
50-
_lifesensor_logger_yaml_comma(scope);
51-
_lifesensor_logger_yaml_name(scope,name);
52-
scope->printf("[ ");
60+
subscope->printf("[ ");
5361
}
5462

5563
static void
56-
lifesensor_logger_yaml_exit(
64+
lifesensor_logger_json_exit(
5765
Lifesensor_logger_scope *scope,
5866
Lifesensor_logger_scope *subscope)
5967
{
60-
switch(subscope->type) {
61-
case LIFESENSOR_LOGGER_SCOPE_MAP:
62-
scope->printf(" }");
63-
break;
64-
case LIFESENSOR_LOGGER_SCOPE_LIST:
65-
scope->printf(" ]");
66-
break;
68+
switch (subscope->type)
69+
{
70+
case LIFESENSOR_LOGGER_SCOPE_MAP:
71+
subscope->printf(" }");
72+
break;
73+
case LIFESENSOR_LOGGER_SCOPE_LIST:
74+
subscope->printf(" ]");
75+
break;
6776
}
6877
}
6978

7079
static void
71-
lifesensor_logger_yaml_log_uint(
80+
lifesensor_logger_json_log_uint(
7281
Lifesensor_logger_scope *scope,
73-
char *name,
74-
unsigned long int value)
82+
unsigned long int value,
83+
char *name)
7584
{
76-
_lifesensor_logger_yaml_comma(scope);
77-
_lifesensor_logger_yaml_name(scope, name);
85+
_lifesensor_logger_json_comma(scope);
86+
_lifesensor_logger_json_name(scope, name);
7887
scope->printf("%+lu", value);
7988
}
8089

8190
static void
82-
lifesensor_logger_yaml_log_int(
91+
lifesensor_logger_json_log_int(
8392
Lifesensor_logger_scope *scope,
84-
char *name,
85-
long int value)
93+
long int value,
94+
char *name)
8695
{
87-
_lifesensor_logger_yaml_comma(scope);
88-
_lifesensor_logger_yaml_name(scope, name);
96+
_lifesensor_logger_json_comma(scope);
97+
_lifesensor_logger_json_name(scope, name);
8998
scope->printf("%+ld", value);
9099
}
91100

92101
static void
93-
lifesensor_logger_yaml_log_float(
102+
lifesensor_logger_json_log_float(
94103
Lifesensor_logger_scope *scope,
95-
char *name,
96-
float value)
104+
float value,
105+
char *name)
97106
{
98-
_lifesensor_logger_yaml_comma(scope);
99-
_lifesensor_logger_yaml_name(scope, name);
107+
_lifesensor_logger_json_comma(scope);
108+
_lifesensor_logger_json_name(scope, name);
100109
scope->printf("%+G", value);
101110
}
102111

103112
static void
104-
lifesensor_logger_yaml_log_char(
113+
lifesensor_logger_json_log_char(
105114
Lifesensor_logger_scope *scope,
106-
char *name,
107-
char value)
115+
char value,
116+
char *name)
108117
{
109-
_lifesensor_logger_yaml_comma(scope);
110-
_lifesensor_logger_yaml_name(scope, name);
118+
_lifesensor_logger_json_comma(scope);
119+
_lifesensor_logger_json_name(scope, name);
111120
scope->printf("\"%c\"", value);
112121
}
113122

114123
static void
115-
lifesensor_logger_yaml_log_str(
124+
lifesensor_logger_json_log_str(
116125
Lifesensor_logger_scope *scope,
117-
char *name,
118-
char *value)
126+
char *value,
127+
char *name)
119128
{
120-
_lifesensor_logger_yaml_comma(scope);
121-
_lifesensor_logger_yaml_name(scope, name);
129+
_lifesensor_logger_json_comma(scope);
130+
_lifesensor_logger_json_name(scope, name);
122131
scope->printf("\"%s\"", value);
123132
}
124133

125134
static void
126-
lifesensor_logger_yaml_log_ptr(
135+
lifesensor_logger_json_log_ptr(
127136
Lifesensor_logger_scope *scope,
128-
char *name,
129-
void *value)
137+
void *value,
138+
char *name)
130139
{
131-
_lifesensor_logger_yaml_comma(scope);
132-
_lifesensor_logger_yaml_name(scope, name);
140+
_lifesensor_logger_json_comma(scope);
141+
_lifesensor_logger_json_name(scope, name);
133142
scope->printf("\"0x%x\"", value);
134143
}
135144

136-
void
137-
lifesensor_logger_yaml_init(
145+
void lifesensor_logger_json_init(
138146
Lifesensor_logger *logger,
139147
Lifesensor_logger_scope *scope,
140-
void (*printf)(const char* fmt, ...))
148+
int (*printf)(const char *fmt, ...))
141149
{
142-
logger->enter_map = &lifesensor_logger_yaml_enter_map;
143-
logger->enter_list = &lifesensor_logger_yaml_enter_list;
144-
logger->exit = &lifesensor_logger_yaml_exit;
145-
logger->log_uint = &lifesensor_logger_yaml_log_uint;
146-
logger->log_int = &lifesensor_logger_yaml_log_int;
147-
logger->log_float = &lifesensor_logger_yaml_log_float;
148-
logger->log_char = &lifesensor_logger_yaml_log_char;
149-
logger->log_str = &lifesensor_logger_yaml_log_str;
150-
logger->log_ptr = &lifesensor_logger_yaml_log_ptr;
150+
logger->enter_map = &lifesensor_logger_json_enter_map;
151+
logger->enter_list = &lifesensor_logger_json_enter_list;
152+
logger->exit = &lifesensor_logger_json_exit;
153+
logger->log_uint = &lifesensor_logger_json_log_uint;
154+
logger->log_int = &lifesensor_logger_json_log_int;
155+
logger->log_float = &lifesensor_logger_json_log_float;
156+
logger->log_char = &lifesensor_logger_json_log_char;
157+
logger->log_str = &lifesensor_logger_json_log_str;
158+
logger->log_ptr = &lifesensor_logger_json_log_ptr;
151159

152160
scope->type = LIFESENSOR_LOGGER_SCOPE_NONE;
153161
scope->entries = 0;

0 commit comments

Comments
 (0)