44 "V",
"V",
"V",
"V",
"uA",
"mA",
"uA",
"mA",
"ms"};
48 100000000, 100000000, 100000000, 100000000, 100000,
49 1000000, 100000, 1000000, 1000000};
62 mvprintw(1, 1,
"Starting RocketLogger Meter ...");
69 uint32_t
const *digital_buffer,
size_t buffer_size,
74 uint32_t aggregate_digital = ~(0);
78 for (
size_t i = 0; i < buffer_size; i++) {
81 uint32_t
const *
const digital_data = digital_buffer + i;
89 aggregate_analog[j] = (double)analog_data[j];
91 aggregate_digital = *digital_data;
99 aggregate_analog[j] += (double)*(analog_data + j);
101 aggregate_digital = aggregate_digital & *digital_data;
109 aggregate_analog[j] = aggregate_analog[j] / buffer_size;
118 mvprintw(1, 28,
"RocketLogger CLI Monitor");
120 mvprintw(3, 10,
"Time:");
121 mvprintw(3, 20,
"% 12lld.%09lld (monotonic)", timestamp_monotonic->
sec,
122 timestamp_monotonic->
nsec);
123 mvprintw(4, 20,
"% 12lld.%09lld (realtime)", timestamp_realtime->
sec,
124 timestamp_realtime->
nsec);
126 int current_index = 0;
127 int voltage_index = 0;
132 mvprintw(9 + 2 * current_index, 50,
"%12.6f %s",
139 mvprintw(9 + 2 * voltage_index, 20,
"%9.6f %s",
147 mvprintw(7, 10,
"Voltages:");
148 mvprintw(7, 40,
"Currents:");
150 mvprintw(9, 70,
"I1L valid");
152 mvprintw(9, 70,
"I1L invalid");
155 mvprintw(13, 70,
"I2L valid");
157 mvprintw(13, 70,
"I2L invalid");
162 mvprintw(20, 10,
"Digital Inputs:");
164 for (
int i = 0; i < 3; i++) {
166 mvprintw(20 + 2 * i, 38,
"%d",
169 for (
int i = 3; i < 6; i++) {
171 mvprintw(20 + 2 * (i - 3), 58,
"%d",
175 mvprintw(20, 10,
"Digital inputs disabled.");
uint32_t const DIGITAL_INPUT_BITS[RL_CHANNEL_DIGITAL_COUNT]
Digital input bit location in binary data.
char const *const RL_CHANNEL_UNITS[RL_CHANNEL_COUNT]
Analog channel units.
void meter_print_buffer(int32_t const *analog_buffer, uint32_t const *digital_buffer, size_t buffer_size, rl_timestamp_t const *const timestamp_realtime, rl_timestamp_t const *const timestamp_monotonic, rl_config_t const *const config)
double const RL_CHANNEL_SCALES[RL_CHANNEL_COUNT]
Analog channel scales.
#define PRU_DIGITAL_INPUT1_MASK
#define PRU_DIGITAL_I1L_VALID_MASK
#define PRU_DIGITAL_INPUT5_MASK
#define PRU_DIGITAL_INPUT3_MASK
#define PRU_DIGITAL_I2L_VALID_MASK
#define PRU_DIGITAL_INPUT6_MASK
#define PRU_DIGITAL_INPUT4_MASK
#define PRU_DIGITAL_INPUT2_MASK
char const *const RL_CHANNEL_NAMES[RL_CHANNEL_COUNT]
RocketLogger channel names.
char const *const RL_CHANNEL_DIGITAL_NAMES[RL_CHANNEL_DIGITAL_COUNT]
RocketLogger digital channel names.
#define RL_CHANNEL_DIGITAL_COUNT
Number of RocketLogger digital channels.
#define RL_CHANNEL_COUNT
Number of RocketLogger analog channels.
@ RL_AGGREGATION_MODE_AVERAGE
Aggregate using down sampling.
@ RL_AGGREGATION_MODE_DOWNSAMPLE
rl_aggregation_mode_t aggregation_mode
Sample aggregation mode (for sampling rates below lowest native one)
bool digital_enable
Enable digital inputs.
int64_t sec
Seconds in UNIX time (UTC)
bool is_current(int index)