RocketLogger  2.0.1
util.h
Go to the documentation of this file.
1 
32 #ifndef UTIL_H_
33 #define UTIL_H_
34 
35 #include <stdbool.h>
36 #include <stdint.h>
37 
38 #include "rl.h"
39 
41 #define MAC_ADDRESS_LENGTH 6
42 
44 #define MAC_ADDRESS_FILE "/sys/class/net/eth0/address"
45 
49 struct rl_timestamp {
51  int64_t sec;
53  int64_t nsec;
54 };
55 
59 typedef struct rl_timestamp rl_timestamp_t;
60 
67 bool is_current(int index);
68 
75 bool is_low_current(int index);
76 
83 bool is_voltage(int index);
84 
93 bool is_empty_string(char const *str);
94 
103 bool is_printable_string(char const *str);
104 
111 int count_channels(bool const channels[RL_CHANNEL_COUNT]);
112 
120 int div_ceil(int n, int d);
121 
130 void create_time_stamp(rl_timestamp_t *const time_realtime,
131  rl_timestamp_t *const time_monotonic);
132 
138 void get_mac_addr(uint8_t mac_address[MAC_ADDRESS_LENGTH]);
139 
146 int64_t fs_space_total(char const *const path);
147 
154 int64_t fs_space_free(char const *const path);
155 
162 void print_json_bool(bool const *const data, const int length);
163 
170 void print_json_int64(int64_t const *const data, const int length);
171 
180 int snprintfcat(char *const buffer, size_t length, char const *format, ...);
181 
182 #endif /* UTIL_H_ */
rl_calibration_t data
The actual calibration data.
Definition: calibration.h:9
#define RL_CHANNEL_COUNT
Number of RocketLogger analog channels.
Definition: rl.h:56
int64_t nsec
Nanoseconds.
Definition: util.h:53
int64_t sec
Seconds in UNIX time (UTC)
Definition: util.h:51
bool is_current(int index)
Definition: util.c:49
int64_t fs_space_free(char const *const path)
Definition: util.c:125
int count_channels(bool const channels[RL_CHANNEL_COUNT])
Definition: util.c:72
bool is_printable_string(char const *str)
Definition: util.c:158
int div_ceil(int n, int d)
Definition: util.c:82
int64_t fs_space_total(char const *const path)
Definition: util.c:137
#define MAC_ADDRESS_LENGTH
MAC address length in bytes.
Definition: util.h:41
void get_mac_addr(uint8_t mac_address[MAC_ADDRESS_LENGTH])
Definition: util.c:112
bool is_low_current(int index)
Definition: util.c:57
void print_json_bool(bool const *const data, const int length)
Definition: util.c:169
void create_time_stamp(rl_timestamp_t *const time_realtime, rl_timestamp_t *const time_monotonic)
Definition: util.c:90
bool is_empty_string(char const *str)
Definition: util.c:149
bool is_voltage(int index)
Definition: util.c:64
int snprintfcat(char *const buffer, size_t length, char const *format,...)
Definition: util.c:191
void print_json_int64(int64_t const *const data, const int length)
Definition: util.c:180