rtl433
UNKNOWN
RTL-433 utility
|
Data Structures | |
struct | data_meta_type_t |
struct | data_output_kv_t |
struct | data_output_csv_t |
struct | data_print_jsons_t |
struct | datagram_client_t |
struct | data_output_syslog_t |
Typedefs | |
typedef void *(* | array_elementwise_import_fn) (void *) |
typedef void(* | array_element_release_fn) (void *) |
typedef void(* | value_release_fn) (void *) |
Functions | |
static void | ws2_perror (const char *str) |
static bool | import_values (void *dst, void *src, int num_values, data_type_t type) |
data_array_t * | data_array (int num_values, data_type_t type, void *values) |
Constructs an array from given data of the given uniform type. More... | |
static data_t * | vdata_make (data_t *first, const char *key, const char *pretty_key, va_list ap) |
data_t * | data_make (const char *key, const char *pretty_key,...) |
Constructs a structured data object. More... | |
data_t * | data_append (data_t *first, const char *key, const char *pretty_key,...) |
Adds to a structured data object, by appending data. More... | |
data_t * | data_prepend (data_t *first, const char *key, const char *pretty_key,...) |
Adds to a structured data object, by prepending data. More... | |
void | data_array_free (data_array_t *array) |
Releases a data array. More... | |
data_t * | data_retain (data_t *data) |
Retain a structure object, returns the structure object passed in. More... | |
void | data_free (data_t *data) |
Releases a structure object if retain is zero, decrement retain otherwise. More... | |
void | data_output_print (data_output_t *output, data_t *data) |
Prints a structured data object. More... | |
void | data_output_start (struct data_output *output, const char **fields, int num_fields) |
Setup known field keys and start output, used by CSV only. More... | |
void | data_output_poll (struct data_output *output) |
Allows to polls an event loop, if necessary. More... | |
void | data_output_free (data_output_t *output) |
void | print_value (data_output_t *output, data_type_t type, void *value, char *format) |
void | print_array_value (data_output_t *output, data_array_t *array, char *format, int idx) |
static void | print_json_array (data_output_t *output, data_array_t *array, char *format) |
static void | print_json_data (data_output_t *output, data_t *data, char *format) |
static void | print_json_string (data_output_t *output, const char *str, char *format) |
static void | print_json_double (data_output_t *output, double data, char *format) |
static void | print_json_int (data_output_t *output, int data, char *format) |
static void | data_output_json_free (data_output_t *output) |
struct data_output * | data_output_json_create (FILE *file) |
static int | kv_color_for_key (char const *key) |
static int | kv_break_before_key (char const *key) |
static int | kv_break_after_key (char const *key) |
static void | print_kv_data (data_output_t *output, data_t *data, char *format) |
static void | print_kv_array (data_output_t *output, data_array_t *array, char *format) |
static void | print_kv_double (data_output_t *output, double data, char *format) |
static void | print_kv_int (data_output_t *output, int data, char *format) |
static void | print_kv_string (data_output_t *output, const char *data, char *format) |
static void | data_output_kv_free (data_output_t *output) |
struct data_output * | data_output_kv_create (FILE *file) |
static void | print_csv_data (data_output_t *output, data_t *data, char *format) |
static void | print_csv_array (data_output_t *output, data_array_t *array, char *format) |
static void | print_csv_string (data_output_t *output, const char *str, char *format) |
static int | compare_strings (const void *a, const void *b) |
static void | data_output_csv_start (struct data_output *output, const char **fields, int num_fields) |
static void | print_csv_double (data_output_t *output, double data, char *format) |
static void | print_csv_int (data_output_t *output, int data, char *format) |
static void | data_output_csv_free (data_output_t *output) |
struct data_output * | data_output_csv_create (FILE *file) |
Construct data output for CSV printer. More... | |
static void | format_jsons_array (data_output_t *output, data_array_t *array, char *format) |
static void | format_jsons_object (data_output_t *output, data_t *data, char *format) |
static void | format_jsons_string (data_output_t *output, const char *str, char *format) |
static void | format_jsons_double (data_output_t *output, double data, char *format) |
static void | format_jsons_int (data_output_t *output, int data, char *format) |
size_t | data_print_jsons (data_t *data, char *dst, size_t len) |
static int | datagram_client_open (datagram_client_t *client, const char *host, const char *port) |
static void | datagram_client_close (datagram_client_t *client) |
static void | datagram_client_send (datagram_client_t *client, const char *message, size_t message_len) |
static void | print_syslog_data (data_output_t *output, data_t *data, char *format) |
static void | data_output_syslog_free (data_output_t *output) |
struct data_output * | data_output_syslog_create (const char *host, const char *port) |
Variables | |
static data_meta_type_t | dmt [DATA_COUNT] |
typedef void(* array_element_release_fn) (void *) |
typedef void*(* array_elementwise_import_fn) (void *) |
typedef void(* value_release_fn) (void *) |
|
static |
Referenced by data_output_csv_start().
Adds to a structured data object, by appending data.
References vdata_make().
Referenced by acurite_00275rm_decode(), ambientweather_tx8300_callback(), create_report_data(), data_acquired_handler(), decoder_output_bitbuffer(), decoder_output_bitrow(), fineoffset_WH24_callback(), flex_callback(), prologue_callback(), and xc0324_callback().
data_array_t* data_array | ( | int | num_values, |
data_type_t | type, | ||
void * | ptr | ||
) |
Constructs an array from given data of the given uniform type.
ptr | The contents pointed by the argument are copied in. |
References data_meta_type_t::array_element_size, import_values(), data_array::num_values, data_array::type, and data_array::values.
Referenced by decoder_output_bitbuffer(), and radiohead_ask_callback().
void data_array_free | ( | data_array_t * | array | ) |
Releases a data array.
References data_meta_type_t::array_element_release, data_meta_type_t::array_element_size, data_array::num_values, data_array::type, and data_array::values.
void data_free | ( | data_t * | data | ) |
Releases a structure object if retain is zero, decrement retain otherwise.
References data::format, data::key, data::next, data::pretty_key, data::retain, data::type, data::value, and data_meta_type_t::value_release.
Referenced by data_acquired_handler(), event_occurred_handler(), and vdata_make().
data_t* data_make | ( | const char * | key, |
const char * | pretty_key, | ||
... | |||
) |
Constructs a structured data object.
Example: data_make( "key", "Pretty key", DATA_INT, 42, "others", "More data", DATA_DATA, data_make("foo", DATA_DOUBLE, 42.0, NULL), "zoom", NULL, data_array(2, DATA_STRING, (char*[]){"hello", "World"}), "double", "Double", DATA_DOUBLE, 10.0/3, NULL);
Most of the time the function copies perhaps what you expect it to. Things it copies:
Things it moves:
The rule is: if an object is boxed (look at the dmt structure in the data.c) and it has a array_elementwise_import in the same structure, then it is copied deeply. Otherwise, it is copied shallowly.
key | Name of the first value to put in. |
pretty_key | Pretty name for the key. Use "" if to omit pretty label for this field completely, or NULL if to use key name for it. |
type | Type of the first value to put in. |
... | The value of the first value to put in, followed by the rest of the key-type-values. The list is terminated with a NULL. |
References vdata_make().
Referenced by acurite_00275rm_decode(), acurite_6045_decode(), acurite_606_decode(), acurite_986_decode(), acurite_rain_896_decode(), acurite_th_decode(), acurite_txr_decode(), akhan_rke_callback(), alecto_ws1200v1_callback(), alecto_ws1200v2_callback(), alecto_ws1200v2_dcf_callback(), alectov1_callback(), ambient_weather_decode(), ambientweather_tx8300_callback(), ambientweather_wh31e_callback(), blyss_callback(), brennenstuhl_rcs_2044_process_row(), bresser_3ch_callback(), bresser_5in1_callback(), bt_rain_callback(), calibeur_rf104_callback(), cardin_callback(), chuango_callback(), companion_wtr001_decode(), create_report_data(), current_cost_callback(), danfoss_cfr_callback(), decode_xc0324_message(), decoder_output_bitbuffer(), decoder_output_bitbuffer_array(), decoder_output_bitrow(), decoder_output_message(), directv_decode(), dish_remote_6_3_callback(), dsc_callback(), ecowitt_decode(), efergy_e2_classic_callback(), efergy_optical_callback(), elro_db286a_callback(), em1000_callback(), emontx_callback(), esa_cost_callback(), esperanza_ews_callback(), eurochron_callback(), fineoffset_WH0290_callback(), fineoffset_WH0530_callback(), fineoffset_wh1050_callback(), fineoffset_wh1080_callback(), fineoffset_WH24_callback(), fineoffset_WH25_callback(), fineoffset_WH2_callback(), flex_callback(), fordremote_callback(), fs20_decode(), ft004b_callback(), ge_coloreffects_decode(), generic_motion_callback(), generic_remote_callback(), generic_temperature_sensor_callback(), gt_wt_02_process_row(), hcs200_callback(), hideki_ts04_callback(), hondaremote_callback(), honeywell_callback(), honeywell_wdb_callback(), ht680_callback(), ibis_beacon_callback(), ikea_sparsnas_callback(), infactory_callback(), interlogix_callback(), intertechno_callback(), kedsum_callback(), kerui_callback(), kw9015b_callback(), lacrosse_it(), lacrosse_tx141th_bv2_callback(), lacrosse_ws7000_decode(), lacrossetx_callback(), lacrossews_callback(), lightwave_rf_callback(), m_bus_output_data(), maverick_et73_sensor_callback(), maverick_et73x_callback(), mebus433_callback(), new_template_decode(), newkaku_callback(), nexa_callback(), nexus_callback(), oil_standard_decode(), oil_watchman_callback(), opus_xt300_callback(), oregon_scientific_sl109h_callback(), oregon_scientific_v1_callback(), oregon_scientific_v2_1_decode(), oregon_scientific_v3_decode(), philips_callback(), prologue_callback(), proove_callback(), quhwa_callback(), radiohead_ask_callback(), rftech_callback(), rubicson_48659_decode(), rubicson_callback(), s3318p_callback(), schrader_EG53MA4_callback(), schraeder_callback(), sensible_living_callback(), silvercrest_callback(), smoke_gs558_callback(), solight_te44_callback(), springfield_callback(), ss_keypad_commands(), ss_pinentry_parser(), ss_sensor_parser(), steelmate_callback(), tfa_303196_callback(), tfa_pool_thermometer_callback(), tfa_twin_plus_303049_callback(), thermopro_tp11_sensor_callback(), thermopro_tp12_sensor_callback(), tpms_citroen_decode(), tpms_ford_decode(), tpms_jansite_decode(), tpms_pmv107j_decode(), tpms_renault_decode(), tpms_toyota_decode(), ts_ft002_decoder(), ttx201_decode(), vaillant_vrt340_callback(), waveman_callback(), wg_pb12v1_callback(), ws2000_callback(), wssensor_callback(), wt1024_callback(), wt450_callback(), x10_rf_callback(), and x10_sec_callback().
struct data_output* data_output_csv_create | ( | FILE * | file | ) |
Construct data output for CSV printer.
file | the output stream |
References data_output_csv_free(), data_output_csv_start(), data_output::file, data_output_csv_t::output, data_output::output_free, data_output::output_start, data_output::print_array, print_csv_array(), print_csv_data(), print_csv_double(), print_csv_int(), print_csv_string(), data_output::print_data, data_output::print_double, data_output::print_int, and data_output::print_string.
Referenced by add_csv_output().
|
static |
References data_output_csv_t::fields.
Referenced by data_output_csv_create().
|
static |
References compare_strings(), data_output_csv_t::fields, data_output::file, data_output_csv_t::output, and data_output_csv_t::separator.
Referenced by data_output_csv_create().
void data_output_free | ( | data_output_t * | output | ) |
References data_output::output_free.
Referenced by r_free_cfg().
struct data_output* data_output_json_create | ( | FILE * | file | ) |
References data_output_json_free(), data_output::file, data_output::output_free, data_output::print_array, data_output::print_data, data_output::print_double, data_output::print_int, print_json_array(), print_json_data(), print_json_double(), print_json_int(), print_json_string(), and data_output::print_string.
Referenced by add_json_output().
|
static |
Referenced by data_output_json_create().
struct data_output* data_output_kv_create | ( | FILE * | file | ) |
References data_output_kv_t::color, data_output_kv_free(), data_output::file, data_output_kv_t::output, data_output::output_free, data_output::print_array, data_output::print_data, data_output::print_double, data_output::print_int, print_kv_array(), print_kv_data(), print_kv_double(), print_kv_int(), print_kv_string(), data_output::print_string, data_output_kv_t::ring_bell, data_output_kv_t::term, term_has_color(), and term_init().
Referenced by add_kv_output().
|
static |
References data_output_kv_t::color, data_output_kv_t::term, and term_free().
Referenced by data_output_kv_create().
void data_output_poll | ( | struct data_output * | output | ) |
Allows to polls an event loop, if necessary.
References data_output::output_poll.
Referenced by sdr_callback().
void data_output_print | ( | struct data_output * | output, |
data_t * | data | ||
) |
Prints a structured data object.
References data_output::file, and data_output::print_data.
Referenced by data_acquired_handler(), and event_occurred_handler().
void data_output_start | ( | struct data_output * | output, |
const char ** | fields, | ||
int | num_fields | ||
) |
Setup known field keys and start output, used by CSV only.
output | the data_output handle from data_output_x_create |
fields | the list of fields to accept and expect. Array is copied, but the actual strings not. The list may contain duplicates and they are eliminated. |
num_fields | number of fields |
References data_output::output_start.
Referenced by start_outputs().
struct data_output* data_output_syslog_create | ( | const char * | host, |
const char * | port | ||
) |
|
static |
References data_output_syslog_t::client, and datagram_client_close().
Referenced by data_output_syslog_create().
Adds to a structured data object, by prepending data.
References data::next, and vdata_make().
Referenced by data_acquired_handler(), and event_occurred_handler().
size_t data_print_jsons | ( | data_t * | data, |
char * | dst, | ||
size_t | len | ||
) |
Retain a structure object, returns the structure object passed in.
References data::retain.
|
static |
References datagram_client_t::sock.
Referenced by data_output_syslog_free().
|
static |
References datagram_client_t::addr, datagram_client_t::addr_len, and datagram_client_t::sock.
Referenced by data_output_syslog_create().
|
static |
References datagram_client_t::addr, datagram_client_t::addr_len, and datagram_client_t::sock.
Referenced by print_syslog_data().
|
static |
References abuf_cat(), data_print_jsons_t::msg, data_array::num_values, and print_array_value().
Referenced by data_print_jsons().
|
static |
References abuf_printf(), abuf::left, data_print_jsons_t::msg, and abuf::tail.
Referenced by data_print_jsons().
|
static |
References abuf_printf(), and data_print_jsons_t::msg.
Referenced by data_print_jsons().
|
static |
References abuf_cat(), data::format, data::key, data_print_jsons_t::msg, data::next, data_output::print_string, print_value(), data::type, and data::value.
Referenced by data_print_jsons().
|
static |
References abuf::left, data_print_jsons_t::msg, strlen(), and abuf::tail.
Referenced by data_print_jsons().
|
static |
References data_meta_type_t::array_element_size, and data_meta_type_t::array_elementwise_import.
Referenced by data_array().
|
static |
Referenced by print_kv_data().
|
static |
Referenced by print_kv_data().
|
static |
References TERM_COLOR_BLUE, TERM_COLOR_CYAN, TERM_COLOR_GREEN, TERM_COLOR_MAGENTA, TERM_COLOR_RED, TERM_COLOR_RESET, and TERM_COLOR_YELLOW.
Referenced by print_kv_data().
void print_array_value | ( | data_output_t * | output, |
data_array_t * | array, | ||
char * | format, | ||
int | idx | ||
) |
References data_meta_type_t::array_element_size, data_meta_type_t::array_is_boxed, print_value(), data_array::type, and data_array::values.
Referenced by format_jsons_array(), print_csv_array(), print_json_array(), print_kv_array(), and print_mqtt_array().
|
static |
References data_output::file, data_array::num_values, and print_array_value().
Referenced by data_output_csv_create().
|
static |
References data_output_csv_t::data_recursion, data_output_csv_t::fields, data_output::file, data::format, data::next, print_value(), data_output_csv_t::separator, data::type, and data::value.
Referenced by data_output_csv_create().
|
static |
References data_output::file.
Referenced by data_output_csv_create().
|
static |
References data_output::file.
Referenced by data_output_csv_create().
|
static |
References data_output::file, data_output_csv_t::separator, and strlen().
Referenced by data_output_csv_create().
|
static |
References data_output::file, data_array::num_values, and print_array_value().
Referenced by data_output_json_create().
|
static |
References data_output::file, data::format, data::key, data::next, data_output::print_string, print_value(), data::type, and data::value.
Referenced by data_output_json_create().
|
static |
References data_output::file.
Referenced by data_output_json_create().
|
static |
References data_output::file.
Referenced by data_output_json_create().
|
static |
References data_output::file.
Referenced by data_output_json_create().
|
static |
References data_output::file, data_array::num_values, and print_array_value().
Referenced by data_output_kv_create().
|
static |
References data_output_kv_t::color, data_output_kv_t::column, data_output_kv_t::data_recursion, data_output::file, data::format, data::key, kv_break_after_key(), kv_break_before_key(), kv_color_for_key(), data::next, data::pretty_key, print_value(), data_output_kv_t::ring_bell, data_output_kv_t::term, TERM_COLOR_BLACK, TERM_COLOR_RESET, term_get_columns(), term_ring_bell(), term_set_fg(), data_output_kv_t::term_width, data::type, and data::value.
Referenced by data_output_kv_create().
|
static |
References data_output_kv_t::column, and data_output::file.
Referenced by data_output_kv_create().
|
static |
References data_output_kv_t::column, and data_output::file.
Referenced by data_output_kv_create().
|
static |
References data_output_kv_t::column, and data_output::file.
Referenced by data_output_kv_create().
|
static |
void print_value | ( | data_output_t * | output, |
data_type_t | type, | ||
void * | value, | ||
char * | format | ||
) |
References DATA_ARRAY, DATA_COUNT, DATA_DATA, DATA_DOUBLE, DATA_FORMAT, DATA_INT, DATA_STRING, data_output::print_array, data_output::print_data, data_output::print_double, data_output::print_int, and data_output::print_string.
Referenced by format_jsons_object(), print_array_value(), print_csv_data(), print_json_data(), print_kv_data(), and print_mqtt_data().
|
static |
References DATA_ARRAY, DATA_COUNT, DATA_DATA, DATA_DOUBLE, DATA_FORMAT, data_free(), DATA_INT, DATA_STRING, data::format, data::key, data::next, data::pretty_key, strdup(), data::type, and data::value.
Referenced by data_append(), data_make(), and data_prepend().
|
static |
|
static |