libsigrok  unreleased development snapshot
sigrok hardware access and backend library
Typedefs | Functions
proto.h File Reference

Header file containing API function prototypes. More...

+ This graph shows which files directly or indirectly include this file:

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_driversr_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_infosr_key_info_get (int keytype, uint32_t key)
 Get information about a key, by key. More...
 
const struct sr_key_infosr_key_info_name_get (int keytype, const char *keyid)
 Get information about a key, by name. More...
 
struct sr_triggersr_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_triggersr_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_stagesr_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...
 

Detailed Description

Header file containing API function prototypes.

Definition in file proto.h.

Typedef Documentation

typedef void(* sr_datafeed_callback) (const struct sr_dev_inst *sdi, const struct sr_datafeed_packet *packet, void *cb_data)

Definition at line 126 of file proto.h.

typedef int(* sr_log_callback) (void *cb_data, int loglevel, const char *format, va_list args)

Definition at line 63 of file proto.h.

typedef int(* sr_resource_close_callback) (struct sr_resource *res, void *cb_data)

Definition at line 233 of file proto.h.

typedef int(* sr_resource_open_callback) (struct sr_resource *res, const char *name, void *cb_data)

Definition at line 231 of file proto.h.

typedef gssize(* sr_resource_read_callback) (const struct sr_resource *res, void *buf, size_t count, void *cb_data)

Definition at line 235 of file proto.h.

typedef void(* sr_session_stopped_callback) (void *data)

Definition at line 125 of file proto.h.

Function Documentation

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.

Parameters
analogThe analog input values.
lo_thrThe low threshold - result becomes 0 below it.
hi_thrThe high threshold - result becomes 1 above it.
stateThe internal converter state. Must contain the state of logic sample n-1, will contain the state of logic sample n+count upon exit.
outputThe converted output values; either 0 or 1. Must provide space for count bytes.
countThe number of samples to process.
Returns
SR_OK on success or SR_ERR on failure.

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.

+ Here is the call graph for this function:

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.

Parameters
[in]analogThe analog input values.
[in]thresholdThe threshold to use.
[out]outputThe converted output values; either 0 or 1. Must provide space for count bytes.
[in]countThe number of samples to process.
Returns
SR_OK on success or SR_ERR on failure.

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.

+ Here is the call graph for this function:

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.

Parameters
ctxlibsigrok context. Must not be NULL.
open_cbResource open callback, or NULL to unset.
close_cbResource close callback, or NULL to unset.
read_cbResource read callback, or NULL to unset.
cb_dataUser data pointer passed to callbacks.
Return values
SR_OKSuccess.
SR_ERR_ARGInvalid argument.
Since
0.4.0

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().

+ Here is the caller graph for this function:

GSList* sr_resourcepaths_get ( int  res_type)

Get a list of paths where we look for resource (e.g.

firmware) files.

Parameters
res_typeThe type of resource to get the search paths for.
Returns
List of strings that must be freed after use, including the strings.
Since
0.6.0

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function: