47 #define RL_SOCKET_METADATA_SIZE 1000
63 "failed binding zeromq data socket; %d message: %s", errno,
85 "{\"data_rate\":%d,\"channels\":[", config->
sample_rate);
98 "\"unit\":\"A\",\"scale\":1e-11},");
101 "\"unit\":\"A\",\"scale\":1e-9},");
105 "\"unit\":\"V\",\"scale\":1e-8},");
116 "{\"name\":\"DI%d\",\"unit\":\"binary\",\"bit\":%d},",
126 "{\"name\":\"%s\",\"unit\":\"%s\",\"scale\":1e%d},",
137 "{\"name\":\"I1L_valid\",\"unit\":\"binary\",\"bit\":6,\"hidden\":true},"
138 "{\"name\":\"I2L_valid\",\"unit\":\"binary\",\"bit\":7,\"hidden\":true}]"
145 uint32_t
const *digital_buffer,
146 int32_t
const *ambient_buffer,
size_t buffer_size,
147 size_t ambient_buffer_size,
157 errno, strerror(errno));
164 *timestamp_monotonic,
169 zmq_send(
zmq_data_socket, timestamps,
sizeof(timestamps), ZMQ_SNDMORE);
172 errno, strerror(errno));
177 int32_t *
const data_buffer = malloc(buffer_size *
sizeof(int32_t));
184 for (
size_t i = 0; i < buffer_size; i++) {
190 buffer_size *
sizeof(int32_t), ZMQ_SNDMORE);
193 "failed publishing analog data; %d message: %s", errno,
207 sizeof(int32_t) * (ambient_buffer_size > 0),
211 "failed publishing sensor data; %d message: %s", errno,
220 buffer_size *
sizeof(uint32_t), 0);
223 errno, strerror(errno));
int rl_log(rl_log_level_t log_level, char const *const format,...)
char const *const RL_CHANNEL_NAMES[RL_CHANNEL_COUNT]
RocketLogger channel names.
#define ERROR
Function return value for errors (use errno to indicate the error)
#define SUCCESS
Function return value for successful completion.
#define RL_CHANNEL_DIGITAL_COUNT
Number of RocketLogger digital channels.
#define RL_CHANNEL_COUNT
Number of RocketLogger analog channels.
#define RL_ZMQ_DATA_SOCKET
ZeroMQ socket identifier for data publishing status.
char * rl_unit_to_string(rl_unit_t const unit)
int rl_socket_handle_data(int32_t const *analog_buffer, uint32_t const *digital_buffer, int32_t const *ambient_buffer, size_t buffer_size, size_t ambient_buffer_size, rl_timestamp_t const *const timestamp_realtime, rl_timestamp_t const *const timestamp_monotonic, rl_config_t const *const config)
char metadata_json[RL_SOCKET_METADATA_SIZE]
data socket metadata in JSON format
void * zmq_data_context
the ZeroMQ context for data publishing
int rl_socket_metadata(rl_config_t const *const config)
#define RL_SOCKET_METADATA_SIZE
void * zmq_data_socket
the ZeroMQ data socket
int rl_socket_deinit(void)
const rl_sensor_t SENSOR_REGISTRY[SENSOR_REGISTRY_SIZE]
#define SENSOR_REGISTRY_SIZE
Number of sensor registered.
bool ambient_enable
Enable logging of ambient sensor.
uint32_t sample_rate
Sampling rate.
bool channel_enable[RL_CHANNEL_COUNT]
Channels to sample.
bool digital_enable
Enable digital inputs.
uint16_t sensor_count
Number of sensors found connected to the system.
bool sensor_available[RL_SENSOR_COUNT_MAX]
Identifiers of sensors found.
bool is_current(int index)
bool is_low_current(int index)
bool is_voltage(int index)
int snprintfcat(char *const buffer, size_t length, char const *format,...)