libsigrok
unreleased development snapshot
sigrok hardware access and backend library
|
Header file containing API function prototypes. More...
Go to the source code of this file.
Typedefs | |
typedef int(* | sr_log_callback) (void *cb_data, int loglevel, const char *format, va_list args) |
typedef void(* | sr_session_stopped_callback) (void *data) |
typedef void(* | sr_datafeed_callback) (const struct sr_dev_inst *sdi, const struct sr_datafeed_packet *packet, void *cb_data) |
typedef int(* | sr_resource_open_callback) (struct sr_resource *res, const char *name, void *cb_data) |
typedef int(* | sr_resource_close_callback) (struct sr_resource *res, void *cb_data) |
typedef gssize(* | sr_resource_read_callback) (const struct sr_resource *res, void *buf, size_t count, void *cb_data) |
Functions | |
int | sr_analog_to_float (const struct sr_datafeed_analog *analog, float *buf) |
Convert an analog datafeed payload to an array of floats. More... | |
const char * | sr_analog_si_prefix (float *value, int *digits) |
Scale a float value to the appropriate SI prefix. More... | |
gboolean | sr_analog_si_prefix_friendly (enum sr_unit unit) |
Check if a unit "accepts" an SI prefix. More... | |
int | sr_analog_unit_to_string (const struct sr_datafeed_analog *analog, char **result) |
Convert the unit/MQ/MQ flags in the analog struct to a string. More... | |
void | sr_rational_set (struct sr_rational *r, int64_t p, uint64_t q) |
Set sr_rational r to the given value. More... | |
int | sr_rational_eq (const struct sr_rational *a, const struct sr_rational *b) |
Compare two sr_rational for equality. More... | |
int | sr_rational_mult (struct sr_rational *res, const struct sr_rational *a, const struct sr_rational *b) |
Multiply two sr_rational. More... | |
int | sr_rational_div (struct sr_rational *res, const struct sr_rational *num, const struct sr_rational *div) |
Divide rational a by rational b. More... | |
int | sr_init (struct sr_context **ctx) |
Initialize libsigrok. More... | |
int | sr_exit (struct sr_context *ctx) |
Shutdown libsigrok. More... | |
GSList * | sr_buildinfo_libs_get (void) |
char * | sr_buildinfo_host_get (void) |
char * | sr_buildinfo_scpi_backends_get (void) |
int | sr_a2l_threshold (const struct sr_datafeed_analog *analog, float threshold, uint8_t *output, uint64_t count) |
Convert analog values to logic values by using a fixed threshold. More... | |
int | sr_a2l_schmitt_trigger (const struct sr_datafeed_analog *analog, float lo_thr, float hi_thr, uint8_t *state, uint8_t *output, uint64_t count) |
Convert analog values to logic values by using a Schmitt-trigger algorithm. More... | |
int | sr_log_loglevel_set (int loglevel) |
Set the libsigrok loglevel. More... | |
int | sr_log_loglevel_get (void) |
Get the libsigrok loglevel. More... | |
int | sr_log_callback_set (sr_log_callback cb, void *cb_data) |
Set the libsigrok log callback to the specified function. More... | |
int | sr_log_callback_set_default (void) |
Set the libsigrok log callback to the default built-in one. More... | |
int | sr_log_callback_get (sr_log_callback *cb, void **cb_data) |
Get the libsigrok log callback routine and callback data. More... | |
int | sr_dev_channel_name_set (struct sr_channel *channel, const char *name) |
Set the name of the specified channel. More... | |
int | sr_dev_channel_enable (struct sr_channel *channel, gboolean state) |
Enable or disable a channel. More... | |
gboolean | sr_dev_has_option (const struct sr_dev_inst *sdi, int key) |
Determine whether the specified device instance has the specified capability. More... | |
int | sr_dev_config_capabilities_list (const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, int key) |
Enumerate the configuration capabilities supported by a device instance for a given configuration key. More... | |
GArray * | sr_dev_options (const struct sr_dev_driver *driver, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) |
Enumerate the configuration options of the specified item. More... | |
GSList * | sr_dev_list (const struct sr_dev_driver *driver) |
Get the list of devices/instances of the specified driver. More... | |
int | sr_dev_clear (const struct sr_dev_driver *driver) |
Clear the list of device instances a driver knows about. More... | |
int | sr_dev_open (struct sr_dev_inst *sdi) |
Open the specified device instance. More... | |
int | sr_dev_close (struct sr_dev_inst *sdi) |
Close the specified device instance. More... | |
struct sr_dev_driver * | sr_dev_inst_driver_get (const struct sr_dev_inst *sdi) |
Queries a device instances' driver. More... | |
const char * | sr_dev_inst_vendor_get (const struct sr_dev_inst *sdi) |
Queries a device instances' vendor. More... | |
const char * | sr_dev_inst_model_get (const struct sr_dev_inst *sdi) |
Queries a device instances' model. More... | |
const char * | sr_dev_inst_version_get (const struct sr_dev_inst *sdi) |
Queries a device instances' version. More... | |
const char * | sr_dev_inst_sernum_get (const struct sr_dev_inst *sdi) |
Queries a device instances' serial number. More... | |
const char * | sr_dev_inst_connid_get (const struct sr_dev_inst *sdi) |
Queries a device instances' connection identifier. More... | |
GSList * | sr_dev_inst_channels_get (const struct sr_dev_inst *sdi) |
Queries a device instances' channel list. More... | |
GSList * | sr_dev_inst_channel_groups_get (const struct sr_dev_inst *sdi) |
Queries a device instances' channel groups list. More... | |
struct sr_dev_inst * | sr_dev_inst_user_new (const char *vendor, const char *model, const char *version) |
Allocate and init a new user-generated device instance. More... | |
int | sr_dev_inst_channel_add (struct sr_dev_inst *sdi, int index, int type, const char *name) |
Add a new channel to the specified device instance. More... | |
struct sr_dev_driver ** | sr_driver_list (const struct sr_context *ctx) |
Return the list of supported hardware drivers. More... | |
int | sr_driver_init (struct sr_context *ctx, struct sr_dev_driver *driver) |
Initialize a hardware driver. More... | |
GArray * | sr_driver_scan_options_list (const struct sr_dev_driver *driver) |
Enumerate scan options supported by this driver. More... | |
GSList * | sr_driver_scan (struct sr_dev_driver *driver, GSList *options) |
Tell a hardware driver to scan for devices. More... | |
int | sr_config_get (const struct sr_dev_driver *driver, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, uint32_t key, GVariant **data) |
Query value of a configuration key at the given driver or device instance. More... | |
int | sr_config_set (const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, uint32_t key, GVariant *data) |
Set value of a configuration key in a device instance. More... | |
int | sr_config_commit (const struct sr_dev_inst *sdi) |
Apply configuration settings to the device hardware. More... | |
int | sr_config_list (const struct sr_dev_driver *driver, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, uint32_t key, GVariant **data) |
List all possible values for a configuration key. More... | |
const struct sr_key_info * | sr_key_info_get (int keytype, uint32_t key) |
Get information about a key, by key. More... | |
const struct sr_key_info * | sr_key_info_name_get (int keytype, const char *keyid) |
Get information about a key, by name. More... | |
struct sr_trigger * | sr_session_trigger_get (struct sr_session *session) |
Get the trigger assigned to this session. More... | |
int | sr_session_load (struct sr_context *ctx, const char *filename, struct sr_session **session) |
Load the session from the specified filename. More... | |
int | sr_session_new (struct sr_context *ctx, struct sr_session **session) |
Create a new session. More... | |
int | sr_session_destroy (struct sr_session *session) |
Destroy a session. More... | |
int | sr_session_dev_remove_all (struct sr_session *session) |
Remove all the devices from a session. More... | |
int | sr_session_dev_add (struct sr_session *session, struct sr_dev_inst *sdi) |
Add a device instance to a session. More... | |
int | sr_session_dev_remove (struct sr_session *session, struct sr_dev_inst *sdi) |
Remove a device instance from a session. More... | |
int | sr_session_dev_list (struct sr_session *session, GSList **devlist) |
List all device instances attached to a session. More... | |
int | sr_session_trigger_set (struct sr_session *session, struct sr_trigger *trig) |
Set the trigger of this session. More... | |
int | sr_session_datafeed_callback_remove_all (struct sr_session *session) |
Remove all datafeed callbacks in a session. More... | |
int | sr_session_datafeed_callback_add (struct sr_session *session, sr_datafeed_callback cb, void *cb_data) |
Add a datafeed callback to a session. More... | |
int | sr_session_start (struct sr_session *session) |
Start a session. More... | |
int | sr_session_run (struct sr_session *session) |
Block until the running session stops. More... | |
int | sr_session_stop (struct sr_session *session) |
Stop a session. More... | |
int | sr_session_is_running (struct sr_session *session) |
Return whether the session is currently running. More... | |
int | sr_session_stopped_callback_set (struct sr_session *session, sr_session_stopped_callback cb, void *cb_data) |
Set the callback to be invoked after a session stopped running. More... | |
int | sr_packet_copy (const struct sr_datafeed_packet *packet, struct sr_datafeed_packet **copy) |
void | sr_packet_free (struct sr_datafeed_packet *packet) |
const struct sr_input_module ** | sr_input_list (void) |
Returns a NULL-terminated list of all available input modules. More... | |
const char * | sr_input_id_get (const struct sr_input_module *imod) |
Returns the specified input module's ID. More... | |
const char * | sr_input_name_get (const struct sr_input_module *imod) |
Returns the specified input module's name. More... | |
const char * | sr_input_description_get (const struct sr_input_module *imod) |
Returns the specified input module's description. More... | |
const char *const * | sr_input_extensions_get (const struct sr_input_module *imod) |
Returns the specified input module's file extensions typical for the file format, as a NULL terminated array, or returns a NULL pointer if there is no preferred extension. More... | |
const struct sr_input_module * | sr_input_find (const char *id) |
Return the input module with the specified ID, or NULL if no module with that id is found. More... | |
const struct sr_option ** | sr_input_options_get (const struct sr_input_module *imod) |
Returns a NULL-terminated array of struct sr_option, or NULL if the module takes no options. More... | |
void | sr_input_options_free (const struct sr_option **options) |
After a call to sr_input_options_get(), this function cleans up all resources returned by that call. More... | |
struct sr_input * | sr_input_new (const struct sr_input_module *imod, GHashTable *options) |
Create a new input instance using the specified input module. More... | |
int | sr_input_scan_buffer (GString *buf, const struct sr_input **in) |
Try to find an input module that can parse the given buffer. More... | |
int | sr_input_scan_file (const char *filename, const struct sr_input **in) |
Try to find an input module that can parse the given file. More... | |
const struct sr_input_module * | sr_input_module_get (const struct sr_input *in) |
Return the input instance's module "class". More... | |
struct sr_dev_inst * | sr_input_dev_inst_get (const struct sr_input *in) |
Return the input instance's (virtual) device instance. More... | |
int | sr_input_send (const struct sr_input *in, GString *buf) |
Send data to the specified input instance. More... | |
int | sr_input_end (const struct sr_input *in) |
Signal the input module no more data will come. More... | |
int | sr_input_reset (const struct sr_input *in) |
Reset the input module's input handling structures. More... | |
void | sr_input_free (const struct sr_input *in) |
Free the specified input instance and all associated resources. More... | |
const struct sr_output_module ** | sr_output_list (void) |
Returns a NULL-terminated list of all available output modules. More... | |
const char * | sr_output_id_get (const struct sr_output_module *omod) |
Returns the specified output module's ID. More... | |
const char * | sr_output_name_get (const struct sr_output_module *omod) |
Returns the specified output module's name. More... | |
const char * | sr_output_description_get (const struct sr_output_module *omod) |
Returns the specified output module's description. More... | |
const char *const * | sr_output_extensions_get (const struct sr_output_module *omod) |
Returns the specified output module's file extensions typical for the file format, as a NULL terminated array, or returns a NULL pointer if there is no preferred extension. More... | |
const struct sr_output_module * | sr_output_find (char *id) |
Return the output module with the specified ID, or NULL if no module with that id is found. More... | |
const struct sr_option ** | sr_output_options_get (const struct sr_output_module *omod) |
Returns a NULL-terminated array of struct sr_option, or NULL if the module takes no options. More... | |
void | sr_output_options_free (const struct sr_option **opts) |
After a call to sr_output_options_get(), this function cleans up all resources returned by that call. More... | |
const struct sr_output * | sr_output_new (const struct sr_output_module *omod, GHashTable *params, const struct sr_dev_inst *sdi, const char *filename) |
Create a new output instance using the specified output module. More... | |
gboolean | sr_output_test_flag (const struct sr_output_module *omod, uint64_t flag) |
int | sr_output_send (const struct sr_output *o, const struct sr_datafeed_packet *packet, GString **out) |
Send a packet to the specified output instance. More... | |
int | sr_output_free (const struct sr_output *o) |
Free the specified output instance and all associated resources. More... | |
const struct sr_transform_module ** | sr_transform_list (void) |
Returns a NULL-terminated list of all available transform modules. More... | |
const char * | sr_transform_id_get (const struct sr_transform_module *tmod) |
Returns the specified transform module's ID. More... | |
const char * | sr_transform_name_get (const struct sr_transform_module *tmod) |
Returns the specified transform module's name. More... | |
const char * | sr_transform_description_get (const struct sr_transform_module *tmod) |
Returns the specified transform module's description. More... | |
const struct sr_transform_module * | sr_transform_find (const char *id) |
Return the transform module with the specified ID, or NULL if no module with that ID is found. More... | |
const struct sr_option ** | sr_transform_options_get (const struct sr_transform_module *tmod) |
Returns a NULL-terminated array of struct sr_option, or NULL if the module takes no options. More... | |
void | sr_transform_options_free (const struct sr_option **opts) |
After a call to sr_transform_options_get(), this function cleans up all resources returned by that call. More... | |
const struct sr_transform * | sr_transform_new (const struct sr_transform_module *tmod, GHashTable *params, const struct sr_dev_inst *sdi) |
Create a new transform instance using the specified transform module. More... | |
int | sr_transform_free (const struct sr_transform *t) |
Free the specified transform instance and all associated resources. More... | |
struct sr_trigger * | sr_trigger_new (const char *name) |
Create a new trigger. More... | |
void | sr_trigger_free (struct sr_trigger *trig) |
Free a previously allocated trigger. More... | |
struct sr_trigger_stage * | sr_trigger_stage_add (struct sr_trigger *trig) |
Allocate a new trigger stage and add it to the specified trigger. More... | |
int | sr_trigger_match_add (struct sr_trigger_stage *stage, struct sr_channel *ch, int trigger_match, float value) |
Allocate a new trigger match and add it to the specified trigger stage. More... | |
GSList * | sr_serial_list (const struct sr_dev_driver *driver) |
List available serial devices. More... | |
void | sr_serial_free (struct sr_serial_port *serial) |
Free a previously allocated sr_serial_port structure. More... | |
GSList * | sr_resourcepaths_get (int res_type) |
Get a list of paths where we look for resource (e.g. More... | |
int | sr_resource_set_hooks (struct sr_context *ctx, sr_resource_open_callback open_cb, sr_resource_close_callback close_cb, sr_resource_read_callback read_cb, void *cb_data) |
Install resource access hooks. More... | |
char * | sr_si_string_u64 (uint64_t x, const char *unit) |
Convert a numeric value value to its "natural" string representation in SI units. More... | |
char * | sr_samplerate_string (uint64_t samplerate) |
Convert a numeric samplerate value to its "natural" string representation. More... | |
char * | sr_period_string (uint64_t v_p, uint64_t v_q) |
Convert a numeric period value to the "natural" string representation of its period value. More... | |
char * | sr_voltage_string (uint64_t v_p, uint64_t v_q) |
Convert a numeric voltage value to the "natural" string representation of its voltage value. More... | |
int | sr_parse_sizestring (const char *sizestring, uint64_t *size) |
Convert a "natural" string representation of a size value to uint64_t. More... | |
uint64_t | sr_parse_timestring (const char *timestring) |
Convert a "natural" string representation of a time value to an uint64_t value in milliseconds. More... | |
gboolean | sr_parse_boolstring (const char *boolstring) |
int | sr_parse_period (const char *periodstr, uint64_t *p, uint64_t *q) |
int | sr_parse_voltage (const char *voltstr, uint64_t *p, uint64_t *q) |
char ** | sr_parse_probe_names (const char *spec, const char **dflt_names, size_t dflt_count, size_t max_count, size_t *ret_count) |
Parse a probe names specification, allocate a string vector. More... | |
void | sr_free_probe_names (char **names) |
Release previously allocated probe names (string vector). More... | |
int | sr_sprintf_ascii (char *buf, const char *format,...) |
Compose a string with a format string in the buffer pointed to by buf. More... | |
int | sr_vsprintf_ascii (char *buf, const char *format, va_list args) |
Compose a string with a format string in the buffer pointed to by buf. More... | |
int | sr_snprintf_ascii (char *buf, size_t buf_size, const char *format,...) |
Composes a string with a format string (like printf) in the buffer pointed by buf (taking buf_size as the maximum buffer capacity to fill). More... | |
int | sr_vsnprintf_ascii (char *buf, size_t buf_size, const char *format, va_list args) |
Composes a string with a format string (like printf) in the buffer pointed by buf (taking buf_size as the maximum buffer capacity to fill). More... | |
int | sr_parse_rational (const char *str, struct sr_rational *ret) |
Convert a string representation of a numeric value to a sr_rational. More... | |
char * | sr_text_trim_spaces (char *s) |
Trim leading and trailing whitespace off text. More... | |
char * | sr_text_next_line (char *s, size_t l, char **next, size_t *taken) |
Check for another complete text line, trim, return consumed char count. More... | |
char * | sr_text_next_word (char *s, char **next) |
Isolates another space separated word in a text line. More... | |
int | sr_next_power_of_two (size_t value, size_t *bits, size_t *power) |
Get the number of necessary bits to hold a given value. More... | |
int | sr_package_version_major_get (void) |
Get the major libsigrok package version number. More... | |
int | sr_package_version_minor_get (void) |
Get the minor libsigrok package version number. More... | |
int | sr_package_version_micro_get (void) |
Get the micro libsigrok package version number. More... | |
const char * | sr_package_version_string_get (void) |
Get the libsigrok package version number as a string. More... | |
int | sr_lib_version_current_get (void) |
Get the "current" part of the libsigrok library version number. More... | |
int | sr_lib_version_revision_get (void) |
Get the "revision" part of the libsigrok library version number. More... | |
int | sr_lib_version_age_get (void) |
Get the "age" part of the libsigrok library version number. More... | |
const char * | sr_lib_version_string_get (void) |
Get the libsigrok library version number as a string. More... | |
const char * | sr_strerror (int error_code) |
Return a human-readable error string for the given libsigrok error code. More... | |
const char * | sr_strerror_name (int error_code) |
Return the "name" string of the given libsigrok error code. More... | |
Header file containing API function prototypes.
Definition in file proto.h.
typedef void(* sr_datafeed_callback) (const struct sr_dev_inst *sdi, const struct sr_datafeed_packet *packet, void *cb_data) |
typedef int(* sr_resource_close_callback) (struct sr_resource *res, void *cb_data) |
typedef int(* sr_resource_open_callback) (struct sr_resource *res, const char *name, void *cb_data) |
typedef gssize(* sr_resource_read_callback) (const struct sr_resource *res, void *buf, size_t count, void *cb_data) |
int sr_a2l_schmitt_trigger | ( | const struct sr_datafeed_analog * | analog, |
float | lo_thr, | ||
float | hi_thr, | ||
uint8_t * | state, | ||
uint8_t * | output, | ||
uint64_t | count | ||
) |
Convert analog values to logic values by using a Schmitt-trigger algorithm.
analog | The analog input values. |
lo_thr | The low threshold - result becomes 0 below it. |
hi_thr | The high threshold - result becomes 1 above it. |
state | The internal converter state. Must contain the state of logic sample n-1, will contain the state of logic sample n+count upon exit. |
output | The converted output values; either 0 or 1. Must provide space for count bytes. |
count | The number of samples to process. |
Definition at line 81 of file conversion.c.
References sr_datafeed_analog::data, sr_datafeed_analog::encoding, sr_analog_encoding::is_float, sr_analog_to_float(), SR_ERR, and SR_OK.
int sr_a2l_threshold | ( | const struct sr_datafeed_analog * | analog, |
float | threshold, | ||
uint8_t * | output, | ||
uint64_t | count | ||
) |
Convert analog values to logic values by using a fixed threshold.
[in] | analog | The analog input values. |
[in] | threshold | The threshold to use. |
[out] | output | The converted output values; either 0 or 1. Must provide space for count bytes. |
[in] | count | The number of samples to process. |
Definition at line 44 of file conversion.c.
References sr_datafeed_analog::data, sr_datafeed_analog::encoding, sr_analog_encoding::is_float, sr_analog_to_float(), SR_ERR, and SR_OK.
int sr_resource_set_hooks | ( | struct sr_context * | ctx, |
sr_resource_open_callback | open_cb, | ||
sr_resource_close_callback | close_cb, | ||
sr_resource_read_callback | read_cb, | ||
void * | cb_data | ||
) |
Install resource access hooks.
ctx | libsigrok context. Must not be NULL. |
open_cb | Resource open callback, or NULL to unset. |
close_cb | Resource close callback, or NULL to unset. |
read_cb | Resource read callback, or NULL to unset. |
cb_data | User data pointer passed to callbacks. |
SR_OK | Success. |
SR_ERR_ARG | Invalid argument. |
Definition at line 263 of file resource.c.
References sr_resource::handle, name, sr_resource::size, SR_ERR_ARG, SR_OK, SR_PRIV, and sr_resource::type.
Referenced by sr_init().
GSList* sr_resourcepaths_get | ( | int | res_type | ) |
Get a list of paths where we look for resource (e.g.
firmware) files.
res_type | The type of resource to get the search paths for. |
Definition at line 47 of file resource.c.
References sr_resource::handle, name, sr_resource::size, SR_ERR, SR_ERR_ARG, SR_OK, SR_PRIV, SR_RESOURCE_FIRMWARE, sr_resourcepaths_get(), sr_resource::type, and void().
Referenced by sr_buildinfo_scpi_backends_get(), and sr_resourcepaths_get().